시멘틱 버저닝이란?
시멘틱 버저닝(Semantic Versioning, SemVer)은 소프트웨어 버전을 체계적으로 관리하기 위한 규칙이다. 프로젝트의 업데이트 상태와 변경 사항을 명확하게 표현하여 사용자와 개발자에게 일관된 정보를 제공한다. 시멘틱 버저닝은 주로 X.Y.Z 형태로 표현되며 각 숫자는 다음과 같은 의미를 가진다. MAJOR.MINOR.PATCH 형식으로 버전을 구성되어 각 숫자의 의미가 정해져 있어 개발자가 의도한 변경 사항을 명확하게 전달할 수 있다. 아래 package.json 파일은 시멘틱 버저닝을 이해하기 좋은 예시이다.
// Pakage.json 파일 일부
"devDependencies": {
"@eslint/js": "^9.9.0",
"@types/react": "^18.3.3",
"Ex" : "X.Y.Z",
}
시멘틱 버저닝의 구조
- 주 버전(Major Version): X
- 부 버전(Minor Version): Y
- 패치 버전(Patch Version): Z
MAJOR (주 버전)
첫 번째 숫자로 호환되지 않는 API 변경이 있을 때 증가시킨다. 예를 들어 기존의 함수나 기능을 삭제하거나 인수의 타입을 변경하는 등의 큰 변화가 있을 때 해당 숫자를 증가시킨다.
1.0.0 → 2.0.0로 변경된다면 이전 버전인 1.0.0 버전과는 2.0.0 버전은 호환되지 않는 큰 변화가 있는 것이다.
MINOR (부 버전)
두 번째 숫자로 호환 가능한 방식으로 새로운 기능을 추가할 때 증가시킨다. 기존 기능을 유지하면서도 새로운 기능이 추가될 경우이다.
예시: 1.1.0 → 1.2.0
PATCH (수 버전)
세 번째 숫자로 버그 수정과 같이 호환성에 영향을 미치지 않는 변경이 있을 때 증가시킨다. 새로운 기능을 추가하지 않고 기존 기능을 수정하거나 안정성을 높이는 변경이다.
예시: 1.0.1 → 1.0.2
프리릴리스(Pre-release) 및 빌드 메타데이터
추가적으로 시멘틱 버저닝은 프리릴리스 및 빌드 메타데이터를 포함할 수 있다.
- 프리릴리스: 아직 정식 릴리스가 아닌 버전을 나타낸다. 1.2.3-alpha, 1.2.3-beta와 같은 형태로 사용된다.
- 빌드 메타데이터: 배포 시점에 대한 추가 정보를 담을 수 있다. 1.2.3+20130313144700 같은 형식으로 빌드 메타데이터가 추가될 수 있다.
package.json에서의 버전 관리
시멘틱 버저닝 규칙을 따라 package.json에서 의존성 버전을 지정할 때 다음과 같은 표현식을 사용할 수 있다.
- ^1.2.3: 주 버전이 고정되며 부 버전과 패치 버전에서만 업데이트
- ~1.2.3: 부 버전이 고정되고 패치 버전에서만 업데이트
- 1.2.x: 패치 버전이 자유롭게 변경될 수 있음
참고문헌
'.ect' 카테고리의 다른 글
API, 라이브러리, 프레임워크 개념 (2) | 2024.08.16 |
---|---|
가비아에서 도메인 구매하기 + Vercel 프로젝트 (0) | 2024.08.13 |
Markdown문서 개념과 작성법 (0) | 2024.03.06 |