문서의 이전 판입니다!


유의적 버전 (Semantic versioning)

개발하는 소프트웨어의 규모가 커지고 외부 라이브러리를 많이 사용할 수록 의존성 지옥에 빠지기 쉬운 이유중 하나는 라이브러리의 버전을 변경할 때 어떤 규칙에 의해서 버전이 매겨지는지 통용되는 명확한 규칙이 없기 때문임.

유의적 버전(Semantic versioning)은 이런 의존성 문제를 해결하고자 나온 라이브러리의 버전 명시 규칙과 요구 사항으로 요약하면 다음과 같다.

먼저 외부에서 사용할 수 있는 공개 API 를 선언하고 라이브러리의 버전은 MAJOR.MINOR.PATCH 와 같은 형식으로 한다. 1)

  • 기존 버전과 호환되지 않게 API가 변경되면 "MAJOR 버전"을 올린다.
  • 기존 버전과 호환되면서 새로운 기능이 추가 되었을 때는 "MINOR 버전"을 올린다.
  • 기존 버전과 호환되면서 버그를 수정했을 경우 "PATCH 버전" 을 올린다.
  • 버전 형식 뒤에 "정식 출시전" 이나 빌드 메타데이타를 위한 레이블을 추가할 수 있다.

역링크