Expo와 React Native CLI 차이점 정리

oversleep·2025년 2월 25일

app-development

목록 보기
26/38

React Native를 개발할 때 대부분 Expo를 먼저 사용하게 된다.
그런데 프로젝트가 점점 커지고 네이티브 모듈을 추가해야 할 상황이 오면 Expo를 벗어나야 하는 순간이 온다. 이때 많은 개발자가 궁금해하는 것이 바로 다음과 같은 질문이다.

  • "이제 Expo 없이 가야 하는데, 왜 npx expo start 같은 명령어를 계속 사용해야 하지?"
  • "Expo Go는 테스트용 앱이라 치고, 그럼 Expo는 대체 뭐야?"
  • "Expo 없이 하면 기존처럼 i 눌러서 iOS 시뮬레이터로 보는 거 못하는 거야?"

이제 하나씩 정리해보자.


1. Expo Go vs Expo

📌 Expo Go란?

"초보 개발자가 만든 앱을 쉽게 실행할 수 있도록 해주는 테스트 앱"

  • npx expo start 후 QR 코드를 찍으면 Expo Go에서 앱을 실행할 수 있음.
  • 네이티브 코드 수정이 불가능해서, 직접 네이티브 모듈을 추가하거나 수정하는 작업은 못 함.

📌 Expo란?

"React Native 프로젝트를 쉽게 관리할 수 있는 개발 도구 및 라이브러리 모음"

  • npx expo start 같은 명령어를 제공하여 개발 환경을 편리하게 유지할 수 있게 해줌.
  • Expo Go를 사용하는 방식과 네이티브 코드까지 수정하는 방식(Bare Workflow) 둘 다 지원.
  • 네이티브 코드까지 수정하려면 expo prebuild를 실행하여 iOS와 Android 네이티브 폴더를 생성해야 함.

2. Expo 없이 실행하면 어떻게 해야 할까?

Expo를 사용하면 (npx expo start)

  • 터미널에서 npx expo start 입력 후,
  • i(iOS) 또는 a(Android) 눌러서 실행 가능
  • QR 코드를 찍어서 Expo Go에서 실행 가능

Expo 없이 하면 (React Native CLI 사용)

  1. Xcode 또는 Android Studio에서 빌드해야 함
  2. 실행 명령어가 변경됨
    • iOS: npx react-native run-ios
    • Android: npx react-native run-android
  3. Expo Go 사용 불가, 대신 직접 빌드한 앱을 디바이스 또는 에뮬레이터에서 실행해야 함.

3. 네이티브 코드 수정하면서 Expo 기능도 유지하고 싶다면?

Expo Dev Client를 사용하면 된다!

Expo를 완전히 버리지 않으면서도 네이티브 코드까지 수정하고 싶다면 expo-dev-client를 활용할 수 있다.

🚀 Expo Dev Client 설정 방법

expo install expo-dev-client
npx expo prebuild # 네이티브 코드 폴더 생성
npx expo start --dev-client

이렇게 하면 기존 Expo 개발 방식처럼 사용하면서도 네이티브 코드 수정이 가능하다.


4. 결론

Expo 없이 하면 npx expo start로 실행하는 방식은 불가능하다. 대신 npx react-native run-ios 또는 npx react-native run-android로 직접 빌드해야 한다.
네이티브 코드까지 수정하면서 Expo 기능을 유지하고 싶다면 expo-dev-client를 활용하면 된다.
완전한 React Native 환경으로 가려면 네이티브 폴더를 생성하고 빌드 프로세스를 익혀야 한다.

이제 Expo를 벗어나야 하는 이유와 실행 방법을 확실히 이해했을 것이다. 🚀

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

0개의 댓글