시맨틱 버저닝(Semantic Versioning, SemVer)은 소프트웨어의 [[공개 API]] 변경을 세 자리 버전 번호로 전달하는 규칙이다. 먼저 다른 프로그램이 의존해도 된다고 약속하는 기능과 사용법을 분명히 해야 한다. 숫자는 작업량이나 완성도의 점수가 아니라 [[호환성]]에 관한 신호다. ([시맨틱 버저닝 2.0.0 명세](https://semver.org/)) - [공식 웹사이트](https://semver.org/) - `MAJOR.MINOR.PATCH`에서 첫 숫자는 기존 사용법과 호환되지 않는 변경, 둘째는 호환되는 기능 추가, 셋째는 호환되는 버그 수정에 대응한다. 상위 숫자를 올릴 때 그 아래 숫자는 0으로 돌린다. - 예컨대 공개한 포스터 생성기의 필수 입력 이름을 `title`에서 `heading`으로 바꿔 기존 호출이 실패한다면 주요 버전 변경 사유가 된다. 선택 입력을 추가하면서 기존 호출을 유지하는 변경과 구분할 수 있다. - 이미 배포한 버전의 내용을 몰래 바꾸지 않는다. 수정한 내용은 새 버전으로 내놓아 사용자가 번호로 결과물을 구분하게 한다. [[버전 관리]]의 수정 이력과 배포 버전 번호는 서로 연결할 수 있지만 같은 것은 아니다. - `0.y.z`는 초기 개발을 위한 구간으로, 공개 API가 안정적이라고 간주하지 않는다. `1.0.0`부터 공개 API와 이후 변경 규칙을 기준으로 버전을 정한다. ## 기타 등등 - `1.0.0-rc.1`처럼 붙는 사전 배포 표시는 같은 숫자의 정식 버전보다 낮은 우선순위를 갖는다. 따라서 `1.0.0-rc.1`은 `1.0.0`보다 앞선다. [출처](https://semver.org/) - `1.0.0+build.7`의 `+` 뒤는 빌드 메타데이터다. 이 부분은 버전의 우선순위를 비교할 때 무시되므로 숫자가 커져도 더 높은 버전이 되지는 않는다. [출처](https://semver.org/) #개념 #소프트웨어 #버전관리