SemVer

Gaon12 (토론 / 기여)님의 2022년 9월 3일 (토) 16:12 판 (분류 추가)

개요

버전을 관리하고 정의하는데 사용되는 방법중에 하나로, "Semantic Version"의 약자이다.

평소 사용되고 있는 프로그램들의 대부분은 본 방식대로 사용되며, 직관적으로 구성되어 있어 버전을 한눈에 확인할 수 있다는 장점이 있다. 또한 버전을 통해 변경량을 짐작할 수 있으므로, 개발시 도입 여부를 확인하는 척도로 사용될 수 있다.즉, 버전을 보고 코드의 변화량을 짐작(예상)할 수 있는 체계이다.

구성

메이저 버전, 마이너 버전, 패치 버전으로 구성되어 있다.

메이저 버전

이전에 호환되지 않는 기능이나 API 등을 추가하는 경우에는 메이저 버전을 올린다. 파이썬을 예로 들 수 있는데, 파이썬2에서 작성한 코드를 파이썬3에서 실행하면 거의 대부분 정상적으로 작동하지 않는것이다. 따라서 메이저 버전이 올라간다면 그만큼 많이 변경되었다는 것이며, (특히 컴퓨터 언어에서는) 코드 작성을 다시해야 할 수도 있다는 뜻이다.

마이너 버전

이전과 호환되면서 기능 등을 추가한 것이 마이너 버전이다. 마이너 버전 간 코드는 호환이 되기에[1], 코드 작성시 부담이 적다. 다만 각주에도 설명했다시피 구버전-신버전 간 호환되지 않은 부분이 있을 수 있으므로 확인이 필요하다.

패치 버전

버그 수정시 버전이 올라가며, 패치 버전만 변경된 경우, 기존 코드를 수정할 필요는 없다.[2]

패치 버전 뒤에 하이픈(-)과 마침표(.)를 붙혀 세부적인 버전 표시가 가능하다. 예를 들어 버전이 2.3.7-beta.3인 경우, 2.3.7 버전보다는 낮은 버전[3]이라는 의미이다.

같이 보기

각주

  1. ↑ 물론 신버전에서 작성한 코드를 구버전으로 실행하면 되지 않는 경우나, 구버전에서는 작동했지만 보안 등의 이유로 신버전에서는 작동하지 않는 경우도 있다.
  2. ↑ 극히 드물지만, 버그를 활용한 코드인 경우인 경우에는 해당 버그가 수정되었다면 코드를 수정해야한다.
  3. ↑ 2.3.7-beta.3 < 2.3.7

최근 바뀜

더 보기