본문 바로가기
웹개발 · IT 지식

[웹개발/배포] 소프트웨어 버전 넘버(semantic version) 정리 (Major, Minor, Patch Version, package.json에서 캐럿(^)기호의 의미)

by 메이플 🍁 2022. 4. 1.

소프트웨어 버전 넘버(semantic version)

우리가 흔히 보는 소프트웨어(카카오톡, 크롬, ios)를 보면 버전 넘버가 있다. 버전넘버는 앞에 version의 v와 일반적으로 세개의 숫자가 있다(v9.7.2). 참고로 버전 넘버를 영어로는 Semantic Versioning 줄여서 SemVer라고 한다. Semantic 즉 의미가 있는 버저닝이라고 부른다.

카카오톡 버전 넘버

v9.7.2
vmajor.minor.patch

 

첫번째숫자 (Major version)

  • API 변경
  • 기존 버전과 호환되지 않는 새로운 버전
  • 규모가 크거나 영향력이 큰 코드 변화
  • 이전의 기종과 호환이 되지 않는 새로운 기능 추가
  • v1.0.0 이전의 모든 버전은 베타버전(서비스를 배포하기 전 소프트웨어 개발버전)이다
  • v1.0.0은 정식버전(사용자에게 배포된 버전)이다

 

두번째숫자 (Minor version)

  • 기존 버전과 호환되는 새로운 기능이 추가된 버전

 

세번째숫자 (Patch number)

  • 기존 버전과 호환되는 버그 및 오타 등이 수정된 버전
  • 버그 수정
  • 작은 기능 추가, 수정, 삭제
  • 첫번째 release는 v0.0.1이다

 

더 자세한 규칙이 알고 싶다면 👉  semver.org

 

package.json에서 버전 앞에 붙은 캐럿(Caret)의 의미

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "parcel-bundler": "^1.12.5"
  },
  "dependencies": {
    "lodash": "^4.17.21"
  }
}

 

^Major.Minor.Patch

  • 같은 Major 버전 안에서 가장 최신 버전으로 업데이트 가능
  • Minor, Patch 버전이 바뀔 수 있음
  • 캐럿기호가 없으면 버전이 픽스된다
  • 캐럿기호가 있으면 npm update <프로젝트 이름>을 통해서 해당 프로젝트의 마이너, 패치 버전을 최신으로 업데이트 할 수 있다 

 


 

Reference

댓글