시맨틱 버저닝(Semantic Versioning) - Major.Minor.Patch

시맨틱 버저닝(Semantic Versioning)

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

  • 개발자 및 패키지 관리자
  • 중간~고급 수준 (버전 관리, 의존성 처리 경험 필요)

핵심 요약

  • Major.Minor.Patch 형식의 버전 관리 규칙
  • Major: 하위 호환성 깨짐 → 3.0.0
  • Minor: 새 기능 추가 → 1.3.0
  • Patch: 버그 수정 → 1.2.4
  • ^1.2.3: Major 고정, Minor/Patch 업데이트 허용
  • ~1.2.3: Minor 고정, Patch 업데이트 허용
  • 0.x.x 버전: 정식 출시 전이며 하위 호환성 보장되지 않음

섹션별 세부 요약

1. 시맨틱 버저닝 개요

  • 버전 번호에 명확한 의미를 부여해 변경 사항을 예측 가능하게 만드는 규칙
  • 개발자/사용자 모두가 버전 번호만으로 변경 내용 파악 가능
  • Major.Minor.Patch 형식 사용 (예: 2.9.1)

2. 버전 번호 의미

  • Major: 호환성 깨짐 → 3.0.0
  • Minor: 새 기능 추가 → 1.3.0
  • Patch: 버그 수정 → 1.2.4
  • Major/Minor 증가 시 오른쪽 숫자 0으로 초기화

3. 베타/알파 및 빌드 메타데이터

  • 1.0.0-beta.1: 정식 출시 전 베타/알파 버전
  • 1.0.0+2025020944700: 빌드 메타데이터 표기
  • 0.x.x 버전: 하위 호환성 보장되지 않음

4. 시맨틱 버저닝의 이점

  • 예측 가능성: 버전 번호로 변경 내용 파악 가능
  • 의존성 관리: 패키지 관리 도구에서 충돌 줄이고 안전한 업데이트 가능
  • 커뮤니케이션: 개발자 간 변경 사항의 위험성 명확히 전달

5. 패키지 관리 도구에서의 활용

  • ^1.2.3: Major 고정, Minor/Patch 업데이트 허용 (1.x.x 범위)
  • ~1.2.3: Minor 고정, Patch 업데이트 허용 (1.2.x 범위)
  • 자동 업데이트 범위 정의로 의존성 관리 효율화

결론

  • Major.Minor.Patch 형식을 준수해 의존성 관리의 예측 가능성을 높이고, ^/~ 기호로 업데이트 범위를 명확히 정의하는 것이 핵심
  • 0.x.x 버전은 정식 출시 전으로 하위 호환성 보장되지 않음을 주의해야 함