시멘틱 버저닝 - package.json

728x90

시멘틱 버저닝이란? 

시멘틱 버저닝(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: 패치 버전이 자유롭게 변경될 수 있음

참고문헌

 

시맨틱 버저닝 이해하기

이 글에서는 시맨틱 버저닝의 개념과 그 중요성에 대해 설명합니다. 메이저 버전, 마이너 버전, 패치 버전의 각 숫자가 어떤 의미를 가지는지, 그리고 시맨틱 버저닝이 소프트웨어 개발에서 어

f-lab.kr

 

728x90