“React를 알면 앱도 만들 수 있다고?”
이 글에서는 웹 개발자가 가장 빠르게 모바일 앱에 입문할 수 있는 방법을 소개합니다.
React Native란?
React Native는 Meta(구 Facebook)가 만든 크로스플랫폼 프레임워크입니다.
이름에서 알 수 있듯, 웹의 React와 거의 동일한 방식으로 앱을 만들 수 있습니다.
웹 개발 (React) 모바일 개발 (React Native)
<div> → <View>
<p> → <Text>
<img> → <Image>
CSS 스타일링 → StyleSheet (유사한 문법)
useState, useEffect → 그대로 사용 가능 ✅
웹 React를 다뤄보셨다면 구조와 개념이 매우 익숙하게 느껴질 것입니다.
Expo란?
Expo는 React Native 위에 올라간 개발 플랫폼입니다.
React Native만 사용하면 초기 환경 설정이 꽤 복잡한데, Expo는 이를 대폭 단순화해줍니다.
React Native (기반 프레임워크)
↑
Expo (편의 도구 + SDK + 서비스)
Expo가 제공하는 것들
| 기능 | 설명 |
|---|---|
| Expo Go | 폰에 설치하면 QR코드로 즉시 앱 미리보기 |
| Expo SDK | 카메라, GPS, 알림 등 네이티브 기능을 JS로 간편하게 |
| EAS (Expo Application Services) | 클라우드에서 빌드 및 배포 |
| OTA 업데이트 | 앱스토어 심사 없이 JS 코드 업데이트 가능 |
웹 개발자에게 유리한 이유
Next.js 등 웹 개발 경험이 있다면 React Native / Expo 진입장벽이 현저히 낮습니다.
| 항목 | 웹 (Next.js) | React Native / Expo |
|---|---|---|
| 언어 | TypeScript / JavaScript | TypeScript / JavaScript ✅ 동일 |
| 컴포넌트 | React 컴포넌트 | React 컴포넌트 ✅ 동일 |
| 상태 관리 | useState, Redux 등 | useState, Redux 등 ✅ 동일 |
| 패키지 관리 | npm / yarn | npm / yarn ✅ 동일 |
| 스타일링 | CSS | StyleSheet (CSS와 유사) |
| 라우팅 | Next.js Router | Expo Router (매우 유사) |
| 학습 기간 | — | 2~4주면 기본기 습득 가능 |
Expo의 두 가지 개발 방식
Expo에는 두 가지 모드가 있습니다. 처음에는 Managed로 시작해도 충분합니다.
Managed Workflow (권장 시작점)
- Expo가 네이티브 코드를 대신 관리
- 설정이 거의 없고 빠르게 시작 가능
- Expo SDK가 지원하는 기능 범위 내에서 개발
Bare Workflow (고급 사용자)
- 네이티브 코드(iOS/Android)에 직접 접근 가능
- 사실상 순수 React Native와 동일한 수준
- 특수 하드웨어 연동 등 고급 기능 필요할 때 전환
대부분의 앱은 Managed Workflow로 충분히 만들 수 있습니다.
디바이스 기능 지원 범위
Expo에서 사용 가능한 주요 디바이스 기능은 다음과 같습니다.
| 기능 | Expo Go (개발 중) | 실제 빌드 후 |
|---|---|---|
| 카메라 | ✅ | ✅ |
| GPS / 위치 | ✅ | ✅ |
| 푸시 알림 | ✅ | ✅ |
| 갤러리 접근 | ✅ | ✅ |
| 가속도계 / 자이로 | ✅ | ✅ |
| 블루투스 | ❌ | ✅ (Bare Workflow) |
| NFC | ❌ | ✅ (Bare Workflow) |
| Face ID / 지문 | ❌ | ✅ (Bare Workflow) |
| 인앱 결제 | ❌ | ✅ (Bare Workflow) |
React Native의 한계
물론 단점도 있습니다.
성능 이슈
JavaScript와 네이티브 사이의 브릿지 통신 구조로 인해, 복잡한 애니메이션이나 고성능 처리에서 네이티브 대비 성능이 떨어질 수 있습니다. (최근 New Architecture 도입으로 많이 개선됨)
플랫폼 고유 UI
iOS와 Android의 디자인 가이드라인이 다르기 때문에, 완벽한 플랫폼 고유 느낌을 구현하려면 별도 작업이 필요합니다.
라이브러리 파편화
React Native 생태계는 크지만, 일부 라이브러리의 유지보수가 중단되거나 품질 편차가 있습니다.
어떤 앱을 만들기에 적합할까?
✅ 잘 맞는 경우
- 정보 앱, 뉴스 앱
- 커머스, 예약 앱
- 커뮤니티, SNS
- 생산성 도구
- 빠른 MVP / 프로토타입
⚠️ 신중하게 고려할 경우
- 복잡한 애니메이션이 핵심인 앱
- 블루투스 / NFC 등 특수 하드웨어 중심 앱
❌ 적합하지 않은 경우
- 3D 게임, 고성능 게임
- AR / VR 앱
정리
React Native와 Expo는 웹 개발 경험을 가진 분들이 가장 빠르게 모바일 앱 개발에 입문할 수 있는 방법입니다.
JavaScript와 React를 알고 있다면 새로운 언어나 패러다임 없이도 앱을 만들 수 있다는 것이 가장 큰 강점입니다.
제약이 전혀 없는 건 아니지만, 일반적인 앱을 만드는 데는 충분히 강력한 도구입니다.
다음 편에서는 요즘 가장 주목받는 Flutter를 살펴보겠습니다.
시리즈 목차
- 1편 모바일 앱 개발 생태계 한눈에 보기
- 2편 크로스플랫폼 vs 네이티브, 뭐가 다를까?
- 3편 React Native & Expo — 웹 개발자를 위한 모바일 입문 ← 현재 글
- 4편 Flutter — 왜 요즘 가장 주목받는가?
- 5편 Swift & Kotlin — 네이티브 개발이란 무엇인가?
- 6편 웹 기반 앱 — Ionic, PWA의 가능성과 한계
- 7편 결국 나는 뭘 써야 할까? — 상황별 최종 선택 가이드