blog

유의적 버전(SemVer): 어떤 숫자를 올려야 할까

Front-end / Tooling#SemVer#버전 관리#npm

Semantic Versioning은 MAJOR.MINOR.PATCH 형식이며, 변경의 성격에 따라 올릴 자리가 정해진다.

변경올리는 자리예시
하위 호환되는 버그 수정PATCH1.2.3 → 1.2.4
하위 호환되는 기능 추가MINOR1.2.3 → 1.3.0
하위 호환이 깨지는 변경MAJOR1.2.3 → 2.0.0

앞자리를 올리면 뒷자리는 0으로 초기화한다.

함께 알아두면 좋은 것

  • 0.x 버전: 0.y.z는 초기 개발 단계로, 공개 API가 언제든 바뀔 수 있다고 본다. npm의 ^0.2.3은 0.2.x까지만 허용하는 것도 이 때문이다.
  • 프리릴리스: 1.0.0-alpha.1, 2.0.0-rc.1처럼 하이픈 뒤에 붙이며, 정식 1.0.0보다 낮은 버전으로 취급된다.
  • npm 범위 지정자
    • ^1.2.3: >=1.2.3 <2.0.0 (MINOR·PATCH 업데이트 허용)
    • ~1.2.3: >=1.2.3 <1.3.0 (PATCH 업데이트만 허용)
  • npm version patch|minor|major 명령은 package.json 버전을 올리고 git 태그까지 만들어 준다.