소프트웨어 버전 관리에서 버전 번호는 일반적으로 세 자리의 숫자로 구성되며, 각 숫자는 각각 주 버전, 마이너 버전, 패치 버전을 나타냅니다.
버전 번호의 구성
형식: 주 버전.마이너 버전.패치 버전 (Major.Minor.Patch)
주 버전 (Major)
- 의미: 주 버전의 변경은 대규모 업데이트나 중요한 변경 사항을 나타냅니다. 이는 API의 호환성을 깨트릴 수 있으며, 이전 버전과의 역호환성을 보장하지 않을 수도 있습니다.
- 변경 이유: 완전히 새로운 기능이나 아키텍처 변경, 혹은 기존의 기능을 크게 변경하여 사용자나 다른 소프트웨어가 큰 영향을 받을 수 있는 경우 주 버전이 증가합니다.
- 예시:
1.0.0
에서2.0.0
으로의 변경은 소프트웨어가 근본적으로 많이 변했고, 사용자는 코드 수정이 필요할 수 있음을 의미합니다.
마이너 버전 (Minor)
- 의미: 마이너 버전의 변경은 새로운 기능 추가와 같이 주 버전 내에서의 향상을 나타냅니다. 마이너 버전의 변경은 이전 버전과 호환성을 유지합니다.
- 변경 이유: 새로운 기능이 추가되거나 기존 기능이 확장되었으나, 기존의 기능에 영향을 미치지 않는 경우 마이너 버전이 증가합니다.
- 예시:
1.1.0
에서1.2.0
으로의 변경은 새로운 기능이 추가되었지만, 기존 코드가 여전히 정상 작동함을 의미합니다.
패치 버전 (Patch)
- 의미: 패치 버전의 변경은 주로 버그 수정, 보안 업데이트, 성능 개선 등을 나타냅니다. 이는 새로운 기능을 추가하지 않고, 기존 기능의 결함을 수정합니다.
- 변경 이유: 버그를 수정하거나 성능을 개선하여 소프트웨어의 안정성을 높이는 경우 패치 버전이 증가합니다.
- 예시:
1.0.1
에서1.0.2
로의 변경은 작은 버그가 수정되었음을 의미합니다.
추가 버전 태그
SNAPSHOT
- 의미: 개발 중인 불안정한 버전을 나타냅니다. 이는 공식 릴리스 전에 제공되는 버전으로, 테스트 목적으로 사용되며, 종종 변경될 수 있습니다.
- 사용 예시:
1.0.0-SNAPSHOT
은 1.0.0 정식 버전이 출시되기 전의 개발 버전임을 의미합니다.
RC (Release Candidate)
- 의미: 정식 출시 후보 버전을 나타내며, 안정화가 거의 완료된 상태로, 주요 버그가 없으면 이 버전이 정식 버전으로 승격됩니다.
- 사용 예시:
1.0.0-RC1
은 첫 번째 릴리스 후보 버전임을 의미합니다.
GA (General Availability)
- 의미: 일반적으로 사용 가능한 안정화된 정식 버전을 나타냅니다.
- 사용 예시:
1.0.0-GA
는 정식 출시된 안정 버전임을 의미합니다.
예시
- 1.0.0: 초기 정식 릴리스.
- 1.1.0: 새로운 기능이 추가된 릴리스.
- 1.1.1: 버그가 수정된 릴리스.
- 2.0.0: 이전 버전과 호환되지 않는 대규모 변경이 포함된 릴리스.
참조
- ChatGPT 4o
'Development > Tip' 카테고리의 다른 글
[Redis] Redis 기초 (0) | 2024.08.05 |
---|---|
이벤트 드라이븐 아키텍처와 메세지 큐 (0) | 2024.08.02 |
[Tip] Github README에 내가 작성한 블로그 최신 글 가져오기 (0) | 2024.03.10 |
[Tip] KPT(Keep, Problem, Try) 방식으로 프로젝트 회고하기 (0) | 2024.02.25 |
[Tip]테스트 코드를 작성하는 이유, Given When Then, FIRST 속성 (0) | 2024.02.21 |