React Native Expo vs Cli

🚀 1. Expo란?
Expo는 React Native 위에서 동작하는 앱 개발 플랫폼입니다. React Native를 더 쉽고 빠르게 시작할 수 있도록 도와주는 도구 모음이자 런타임입니다.
📦 Expo가 제공하는 것들
expo CLI: 빠르게 프로젝트 생성
Expo Go 앱 (iOS/Android): 개발한 앱을 바로 스마트폰에서 테스트 가능
Expo SDK: 카메라, 위치, 푸시 알림 등 자주 쓰는 기능을 라이브러리로 제공
빌드 서비스: 클라우드에서 앱 빌드 (EAS Build)
✅ Expo의 장점
장점 | 설명 |
빠른 시작 | npx create-expo-app 명령어로 바로 시작 가능 |
복잡한 네이티브 설정 無 | Xcode/Android Studio 없어도 개발 가능 |
Expo Go 앱 | 실제 기기에서 QR코드만으로 테스트 가능 |
다양한 API 내장 | 카메라, 파일, 위치, 센서 등 미리 내장됨 |
❗️Expo의 단점
단점 | 설명 |
네이티브 코드 직접 수정 어려움 | Swift/Kotlin으로 직접 커스터마이징 필요할 경우 제약 |
Expo 지원 안 되는 기능 있음 | 일부 고급 기능(예: Bluetooth, Custom SDK 연동)은 불가 |
앱 크기 증가 | Expo SDK 전체를 포함하기 때문에 앱 크기가 커질 수 있음 |
🛠️ 2. React Native CLI란?
React Native CLI는 Expo 없이 순수 React Native 환경에서 직접 앱을 개발하는 방식입니다. 즉, iOS와 Android의 네이티브 개발 도구(Xcode, Android Studio)를 직접 사용하는 “Bare Workflow”입니다.
✅ React Native CLI의 장점
장점 | 설명 |
완전한 네이티브 접근 | Swift/Obj-C, Kotlin/Java로 네이티브 코드 수정 가능 |
외부 네이티브 라이브러리 자유롭게 사용 | 모든 native SDK 연동 가능 |
커스터마이징 유연함 | build.gradle, Info.plist, native 설정 자유롭게 가능 |
❗️React Native CLI의 단점
단점 | 설명 |
초기 세팅 복잡 | Android/iOS 개발 환경 설정 필요 |
빌드 및 테스트 느림 | 앱 빌드 속도 및 테스트 환경 무거움 |
초보자 진입 장벽 | 모바일 네이티브 개발에 대한 이해도 필요 |
🤔 Expo vs React Native CLI 비교표
항목 | Expo | React Native CLI |
초기 설정 | 매우 쉬움 | 복잡함 |
네이티브 코드 수정 | ❌ 어려움 | ✅ 가능 |
외부 네이티브 라이브러리 | ❌ 제한적 | ✅ 자유로움 |
앱 크기 | 큼 | 더 작게 조절 가능 |
개발자 진입 장벽 | 낮음 | 높음 |
빌드 방식 | 클라우드 빌드 지원 | 로컬 빌드 중심 |
✅ 어떤 걸 선택해야 할까?
초보자 / 빠른 MVP: 👉 Expo 추천
네이티브 SDK 연동 필요: 👉 React Native CLI
프로덕션 앱에 푸시 알림, OTA 업데이트 등이 필요한데 네이티브 수정이 귀찮다: 👉 Expo + EAS Build
회사에서 커스텀 네이티브 기능 구현 필요: 👉 React Native CLI
필요하다면 이후에 Expo 앱 → React Native CLI 앱으로 전환도 가능 합니다! (expo eject 명령어)
참고(다음에 더 알아보기)
EAS란?
EAS(Expo Application Services)는 Expo 팀이 만든 Expo 및 React Native 앱을 위한 긴밀하게 통합된 클라우드 서비스 입니다.
OTA 업데이트
Subscribe to my newsletter
Read articles from 최현호 directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

최현호
최현호
Frontend Developer