오늘은 앱의 버전 번호와 빌드번호에 대한 개념과 그 차이에 대해 포스팅을 작성하고자 한다.
예를 들어, Flutter에서 `pubspec.yaml` 파일을 보면, 다음과 같이 default 버전이 작성되어있다.
버전 번호(Version Number)
버전 번호는 일반적으로 `MAJOR.MINOR.PATCH` 형식으로 표기된다.
예를 들어 `1.0.0`은 다음과 같은 의미를 가진다.
- MAJOR(주 버전): 주요 기능 변경 또는 대규모 업데이트를 나타낸다. 예를 들어, `1.0.0`에서 `2.0.0`으로의 변경은 앱의 큰 변화가 있음을 의미한다.
- MINOR(부 버전): 기존 기능의 개선이나 작은 새로운 기능의 추가를 나타낸다. 예를들어, `1.0.0`에서 `1.1.0`으로의 변경은 주 버전과 호환되는 새로운 기능이 추가되엇음을 의미한다.
- PATCH(수정 버전): 버그 수정이나 작은 수정 사항을 나타낸다. 예를 들어, `1.0.0`에서 `1.0.1`으로의 변경은 작은 버그 수정이 있었음을 의미한다.
이러한 버전 번호 체계를 "시멘틱 버전(Sementic Versioning)" 이라고 한다. 이를 통해 사용자와 개발자는 앱의 변경 사항을 명확하게 이해할 수 있다.
빌드 번호(Build Number)
빌드 번호는 특정 버전의 여러 빌드를 식별하는 데 사용된다. 예를 들어, `1.0.0+1`에서 `+1`은 빌드 번호를 의미한다. 빌드 번호는 다음과 같은 경우에 증가한다:
- 같은 버전의 앱을 여러 번 빌드하고 배포해야 할 때
- 테스트를 위한 빌드가 필요할 때
- 지속적인 통합(CI) 및 배포(CD) 파이프라인에서 자동으로 빌드 번호를 증가시킬 때
예시
version: 1.0.0+1
위 예시에서:
- `1.0.0`은 앱의 주요 버전, 부 버전, 수정 버전을 의미한다.
- `+1`은 이 버전의 첫 번째 빌드를 나타낸다.
다음 번 빌드에서 버전 번호가 변경되지 않고 빌드 번호만 증가할 수 있다:
version: 1.0.0+2
이렇게 하면 사용자에게는 여전히 `1.0.0`으로 보이지만, 개발자나 배포 시스템은 `1.0.0`의 두 번째 빌드임을 알 수 있다.
활용 방법
버전 번호와 빌드 번호는 다음과 같은 방식으로 활용된다.
1. 사용자에게 명확한 정보 제공: 사용자에게 앱이 얼마나 자주 업데이트되는지, 주요 업데이트인지 작은 수정인지 명확하게 알려준다.
2. 앱 스토어 관리: App Store와 Google Play Store는 동일한 버전 번호를 가진 두 앱을 허용하지 않지만, 빌드 번호가 증가한 동일한 버전의 앱은 허용한다. 이를 통해 간편하게 앱을 업데이트할 수 있다.
3. 버그 추적 및 관리: 빌드 번호를 사용하여 특정 빌드에서 발생한 버그를 추적하고, 해당 빌드에 대한 피드백을 수집할 수 있다.
이러한 버전 관리 체계를 통해 앱 개발 및 배포 프로세스를 체계적으로 관리할 수 있다.
#References
https://jeong9216.tistory.com/109
https://brunch.co.kr/@joonwonlee/19
https://artieee.tistory.com/113