React Native를 시작하려고 하면
가장 먼저 마주치는 선택지가 있다.
Expo로 시작할 것인가,
React Native CLI로 시작할 것인가.
공식 문서를 봐도 둘 다 가능하다고 하고,
검색해보면 의견도 제각각이다.
이 글은
React Native를 처음 시작하는 사람 기준으로
Expo와 CLI의 차이를 정리하고,
어떤 선택이 현실적인지 설명한다.
이 글이 필요한 사람
- React Native를 이제 막 시작한 경우
- Expo와 CLI 차이로 고민 중인 경우
- “실무에서는 뭘 쓰는지” 감이 안 오는 경우
전체 흐름 먼저 정리
React Native 개발 환경은
크게 두 가지 방식으로 나뉜다.
- Expo 기반 개발
- React Native CLI 기반 개발
둘은 프로젝트 생성 방식부터 개발 경험까지 다르다.
[이미지: Expo vs React Native CLI 전체 구조 비교]
Expo란 무엇인가
Expo는
React Native 개발을 쉽게 시작할 수 있도록 감싸놓은 도구 모음이다.
복잡한 네이티브 설정을 최대한 숨기고,
JavaScript 코드 작성에만 집중할 수 있게 해준다.
Expo의 핵심 특징
- Android Studio / Xcode 없이도 시작 가능
- 개발 서버 실행이 간단함
- 카메라, 이미지, 센서 등 주요 기능을 기본 제공
실제로 처음 써보면
“이게 진짜 모바일 앱 개발 맞나?” 싶을 정도로 진입 장벽이 낮다.
React Native CLI란 무엇인가
React Native CLI는
가장 기본이 되는 공식 개발 방식이다.
Expo처럼 감싸진 구조가 아니라,
iOS / Android 네이티브 프로젝트를 직접 다룬다.
CLI의 핵심 특징
- android / ios 폴더가 바로 생성됨
- 네이티브 코드에 직접 접근 가능
- 설정이 복잡하지만 자유도가 높음
실무에서
네이티브 기능을 많이 다루는 앱이라면
결국 이 방식으로 가는 경우가 많다.
Expo vs CLI 차이 정리
개발 환경 설정
- Expo
- Node.js만 있으면 시작 가능
- 초기 설정이 거의 없음
- CLI
- Node.js, JDK, Android Studio, Xcode 필요
- 환경 설정에 시간 소요
네이티브 접근
- Expo
- 제공되는 API 범위 내에서만 사용
- 제한된 네이티브 접근
- CLI
- 모든 네이티브 기능 직접 사용 가능
초반 학습 난이도
- Expo: 낮음
- CLI: 높음
처음에는 “앱 개발”보다
“환경 설정”에서 지치는 경우가 많다.
이 차이가 체감상 가장 크다.
처음 시작한다면 어떤 걸 선택해야 할까
결론부터 말하면
대부분의 입문자는 Expo가 더 낫다.
Expo를 추천하는 경우
- React Native가 처음인 경우
- 모바일 앱 구조 자체가 익숙하지 않은 경우
- 빠르게 화면을 만들어보고 싶은 경우
- 개인 프로젝트, 학습 목적
CLI를 고려해볼 만한 경우
- 네이티브 개발 경험이 있는 경우
- 특정 네이티브 SDK 사용이 필수인 경우
- 처음부터 실무 환경과 최대한 비슷하게 가고 싶은 경우
실제로는
Expo로 시작 → 필요해지면 CLI로 전환하는 흐름도 많이 사용된다.
Expo 프로젝트 생성해보기
먼저 Node.js가 설치되어 있어야 한다.
node -v
이후 Expo 프로젝트를 생성한다.
npx create-expo-app my-app
cd my-app
npx expo start
이 명령을 실행하면
- 개발 서버가 실행되고
- QR 코드가 표시된다
Expo Go 앱으로 QR을 찍으면
실제 스마트폰에서 바로 실행된다.
[이미지: Expo 프로젝트 실행 화면 예시]
실제로 써보면
“환경 설정이 끝났나?” 싶을 정도로 바로 동작한다.
CLI 프로젝트는 언제 시작해도 늦지 않다
중요한 점은 이거다.
Expo로 시작했다고 해서
실무를 못 가는 건 아니다.
React Native의 핵심 개념은 동일하고,
컴포넌트, 상태 관리, 네비게이션은 그대로 이어진다.
환경보다 중요한 건
React Native 자체에 익숙해지는 것이다.
정리
- Expo는 진입 장벽이 낮고 빠르게 시작할 수 있다
- CLI는 설정이 복잡하지만 자유도가 높다
- 처음 시작한다면 Expo가 현실적인 선택이다
- 필요해지면 CLI로 옮겨도 늦지 않다
다음 글에서는
**Expo 프로젝트 구조와 기본 파일들(App.js부터)**을
하나씩 뜯어보면서 정리해볼 예정이다.
'react-native' 카테고리의 다른 글
| React Native 스크롤 처리 정리: ScrollView와 FlatList 차이와 선택 기준 (0) | 2026.01.17 |
|---|---|
| React Native 스타일링 기초: StyleSheet와 Flexbox로 레이아웃 잡기 (0) | 2026.01.16 |
| React Native 기본 컴포넌트 정리: View, Text, Image부터 제대로 이해하기 (1) | 2026.01.15 |
| Expo 프로젝트 구조 한 번에 정리하기: 처음 열면 보이는 파일들 이해하기 (0) | 2026.01.14 |
| React Native란 무엇인가? 모바일 앱을 시작하기 전에 알아야 할 것들 (0) | 2026.01.12 |