728x90
반응형
Overview
Semantic Versioning(SemVer) 에 대해서 알아본다.
Semantic Versioning (SemVer)란?
Semantic Versioning(SemVer)은 소프트웨어 릴리스에 의미 있는 버전 번호를 할당하는 데 사용되는 버전 관리 체계이다. 이는 개발자와 사용자가 새 릴리스의 변경 사항과 프로젝트에 미치는 잠재적 영향을 이해하는 데 도움이 된다.
SemVer 형식
SemVer의 버전 번호는 다음 형식을 따른다.
MAJOR.MINOR.PATCH
- MAJOR: 호환되지 않는 변경을 수행할 때 증가
- 예: 1.0.0 → 2.0.0
- MINOR: 이전 버전과 호환되는 기능을 추가하면 증가
- 예: 1.0.0 → 1.1.0
- PATCH: 이전 버전과 호환되는 버그를 수정하면 증가
- 예: 1.0.0 → 1.0.1
주요 개념
Backward Compatibility
- MAJOR 릴리스로 인해 기존 통합이 중단될 수 있다.
- MINOR 릴리스는 기존 동작을 중단하지 않고 새로운 기능을 추가한다.
- PATCH 릴리스는 새로운 기능을 추가하거나 중단하지 않고 문제를 해결한다.
Pre-release Versions
- 하이픈과 식별자를 추가하여 표시: `1.0.0-alpha`, `1.0.0-beta.1.`
- 버전이 아직 안정적이지 않으며 테스트용임을 나타낸다.
Build Metadata
- '+' 및 메타데이터: `1.0.0+build123` 을 추가하여 표시된다.
- 빌드 또는 배포 관련 세부 정보에 사용된다(버전 우선 순위에서는 무시됨).
SemVer의 규칙
초기 개발
- 버전은 `0.y.z` (예: `0.1.0` )에서 시작된다.
- 첫 번째 안정 릴리스(`1.0.0`)까지는 브레이킹 체인지가 자주 발생할 것으로 예상된다.
버전 우선순위
- 우선순위는 숫자로 계산된다.
- 예:
- `1.0.0` > `0.9.9`
- `1.2.3-alpha` < `1.2.3`
버전 안정성
- MAJOR 번호의 변경은 주요 변경 사항이 포함된 새 버전을 나타낸다.
- MINOR 업데이트는 프로젝트와 호환되지 않는 종속성을 도입하지 않는 한 채택해도 안전하다.
SemVer를 사용해야 하는 이유
- 명확성: 변경 사항의 유형과 영향을 명확하게 이해할 수 있다.
- 호환성: 종속성 간의 원활한 통합을 보장한다.
- 자동화: 종속성 관리자와 같은 도구를 사용하여 버전 업데이트를 자동으로 처리할 수 있다.
Reference
728x90
반응형
'IT 용어' 카테고리의 다른 글
[IT 용어 5.] CI/CD란? (2) | 2024.11.25 |
---|---|
[IT 용어 3.] JWT(JSON Web Tokens)란? (0) | 2024.11.18 |
[IT 용어 2.] 어플라이언스(Appliance)란? (4) | 2024.11.17 |
[IT 용어 1.] Devops, SRE, Cloud/System Engineer (8) | 2024.11.14 |