도찐개찐
[버전관리]시멘틱버저닝(Semantic Versioning) 란? 본문
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
'프로그래밍' 카테고리의 다른 글
개발툴 비교 VSCode VS JetBrains (0) | 2024.02.21 |
---|---|
[SementicVersioning] Conventional Commits (0) | 2023.10.18 |
[메시지큐] Message Queue (0) | 2023.03.03 |
[폴트 톨러런스] Fault Tolerant (0) | 2022.10.18 |
[객체지향] 리펙토링(Refectoring) 5대 원칙(SOLID) (0) | 2022.07.21 |
Comments