Semantic Versioning (시맨틱 버저닝)
소프트웨어 버전은 일반적으로 다음과 같은 형식을 따릅니다
이는 Semantic Versioning (시맨틱 버저닝) 규칙을 기반으로 하며, 소프트웨어 변경 내용을 사용자에게 명확히 전달하기 위한 목적을 가지고 있습니다.
📌 버전 구성 요소
🔹 1. MAJOR (주 버전)
- 호환되지 않는 API 변경 시 증가
- 기존 기능이나 구조를 완전히 변경할 경우
- 예:
1.2.3→2.0.0 - 기존 사용자 코드가 깨질 수 있음
🔹 2. MINOR (부 버전)
- 기능 추가가 있을 때 증가
- 기존 기능과 호환성 유지
- 예:
1.2.3→1.3.0 - 기존 사용자는 그대로 사용할 수 있으며, 새 기능을 활용할 수도 있음
🔹 3. PATCH (수정 버전)
- 버그 수정 또는 안정성 향상 시 증가
- API나 기능의 변경 없이 동작 개선
- 예:
1.2.3→1.2.4
📘 예시
| 이전 버전 | 변경 후 버전 | 설명 |
|---|---|---|
1.2.3 |
2.0.0 |
호환성 깨지는 큰 변경 (MAJOR) |
1.2.3 |
1.3.0 |
새 기능 추가, 호환성 유지 (MINOR) |
1.2.3 |
1.2.4 |
버그 수정 (PATCH) |
🔸 추가 사항
Pre-release 버전
- 형식:
1.2.3-alpha,2.0.0-rc.1 - 정식 릴리스 전 테스트 용도
Build Metadata
- 형식:
1.2.3+build20250527 - 내부 빌드 식별용 정보 (배포와 무관)
🧩 실제 사례
Linux Kernel
5.10.27→5.10.28: 버그 수정 (PATCH)5.10.27→5.11.0: 기능 추가 (MINOR)5.10.27→6.0.0: 구조적 변경, 호환성 이슈 가능 (MAJOR)
📚 참고
- 공식 사이트: https://semver.org/lang/ko/
댓글남기기