들어가며
앱 개발을 하다보면 개발 빌드(Development Build), 테스트 빌드(Test Build), 커스텀 빌드(Custom Build), 로컬 빌드(Local Build), 네이티브 빌드(Native Build) 같은 용어도 혼용되곤 합니다.
이 글에서는 각 용어의 차이를 정리해 보겠습니다.
1. 디벨롭먼트 빌드(Development Build)
Expo 공식 용어로, 개발 환경에서 네이티브 코드 실행이 가능한 빌드를 의미합니다.
- Expo Go와 달리 네이티브 모듈을 추가할 수 있음
eas build --profile development을 사용하여 생성
- Expo의 EAS Development Client를 활용해 빠르게 테스트 가능
📌 언제 사용하나요?
- Expo Go로 실행할 수 없는 네이티브 모듈(ex. react-native-push-notification) 사용 시
- 개발 중 Expo Go보다 더 네이티브 환경에 가까운 테스트가 필요할 때
2. 테스트 빌드(Test Build)
일반적으로 개발 과정에서 테스트용으로 빌드하는 모든 버전을 포함하는 넓은 개념입니다.
- 개발 빌드뿐만 아니라 프로덕션 빌드도 테스트 목적으로 사용 가능
- QA(품질 테스트) 과정에서 테스트 기기에서 실행할 앱을 빌드할 때 사용
📌 언제 사용하나요?
- 프로덕션 빌드 전에 QA 테스트용 버전을 만들 때
- 개발 빌드가 아닌 배포용 프로필(e.g.,
eas build --profile preview)로 테스트할 때
3. 커스텀 빌드(Custom Build)
Expo의 기본적인 관리형 빌드에서 벗어나, 사용자가 설정을 직접 조정한 빌드입니다.
eas.json에서 커스텀 프로필을 설정해 빌드 가능
- 특정 네이티브 설정을 변경하거나, 필요에 맞게 빌드 방식을 조정할 때 사용
📌 언제 사용하나요?
- Expo 기본 빌드 방식에서 벗어나 특정 네이티브 설정을 적용하고 싶을 때
- 회사/팀에서 자체적인 빌드 프로필을 만들고 싶을 때
4. 로컬 빌드(Local Build)
Expo의 클라우드 빌드(EAS Build)를 사용하지 않고, 로컬 환경에서 직접 빌드하는 방식입니다.
eas build --local 명령어를 사용하여 실행
- 클라우드 빌드 비용을 절약하거나, 내부 네트워크에서 직접 빌드해야 할 때 사용
📌 언제 사용하나요?
- Expo EAS 빌드가 아닌, 로컬 환경에서 직접 빌드하고 싶을 때
- CI/CD 없이 개발자가 직접 APK/IPA 파일을 빌드해야 할 때
5. 네이티브 빌드(Native Build)
Expo의 관리형 워크플로우에서 벗어나 네이티브 코드를 직접 수정할 수 있는 빌드 방식입니다.
expo prebuild를 실행하면 bare workflow로 전환 가능
- iOS/Android 네이티브 코드(Java, Swift, Kotlin, Objective-C)를 직접 수정할 수 있음
📌 언제 사용하나요?
- Expo의 관리형 워크플로우로 해결할 수 없는 네이티브 기능이 필요할 때
- 직접 네이티브 코드를 수정해야 하는 경우
결론: 어떤 용어를 써야 할까?
- 공식적인 "개발 빌드"를 말할 땐 → Development Build
- 그냥 테스트를 위한 빌드라면 → Test Build
- Expo 기본 방식에서 벗어나면 → Custom Build
- 클라우드 빌드가 아닌 로컬에서 실행하면 → Local Build
- 네이티브 코드를 직접 수정할 수 있다면 → Native Build
각 용어는 서로 비슷하지만 맥락에 따라 의미가 조금씩 다릅니다.
자신의 개발 상황에 맞는 표현을 사용하는 것이 중요합니다! 😊