정의
소프트웨어 버전을 관리할 때 <주버전>.<부버전>.<수정버전> 형태로 규칙을 정해놓은 방식.
예: 3.7.1 => 주버전: 3, 부버전: 7, 수정버전: 1
구성요소
1. 주버전(Major)
- 기존 버전과 호환되지 않는 변경이 있을 때 올린다.
- 예: API 규격이 바뀌거나, 이전 코드를 그대로 쓰면 에러가 나는 경우(1.5.2 => 2.0.0)
2. 부버전(Minor)
- 호환성을 유지하면서 새로운 기능을 추가했을 때 올린다.
- 예: 기존 기능은 그대로 두고, 새로운 함수/옵션/엔드포인트를 추가한 경우(1.5.2 => 1.6.0)
3. 수정버전(Patch)
- 버그 수정이나 사소한 개선이 있을 때 올린다.
- 예: 오타 수정, 내부 로직 버그 수정(기능 변화 없음)(1.5.2 => 1.5.3)
규칙
- 초기 개발 단계에서는 0.x.y 버전을 사용(안정화되지 않은 버전)
- 1.0.0 버전부터는 공개되며, 안정화를 약속한다.
- 상위 수준의 버전이 올라가면 하위 버전은 0으로 변한다.(1.4.3 => 2.0.0)
참조
유의적 버전
https://semver.org/lang/ko/