도찐개찐

[버전관리]시멘틱버저닝(Semantic Versioning) 란? 본문

프로그래밍

[버전관리]시멘틱버저닝(Semantic Versioning) 란?

도개진 2023. 7. 25. 16:58

Semantic Versioning 란?

 

프로그램을 개발 하다보면 많이 접하는 부분 중 하나가 버전 정보입니다.

다양한 라이브러리, 프레임워크, DB 등등등 에서 "3.2.1" 과 같은 형태를 많이 보셨을 겁니다.

1. 버저닝 종류

  • MAJOR : 하위 버전과 호환되지 않는 변화가 생겼을 때
  • MINOR : 하위 버전과 호환이 되면서, 새로운 기능이 추가 될 때
  • PATCH : 하위 버전과 호환이 되면서, 버그 수정

2. 버저닝 상세 규칙

1. 일반적인 규칙

  • 버전 번호는 Major, Minor, Patch 의 형태로 배포하고, Major, Minor, Patch 는 각각 자연수이고 절대 앞에 0이 붙어서는 안된다.
  • 각 번호의 수는 항상 증가해야 한다.
  • 특정 버전으로 패키지를 배포하고 나면, 그 버전의 내용은 절대 변경하지 말아야한다. 변경분이 있다면 반드시 새로운 버전으로 배포하도록 한다.
  • Major 버전이 변경될 때, Minor, Patch  0으로 초기화 된다.
  • Minor 버전이 변경될 때, Patch  0으로 초기화 된다.

2. Major 버전 증가

  • 하위 버전과 호환되지 않는 변화가 생겼을 때
  • 대대적인 변화가 일어났을 때
  • 클라이언트가 1.0.0 버전의 API 접근 방식으로 2.0.0 버전에 접속할 수 없을 때

3. Minor 버전 증가

  • 하위 버전과 호환이 되면서, 새로운 기능이 추가 될 때
  • 새로운 기능이 추가된 API 가 나왔지만, 기존의 공개된 API 가 하위 호환되고 있을 때
  • 기존의 기능이 변경되거나 사용 방법이 변경 되었을 때

4. Patch 버전 증가

  • 버그 수정
  • 기존 클라이언트가 알아차리지 못할 정도의 작은 변화가 있을 때
  • 서버 코드 내부적으로 소스가 수정되었을 때
  • 이 모든 것들이 하위 버전과 호환될 때

 

시멘틱 버저닝 상세 스펙 :

http://semver.org/ (원본)

http://spoqa.github.com/2012/12/18/semantic-versioning.html(번역본)

728x90
Comments