React Native 표준 프로젝트 vs. Expo 개발 빌드 – 차이점과 선택 기준

oversleep·2025년 2월 26일
0

app-development

목록 보기
28/38

React Native 앱을 개발할 때 표준 React Native 프로젝트(Bare Workflow)와 Expo의 개발 빌드(Development Build) 두 가지 방법이 있다.
이 둘은 개발 방식, 네이티브 코드 접근성, 빌드 과정에서 차이가 있다.

1. 표준 React Native 프로젝트 (Bare Workflow)

🔹 특징

  • npx react-native init MyApp로 프로젝트 생성
  • 네이티브 코드 수정 가능 (iOS: Swift/Objective-C, Android: Java/Kotlin)
  • react-native-firebase 같은 네이티브 라이브러리 자유롭게 추가 가능
  • Expo 없이 Xcode/Android Studio를 사용하여 빌드
  • 앱 실행:
    npx react-native run-android  
    npx react-native run-ios

🔹 언제 사용해야 할까?

✅ 네이티브 코드 수정이 필요한 경우 (예: FCM 푸시 토큰 적용)
✅ Expo에서 지원하지 않는 네이티브 기능이 필요할 때
✅ 특정 네이티브 라이브러리가 Expo에서 동작하지 않을 때

2. Expo 개발 빌드 (Development Build)

🔹 특징

  • npx create-expo-app로 프로젝트 생성 후 expo-dev-client 추가
  • Expo Go의 한계를 넘어 네이티브 패키지 추가 가능
  • expo run:android, expo run:ios를 사용해 직접 빌드 후 테스트 가능
  • 앱 실행:
    npx expo run:android  
    npx expo run:ios

🔹 Expo Go와의 차이

  • Expo Go → Expo에서 제공하는 패키지만 사용 가능
  • Expo 개발 빌드react-native-firebase 같은 네이티브 패키지 추가 가능

🔹 언제 사용해야 할까?

Expo 환경을 유지하면서 네이티브 패키지를 추가하고 싶을 때
✅ 빠른 개발 & 핫 리로딩이 필요할 때
✅ Expo 업데이트 관리를 계속하고 싶을 때

3. 표준 React Native vs. Expo 개발 빌드 비교

표준 React NativeExpo 개발 빌드
설치 방식npx react-native initnpx create-expo-appexpo-dev-client 추가
네이티브 코드 수정✅ 가능❌ 제한적
FCM 푸시 토큰✅ 가능❌ 기본적으로 불가능 (Bare로 전환 필요)
네이티브 라이브러리 추가✅ 자유롭게 가능🔸 일부 가능 (expo-dev-client)
빌드 과정Xcode/Android Studio 필요EAS(Build Service) 사용 가능
업데이트 관리직접 관리Expo에서 지원

4. 결론 – 어떤 걸 선택해야 할까?

Expo 개발 빌드 추천

  • Expo의 장점을 유지하면서 네이티브 라이브러리를 일부 추가하고 싶을 때
  • 빠른 개발과 자동 업데이트 관리가 중요한 경우

표준 React Native 추천

  • FCM 푸시 토큰이 필요한 경우 (예: Firebase 푸시 알림)
  • 네이티브 코드 커스터마이징이 필요한 경우
  • Expo에서 지원하지 않는 기능을 구현해야 하는 경우

👉 현재 Expo로 개발 중인데 FCM 푸시 토큰이 필요하다면?
expo eject를 실행하여 Bare Workflow로 전환하는 것이 필요하다. 🚀

profile
궁금한 것, 했던 것, 시행착오 그리고 기억하고 싶은 것들을 기록합니다.

0개의 댓글