IT 용어

[IT 용어 4.] Semantic Versioning (SemVer)란?

Somaz 2024. 11. 23. 10:40
728x90
반응형

Overview

Semantic Versioning(SemVer) 에 대해서 알아본다.

 

 

 


Semantic Versioning (SemVer)란?

Semantic Versioning(SemVer)은 소프트웨어 릴리스에 의미 있는 버전 번호를 할당하는 데 사용되는 버전 관리 체계이다. 이는 개발자와 사용자가 새 릴리스의 변경 사항과 프로젝트에 미치는 잠재적 영향을 이해하는 데 도움이 된다.

 

SemVer 형식

SemVer의 버전 번호는 다음 형식을 따른다.

MAJOR.MINOR.PATCH
  • MAJOR: 호환되지 않는 변경을 수행할 때 증가
    • 예: 1.0.0 → 2.0.0
  • MINOR: 이전 버전과 호환되는 기능을 추가하면 증가
    • 예: 1.0.0 → 1.1.0
  • PATCH: 이전 버전과 호환되는 버그를 수정하면 증가
    • 예: 1.0.0 → 1.0.1

 

주요 개념

 

Backward Compatibility

  • MAJOR 릴리스로 인해 기존 통합이 중단될 수 있다.
  • MINOR 릴리스는 기존 동작을 중단하지 않고 새로운 기능을 추가한다.
  • PATCH 릴리스는 새로운 기능을 추가하거나 중단하지 않고 문제를 해결한다.

 

Pre-release Versions

  • 하이픈과 식별자를 추가하여 표시: `1.0.0-alpha`, `1.0.0-beta.1.`
  • 버전이 아직 안정적이지 않으며 테스트용임을 나타낸다.

 

Build Metadata

  • '+' 및 메타데이터: `1.0.0+build123` 을 추가하여 표시된다.
  • 빌드 또는 배포 관련 세부 정보에 사용된다(버전 우선 순위에서는 무시됨).

 

SemVer의 규칙

 

초기 개발

  • 버전은 `0.y.z` (예: `0.1.0` )에서 시작된다.
  • 첫 번째 안정 릴리스(`1.0.0`)까지는 브레이킹 체인지가 자주 발생할 것으로 예상된다.

 

버전 우선순위

  • 우선순위는 숫자로 계산된다.
  • 예:
    • `1.0.0`  > `0.9.9`
    • `1.2.3-alpha` <  `1.2.3`

 

버전 안정성

  • MAJOR 번호의 변경은 주요 변경 사항이 포함된 새 버전을 나타낸다.
  • MINOR 업데이트는 프로젝트와 호환되지 않는 종속성을 도입하지 않는 한 채택해도 안전하다.

 

SemVer를 사용해야 하는 이유

  • 명확성: 변경 사항의 유형과 영향을 명확하게 이해할 수 있다.
  • 호환성: 종속성 간의 원활한 통합을 보장한다.
  • 자동화: 종속성 관리자와 같은 도구를 사용하여 버전 업데이트를 자동으로 처리할 수 있다.

 

 

 

 

 

 


Reference

https://semver.org/

728x90
반응형