유의적 버전 원문 발췌
유의적 버전은 혁신적인 아이디어가 아니다. 사실, 이미 이와 비슷한 방식으로 버전을 정해서 쓰고 있었을 수 있다.
문제는 이와 "비슷한" 방식으로는 충분치 않다는 점이다.
어떠한 형태로 정식 명세를 정해서 따르지 않는다면, 버전 번호는 의존성 관리에서 무의미하다.
이상의 아이디어에 이름을 정하고 명시적인 정의를 내림으로써, 소프트웨어 사용자에게 제작자의 의도를 전달하기 쉬워진다.
의도가 명확해야만, (너무 지나치지는 않은) 융통성 있는 의존성 명세를 만들 수 있다.
유의적 버전을 사용함으로써 의존하는 패키지들의 새 버전들과 씨름하지 않고, 시간 낭비와 소란 없이 패키지를 공개하고 업그레이드할 수 있다.
Github 공동 창업자 Tom Preston-Werner 는 이런 문제를 해결하기 위해 Semantic Versioning 을 제안하였다.
영어로는 Major, Minor, Patches 라고 명명되고, 국내에서는 주(主), 부(部), 수(修) 라고 불린다.
모든 버전은 숫자로 이루어지며, 업데이트는 해당 위치의 숫자의 증가로 알린다.
{The Major Version}
: 기존 버전과의 비호환 및 API 변경{The Minor Version}
: 기존 버전과의 호환 및 새 기능 추가{The Patch Version}
: 기존 버전과의 호환 및 자잘한 버그 수정자세한 사항은 유의적 버전 2.0.0-ko2 에서 확인할 수 있다.
Chrome 과 같은 몇몇 소프트웨어는 4자릿수인 경우도 있는데, 이럴 경우는 가장 마지막 자릿수는 추가 메타데이터를 지칭한다.
사실 우리는 알고있다. 각 숫자가 어떤 의미를 말하는 지 정확히 몰랐을 뿐 !
지금 연구실 개인 서버는 반드시 우분투를 설치하는데, 이때 무슨 버전을 깔 건지 고민을 한다.
22.04를 깔 거냐… 20.04는 예전에 사용했는데… 라떼는 16.04를 썼다 이말이야…. 등등…
우분투도 당연하게도 Semantic Versioning 규율을 따른다. 버전 명명 방식을 연도 및 월로 사용할 뿐이다
그래서 우분투 릴리즈 시기를 버전을 보고 바로 알 수 있다.
필자가 마지막으로 갤럭시를 썼을 때가 … 아이스크림 샌드위치였다
사실 메이저 버전의 증가와 코드네임이 일치하지는 않지만, 이런 경우도 있다
얘도 코드네임… 뭐 애칭이 있다.
초창기는 목성의 위성 혹은 이와 관련된 인물을 채용했다고 한다. 이후로는 갈릴레오 갈릴레이의 이름을 따왔다고~
이후로는 천문학 네이밍… 원자론 네이밍… 등등이 있다 !
BLAG Linux는 엄청 큰 버전 번호를 제공한다. 매우 상남자스럽다.
메이저 릴리즈에는 50000, 60000의 숫자를 사용하며, 마이너 릴리즈는 숫자를 1씩 증가한다. (50001, 50002)
2014년에는 200000 버전이 릴리즈 되었다고 합니다.
특이하게 알파 및 베타 릴리즈는 주 릴리즈보다 약간 적은 번호를 사용한다고 한다.