React Native!

문강현·2026년 5월 14일

시작하며

이번 글에서는 React Native가 무엇인지, 장단점과 React와의 차이점을 정리해봤습니다.


React Native란?

React Native는 크로스플랫폼 모바일 앱 개발 프레임워크입니다. JavaScript와 React 문법으로 코드를 작성하면 iOS와 Android 앱을 동시에 만들 수 있습니다.

각 플랫폼의 실제 네이티브 컴포넌트를 렌더링하기 때문에 네이티브 앱에 가까운 사용자 경험을 제공합니다.


장점

코드 재사용 — 하나의 코드베이스로 iOS와 Android를 동시에 커버할 수 있습니다. 비즈니스 로직과 UI 대부분을 공유할 수 있어 개발 비용이 줄어듭니다.

익숙한 구조 — React를 알고 있다면 러닝커브가 낮습니다. JSX, 컴포넌트 구조, 상태 관리 방식이 거의 동일해서 웹 개발자가 모바일로 빠르게 넘어올 수 있습니다.

빠른 개발 사이클 — Fast Refresh 덕분에 코드 수정이 즉시 반영됩니다. 매번 빌드를 새로 돌릴 필요가 없습니다.


단점

플랫폼별 예외 처리 — iOS와 Android가 다르게 동작하는 부분에서는 따로 직접 분기 처리를 해야 합니다.

라이브러리 호환성 — React Native 버전 업데이트가 잦고, 특히 Expo SDK 버전과 맞춰야 할 때 호환성 문제가 종종 발생합니다.


React(웹)와 다른 점

React를 알고 있다면 친숙하게 느껴지지만, 몇 가지는 확실히 다릅니다.

렌더링 대상 자체가 달라서 웹의 <div>, <span> 대신 <View>, <Text> 같은 네이티브 전용 컴포넌트를 사용합니다. 라우팅은 react-router 대신 React Navigation, 클릭 이벤트는 onClick 대신 onPress를 씁니다. 스크롤도 브라우저가 자동 처리해주는 것과 달리 <ScrollView><FlatList>를 직접 사용해야 합니다.

스타일링은 기본적으로 StyleSheet API를 사용하지만, Tailwind CSS를 설치하여 문법을 그대로 쓸 수 있습니다. 다만 display: block 같은 개념이 없고 모든 View의 기본값이 flex-direction: column이라는 점은 알고 있어야 처음에 덜 헷갈립니다.


Expo를 쓰는 이유

React Native를 처음 세팅하면 Xcode, Android Studio, JDK, CocoaPods 등 환경 설정만으로 하루가 날아가는 경우도 있습니다. Expo는 이 문제를 해결해줍니다.

Expo는 React Native 위에 올라가는 개발 플랫폼으로, npx create-expo-app 하나로 바로 시작할 수 있습니다. 카메라, 위치, 알림 등 자주 쓰는 기능이 SDK로 이미 제공되고, Expo Go 앱으로 QR 코드 하나만으로 실제 기기에서 바로 테스트할 수 있습니다.


마무리

React Native는 웹 개발자가 모바일에 발을 들이기에 가장 좋은 선택지라고 생각합니다. 하나의 코드베이스로 두 플랫폼을 커버하면서 네이티브에 가까운 경험을 줄 수 있다는 점이 좋은 것 같습니다.

감사합니다!!!!!!!!

0개의 댓글