RN_프로젝트 시작

Mary·2025년 2월 3일

ReactNative

목록 보기
5/14
post-thumbnail

React Native CLI vs Expo: 앱 프로젝트에 적합한 선택


1️⃣ React Native CLI란?

특징:

  • Native 코드(Android/iOS)에 직접 접근 가능
  • 커스터마이징 자유도가 높음 (Java, Kotlin, Swift, Objective-C 코드 수정 가능)
  • Native Module과의 통합이 쉬움
  • 성능 최적화가 필요한 복잡한 앱 개발에 적합

장점:

  • 고급 기능 구현이 용이 (예: Bluetooth, Background Service, Custom Animation)
  • 강화학습 모델과의 로우 레벨 API 통합이 쉬움
  • Android/iOS 환경에 최적화된 빌드 가능

⚠️ 단점:

  • 초기 설정이 복잡 (Xcode, Android Studio 필수)
  • 빌드 시간이 상대적으로 길고, 디버깅 난이도 ↑
  • 개발 환경 설정에 더 많은 시간 소요

2️⃣ Expo란?

특징:

  • 빠른 앱 프로토타이핑 및 개발에 적합
  • Native 코드 작성 없이도 다양한 기능 지원
  • Expo SDK로 카메라, 위치, 센서 등의 기능 간편하게 사용 가능
  • 웹, iOS, Android를 동시에 지원하는 크로스플랫폼 환경

장점:

  • 빠른 개발 속도 (설정 간단, expo start로 바로 실행 가능)
  • 강화학습 API 호출과 UI 개발이 간편함
  • OTA(Over-The-Air) 업데이트 지원 → 앱스토어 업데이트 없이 배포 가능

⚠️ 단점:

  • Native 코드 커스터마이징 어려움 (필요 시 "eject" 과정 필요)
  • 무거운 머신러닝 라이브러리나 복잡한 로직에서는 제약이 있을 수 있음
  • 고성능 최적화가 필요한 앱에는 한계 존재

📊 3️⃣ 비교 요약

항목React Native CLIExpo
개발 속도⏱️ 느림 (환경 설정 필요)⚡ 빠름 (설치 후 바로 개발 가능)
성능 최적화✅ 고성능 최적화 가능⚠️ 성능 최적화 한계 (Native 코드 접근 제한)
Native 모듈 통합✅ 자유롭게 가능❌ 제한적 (복잡한 기능은 "eject" 필요)
빌드 관리복잡 (Xcode/Android Studio 필요)간편 (expo build 명령어로 쉽게 빌드)
강화학습 API 연동✅ 유연한 커스터마이징 가능✅ 간단한 API 호출에는 문제 없음
배포 및 업데이트앱스토어를 통한 배포 필요OTA 업데이트 지원 (앱스토어 업데이트 불필요)

4️⃣ 앱 프로젝트에 맞는 선택

React Native CLI 추천 상황

  • 강화학습 모델을 직접 로컬에 배포하거나 고성능 처리가 필요한 경우
  • 복잡한 데이터 시각화, 고급 애니메이션, 센서 활용 등 Native 최적화가 필요한 기능이 있을 때
  • API 외에도 Native 모듈과 깊이 있는 연동이 필요한 경우
npx react-native init ReinforcementApp

Expo 추천 상황

  • 빠른 프로토타입 개발이 필요한 경우
  • 주로 강화학습 API 서버와의 통신이 핵심 기능일 때
  • 앱의 주요 기능이 데이터 표시, 간단한 사용자 입력 등 UI 중심일 때
npx create-expo-app ReinforcementApp

📢 최종 결론

상황추천 도구
고성능 최적화, Native 커스터마이징 필요React Native CLI
빠른 개발, API 연동 중심, 프로토타이핑Expo
기본은 Expo → 필요 시 EjectExpo로 시작하고 eject 고려 가능

🔑 결론:

  • 초기 개발 단계: Expo로 빠르게 개발 → 유지 관리 및 테스트
  • 성능 최적화 필요 시: React Native CLI로 전환 (Expo "eject" 가능)

추가 팁 (Expo Eject 방법)

만약 Expo로 개발을 시작했지만 나중에 Native 코드가 필요하다면:

npx expo eject
  • 이 과정 후에는 React Native CLI 환경으로 전환되어 Native 코드 수정 가능

0개의 댓글