app

김태헌

React Native: 웹앱 만들기 일지(1) - Webview, Netinfo

웹앱을 공부 중입니다. React Native + Next.js를 통해서 구축하는 법을 공부해 보려고 해요. 포에이 활동이 끝나고 새로운 프로젝트를 찾던 중 RN 웹앱을 통해 서비스하는 팀을 찾았는데요,

아무래도 프로젝트 경험이 적은 것과 웹뷰 환경 구축 경험이 부족한 것 같아서 함께하지 못했는데, 때 마침 강의가 있어서 공부를 하기로 해보았습니다. RN을 열심히 파보려고 해요. 그리고 나서 SwiftUI 를 조금 공부해서 네이티브 코드와 연결해서 위젯까지 구현해보는 프로젝트를 하는게 목표입니다.

그리고 신입 프론트엔드 개발자 보다 앱 개발자를 뽑는 수요가 더 적어 보여서 다방면으로 웹뷰를 공부해보기로 한 것도 있습니다. Next는 오랜만인데요. 어떻게든 해보아야겠죠.

오늘 공부한 것은 크게 없구요. 간단하게 웹뷰 구축하는 방법과 네트워크 상황에 따라 다른 뷰 보여주기 정도가 될 것 같네요.


웹뷰

우선 웹뷰로 보여주는 방법은 간단하더라구요.

npx expo install react-native-webview

를 통해 설치해줍니다. 저번에 캡스톤 디자인에서 부 키우기를 할 때 느꼈던 것이, xcode 업데이트하면서 강제로 RN SDK 버전도 올려야 했는데 그때 의존성 문제가 터져서 골머리를 많이 앓았거든요.

실수로라도 npm으로 설치하지 말고 npx expo install 을 통해서 SDK 버전에 맞게 라이브러리 설치할 수 있도록 조심해야겠어요.

import WebView from "react-native-webview";

<WebView
    source={{
      uri: "보여주고 싶은 사이트",
    }}
/>

웹뷰로 보여주는 방법은 간단하더라구요. source 내부에 uri만 잘 적어주면 됩니다. Next로 프로젝트 사이트를 만들고 나서 실행시키고 expo 랑 연결시켜주면 끝이었어요.

http://localhost:3000/folder/file

주의할 점은 로컬로 돌리는 사이트에 연결할 때 localhost 로 하면 안되고 npx expo start 쳤을 때 아래에 뜨는 ip주소 를 쳐줘야 돌아갑니다.

뭐, 테스트 개발 아닐 때는 주소가 있을테니 그걸 사용하면 될테지만요.


네트워크 확인

npx expo install @react-native-community/netinfo

를 이용해 설치하고 나면 Netinfo 라는 변수를 사용가능하구요.

import NetInfo from "@react-native-community/netinfo";


NetInfo.addEventListener((인터넷정보) => {
    인터넷정보.isConnected
});

NetInfo에 이벤트리스너를 부착해주고 나면 내부 파라미터로 인터넷 값이 들어갑니다. isConnected로 네트워크 연결 유무를 확인 할 수 있어요. 인터넷 미연결일 때는 false값이 아니라 null 이 들어가니까 처리를 잘 해줘야 합니다.

const [isConnected, setIsConnected] = useState(false);

  useEffect(() => {
    NetInfo.addEventListener((internet) => {
      setIsConnected(internet.isConnected ?? false);
      //   setIsConnected(false);
    });
  }, []);

  if (!isConnected)
    return (
      <SafeAreaView>
        <Text>인터넷 연결을 확인해주세요!</Text>
      </SafeAreaView>
    );

useEffect 사용해서 미리 확인해주는 형식으로 사용하면 됩니다. 간단하죠? 유용하게 사용해먹으면 될 것 같아요.

항상 새로운 걸 배우는 것은 즐거운 것 같으면서도 두렵기도 합니다. 아무튼 정진하는 수밖에요.

믿을 건 나밖에 없습니다.

2026년 7월 1일 PM 1:26

댓글 닫기
댓글이 없습니다.
로그인 필요