"Semantic Versioning" 또는 줄여서 "SemVer"는 소프트웨어 버전을 명확하게 정의하고 관리하기 위한 규칙 세트이다.
주로 소프트웨어 프로젝트에서 새로운 업데이트를 추적하기 위해 사용한다.
MAJOR (주 버전): 호환되지 않는 API 변경이 있을 때 증가. 이는 기존 코드와의 호환성이 깨진 경우를 나타낸다.
MINOR (부 버전): 기존 기능에 호환성이 있는 새로운 기능이 추가될 때 증가. 이는 새로운 기능이 추가되었지만 기존 코드와의 호환성이 유지되는 경우를 나타낸다.
PATCH (수정 버전): 기존 기능에 대한 버그 수정이나 작은 개선이 이루어질 때 증가. 이는 기존 코드와의 호환성을 유지하면서 오류를 수정한 경우를 나타낸다.
CARET (캐럿): 버전의 범위를 나타낸다. 캐럿을 사용할 경우 부 버전 및 수정 버전은 업데이트할 수 있지만, 주 버전은 업데이트하지 않는다. 주 버전 변경 시에는 수동으로 확인하고 업데이트 결정을 내릴 수 있도록 하는 데 사용된다.