소프트웨어 버전 작성은 소프트웨어의 특정 상태를 식별하고 추적하기 위한 체계적인 방법입니다. 개발 과정에서 발생할 수 있는 혼란을 줄이고, 사용자 및 개발자 간의 소통을 원활하게 하기 위해서 일관된 버전 작성 기준이 필요합니다.
여러 버전 관리 방법 중 Semantic Versioning (유의적 버전 관리)이 가장 널리 사용되고 있습니다. 이번 글에서는 Semantic Versioning의 개념과 규칙을 자세히 알아보겠습니다.
Semantic Versioning(세만틱 버저닝)은 GitHub 공동 창립자인 Tom Preston-Werner가 제안한 소프트웨어 버전 관리 규칙입니다. 현재 공식 사양은 2.0.0 버전입니다.
버전은 주.부.수 (MAJOR.MINOR.PATCH) 형식으로 관리하며, 공개 API의 변경 사항에 따라 규칙적으로 버전을 증가시킵니다.
예: 1.4.2
| 버전 | 의미 | 예시 |
|---|---|---|
| MAJOR | 하위 호환되지 않는 변경 발생 시 | 1.0.0 → 2.0.0 |
| MINOR | 하위 호환되는 기능 추가/개선 시 | 1.0.0 → 1.1.0 |
| PATCH | 버그 수정 등 사소한 변경 시 | 1.0.0 → 1.0.1 |
11.0.0 # 첫 번째 안정 버전
21.0.1 # 버그 수정
31.1.0 # 새로운 기능 추가
42.0.0 # 하위 호환되지 않는 변경
52.0.0-alpha # 다음 주요 버전의 사전 배포
62.0.0+202308 # 빌드 메타 정보 포함주(主).부(部).수(修) 형식 (MAJOR.MINOR.PATCH)+로 추가