컴퓨터 일반

프로그램 버전 표기 방식. Semantic Versioning

별빛의온기 2022. 11. 1. 17:21
반응형

프로그램 개발을 하다보면 2.5.12 와 같은 프로그램 버전에 대한것을 볼 수 있습니다. 이렇게 3개의 숫자 단위를 사용하는 버전 표기 방식을 Semantic Versioning(시맨틱 버저닝)이라고 하며, 줄여서 SemVer라고도 합니다.

이 방식은 일반적으로 많이 사용하는 버전 표기 방식입니다. 

 

이 방식은 그라바타(Gravatars)의 창시자이자 깃헙(GitHub)의 공동창업자인 Tom Preston-Werner가 작성했습니다. 우선 표기 방식에 대해 요약하기에 앞서 원문 사이트를 소개하고자 합니다. 

 

 

Semantic Versioning 2.0.0 | Semantic Versioning (semver.org)

 

Semantic Versioning 2.0.0

Semantic Versioning spec and website

semver.org

 

참고로 위 사이트에서 한국어를 클릭하면 한국어 번역본을 볼 수 있습니다. 머리말에 이러한 표기 방식이 왜 생겼는지에 대한 설명과 함께 전체적인 구조를 설명합니다.

 

위 사이트를 기준으로 설명하면 아래와 같습니다. 

 

 

 

버전은 Major, Minor, Patches 숫자 영역으로 구분짓고, 

 1. 기존 버전과 호환되지 않게 API가 변경되면 Major Version을 올려야한다.

 2. 기존 버전과 호환되면서 새로운 기능을 추가할 때는 Minor 버전을 올려한다.

 3. 기존 버전과 호환되면서 버그를 수정한 것이라면 Patches를 올려야한다.

 

위 형식에 정식 배포 전이나 빌드 메타데이터를 위한 라벨을 덧불이는 방법도 있습니다.

 

이러한 버전 관리에는 규칙이 있습니다. 간략하게 중요하다고 생각되는 부분만 발췌하였습니다.

 

 1.  Semantic Versioning을 쓰는 소프트웨어는 반드시 공개 API를 선언한다. 이 API는 코드 자체로 선언하거나 문서로 엄격히 명시해야 한다. 어떤 방식으로든, 정확하고 이해하기 쉬워야 한다.

 

 2. 버전 번호는 반드시 X.Y.Z의 형태로 하고, X, Y, Z는 각각 자연수(음이 아닌 정수)이고, 절대로 0이 앞에 붙어서는 안 된다. X는 Major 버전 번호이고, Y는 Minor 버전 번호이며, Z는 Patches 버전 번호이다. 각각은 반드시 증가하는 수여야 한다. 예: 1.9.0 -> 1.10.0 -> 1.11.0.

 

 3. 특정 버전으로 패키지를 배포하고 나면, 그 버전의 내용은 절대 변경하지 말아야 한다. 변경분이 있다면 반드시 새로운 버전으로 배포하도록 한다.

 

 4. Major Version 0(0.y.z)은 초기 개발을 위해서 쓴다. 아무 때나 마음대로 바꿀 수 있다. 이 공개 API는 안정판으로 보지 않는 게 좋다.

 

 5. Major 버전이 올라가면 Minor 버전과 Patches 버전은 0에서 다시 시작한다.

 

 6. Minor 버전이 올라가면 Patches 버전은 반드시 0에서 다시 시작한다.

 

 

 

 

반응형