Expo에서의 "development build"는 개발 편의성을 극대화하기 위해 만들어진 특별한 앱 빌드 형태입니다. 흔히 Expo Go 앱과 비교해서 설명할 수 있습니다.
Expo Go와의 차이점:
- 네이티브 코드 사용 제약: Expo Go는 미리 빌드된 앱이기 때문에 프로젝트 내에서 네이티브 모듈을 추가하거나 네이티브 코드를 직접 수정할 수 없습니다. 즉, Expo SDK에서 제공하는 기능만 사용할 수 있습니다.
- 개발 속도: Expo Go는 JavaScript 코드 변경 시 즉시 반영되는 핫 리로딩을 지원하여 매우 빠른 개발 속도를 제공합니다.
- 공유 및 테스트: QR 코드를 통해 다른 개발자나 테스터와 간편하게 앱을 공유하고 테스트할 수 있습니다.
Development Build의 특징:
- 네이티브 코드 확장성: Development build는 프로젝트에 필요한 모든 네이티브 모듈을 포함할 수 있도록 사용자가 직접 빌드하는 앱입니다. 따라서 Expo SDK 외의 서드파티 네이티브 라이브러리를 사용하거나, 필요한 경우 네이티브 코드를 직접 작성하여 통합할 수 있습니다.
- 커스터마이징: 앱의 이름, 아이콘, 스플래시 화면 등 네이티브 관련 설정을 자유롭게 변경할 수 있습니다.
- 개발 환경 맞춤화: 개발 환경에 필요한 추가적인 도구나 설정을 포함할 수 있습니다.
- expo-dev-client 라이브러리: Development build는 핵심적으로 expo-dev-client라는 라이브러리를 포함합니다. 이 라이브러리는 향상된 개발 경험을 위한 다양한 기능을 제공합니다. 예를 들어, 더 자세한 오류 메시지, 네이티브 모듈 관련 문제 감지 등을 도와줍니다.
- 설치 필요: Expo Go와 달리, development build는 실제 기기, 에뮬레이터 또는 시뮬레이터에 직접 설치해야 합니다.
Development Build를 사용하는 이유:
- Expo Go의 한계 극복: 프로젝트에서 Expo SDK만으로는 구현하기 어려운 네이티브 기능을 사용해야 할 때 development build가 필요합니다.
- 앱 스토어 배포 전 최종 테스트: 실제 앱과 동일한 환경에서 기능을 테스트하고 빌드 설정을 점검할 수 있습니다.
- 팀 협업 강화: 팀원들과 공유하여 실제 기기에서 통합된 앱 환경을 테스트하고 피드백을 주고받을 수 있습니다.
요약하자면, Expo의 development build는 Expo Go의 편리함과 네이티브 코드의 유연성을 결합한 개발 환경입니다. 더 복잡한 기능이나 네이티브 모듈 연동이 필요한 프로젝트에서 필수적인 빌드 형태라고 할 수 있습니다.