✅ Expo란?
Expo란, React Native 앱을 더 쉽게 만들고 배포할 수 있도록 도와주는 플랫폼 + 툴 체인(toolchain)이다.
📦 Expo의 구성 요소들
| 구성 요소 | 설명 |
| Expo Go 앱 | 모바일에서 앱을 실시간으로 미리보기할 수 있는 앱 (앱스토어/플레이스토어에서 설치 가능) |
| Expo CLI | expo 명령어로 앱을 생성/실행/빌드/배포할 수 있는 커맨드라인 도구 |
| Expo SDK | GPS, 카메라, 푸시알림 등 다양한 기능들을 쉽게 쓸 수 있게 만든 라이브러리 모음 |
✅ expo CLI와 expo SDK의 차이
| 구분 | Expo CLLI | Expo SDK |
| 역할 | 명령어 기반 툴 (앱 실행/빌드/배포 등) | 앱에서 쓰는 기능 라이브러리 모음 |
| 설치 위치 | 로컬에 설치 (npm, yarn 등으로) | 프로젝트 내부에 설치됨 (package.json에 명시됨) |
| 버전 확인 | expo --version | package.json에서 expo 항목의 버전 확인 |
// package.json 예시
{
"dependencies": {
"expo": "^50.0.0"
}
}
✅ 보너스 질문: 그럼 expo랑 react-native는 어떻게 다르지?
- React Native는 기본적으로 Android/iOS 네이티브 코드 빌드 도구 설정이 직접 필요해요.
- Expo는 그런 복잡한 설정 없이 앱을 더 쉽게 만들 수 있게 해주는 프레임워크이자 툴체인이에요.
| 항목 | React NAtive (Bare) | Expo (Managed) |
| 네이티브 설정 | 직접 해야 함 | 자동으로 구성됨 |
| 빌드/배포 | 복잡함 | 명령어 한 줄로 가능 |
| 빠른 테스트 | X | Expo Go 앱으로 가능 |
| 자유도 | 매우 높음 | 다소 제한됨 (그러나 많이 개선됨) |
+++ 보너스 tmi
✅ 트러블슈팅: Expo CLI 버전 낮음 이슈
expo 개발환경세팅하면서 내가 겪었던 문제점은...
왜 인지는 모르겠으나 Expo CLI 버전이 너무 낮아서(0.22.22) 지우고 다시 설치해서 버전 업데이트하느라 꽤나 고생했다.
gpt로 해결법 찾으려다가도 계속 안 되면, 항상 공식문서를 참고하도록!!!
https://docs.expo.dev/workflow/upgrading-expo-sdk-walkthrough/
Upgrade Expo SDK
Learn how to incrementally upgrade the Expo SDK version in your project.
docs.expo.dev
🧨 낮은 Expo CLI 버전에서 발생 가능한 주요 문제들
| 문제 유형 | 구체적인 현상 |
| 🔄 명령어 비호환 | npx expo start --tunnel 같은 명령어 실행 시 Unknown option 또는 동작 안 함 |
| 🔗 프록시 서버 미지원 | 이전에는 가능하던 makeRedirectUri({ useProxy: true })가 작동하지 않거나, deprecated 됨 |
| 🧱 프로젝트 생성 구조 차이 | 최신 Expo는 expo-router, expo-updates, config plugins를 포함한 새로운 구조를 사용함 — 구버전 CLI로 만든 프로젝트는 파일 구조나 설정 방식이 다름 |
| ❌ SDK 버전 호환성 에러 | 프로젝트에 설치된 expo 버전이 예를 들어 52인데, CLI가 46을 기반으로 동작하고 있으면 "expected version ~52.0.0" 같은 경고 또는 빌드 실패가 발생 |
| 📦 패키지 설치 시 충돌 | 최신 패키지 설치하려고 하면 구버전 CLI가 peerDependencies를 제대로 해석 못해서 npm install 자체가 꼬일 수 있음 |
| 🚫 Expo Go 연결 문제 | 낮은 CLI는 현재 Expo Go 앱 버전과 연결이 안 맞아서 QR 찍어도 무한 로딩 또는“디버그 빌드 필요” 오류 발생 가능 |
| 🪲 디버깅 도구 제한 | npx expo start --dev-client 사용 불가하거나, 로그가 부정확하게 출력됨 |
'Frontend > React Native' 카테고리의 다른 글
| [RN / Expo] Vector Icon vs Image Icon(SVG or PNG) (0) | 2025.04.04 |
|---|