React Native Expo vs Cli

최현호최현호
3 min read

🚀 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 비교표

항목ExpoReact 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 업데이트

0
Subscribe to my newsletter

Read articles from 최현호 directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

최현호
최현호

Frontend Developer