버전(Version)을 제대로 이해하기

Q. 1.3과 1.12 중 어느 버전이 더 최신 버전인가요?
A. 1.12가 더 최신버전입니다.

위의 같은 질문류를 커뮤니티에서 본 적이 있는데 놀랍게도 1.3을 1.12보다 더 높은 버전으로 생각하는 사람이 많은 것 같았다. 그래서 이번에는 버전 번호를 제대로 이해하는 방법을 한번 써 볼까 한다.

Version 정리

버전 번호는 점(dot)으로 구분되며 순서대로 다음과 같은 식의 구조를 가지고 있다.

Major Version . Minor Version . Build or Maintenance Version

이게 일반적인 정의지만 정석은 아니다. 실제로 버전 번호는 3자리 이상도 사용 하기도 한다.

일단 여기서는 설명을 위해 3자리를 기준으로 이렇게 표현하겠다.

Release Number . Major Number . Minor Number

  • Release Number: 1로 시작해서 전체를 뒤엎을 정도로 큰 변화가 발생했을 때 이 수치를 올린다. (영화 속편이 나오면 2편 혹은 투(two)이라는 이름을 붙이듯 말이다.)
  • Major Number: 0으로 시작해서 주요 기능의 추가나 변경 등 사용상 혹은 컨텐츠의 주요 변화가 발생했을 때 1혹은 무작위로 증가한다. 간혹 알파벳이 붙기도 하는데 예를 들어 Beta(테스트버전)의 경우 b를 숫자 뒤에 붙이는 경향이 있다.
  • Minor Number: 0으로 시작해서 버그 수정 등 미미한 변화가 발생하면 1씩 혹은 무작위로 증가한다. 역시 개발사 정책에 따라 특정 알파벳이 붙을 수도 있다.

버전 번호의 증가나 변화는 개발사 특유의 정책에 의해 충분히 변화 할 수 있지만, 각 점(dot) 별 순서의 의미 자체는 크게 변하지 않는다.

소숫점으로 인한 오해

Version의 번호에 붙는 점(dot)을 소숫점으로 인식해서 간혹 오해를 일으키는 경우가 있다. 위의 질답에서 답이 틀렸다면 버전을 소수로 읽고 있기 때문일 것이다.

정확히 말하자면, 버전은 소수가 아니다. Major나 Minor 버전의 경우 한 자리로 표기되면 2자리로 바꿔서 보면 편하다.

1.1 -> 알기쉽게 일반적으로 표현하면 1.01
1.10 ->  그 자체로 표현

이렇게 바꿔놓고 보면 편하다. 즉, 1.1보다 1.10이 더 높은 버전 번호이다. 1.1과 1.10은 같은 버전이 절대로 아니다.

1.2 -> 변형해서 1.02
1.12 -> 그대로 1.12

이 경우를 소수로 인식해서 1.2와 1.12는 1.2가 더 크니까 1.2가 최선 버전이다 라고 인식하면 안된다. 1.2는 1.02로 인식하는게 더 정확하다.

세 자리 이상으로 표현된 버전의 경우도 위 처럼 2자리 이상의 숫자로 변경해 놓고 생각하면 된다.

특정 개발사는 정확한 버전 구분을 위해 1.1 대신 1.01 과 같이 정확하게 표기해 주는 경우도 있다. 이런 경우는 구분하기 편할 것이다.

보통은 Major나 Minor 버전 숫자가 2자리를 넘어갈 정도 까지 갈 정도로 버전을 붙이지는 않는다. 그 만큼 변화가 많은 소프트웨어는 사용자 입장에서도 크게 좋은 건 아니니깐 말이다.

RC와 Beta

RC(Release Candidate)와 Beta 라는 이름을 버전 근처에 붙이는 경우가 있는데 둘 다 비슷한 의미이다. 바로 테스트 버전이라는 의미이다.

특히 RC의 경우는 릴리즈(Release, 정식 배포) 후보라고 해서 이 버전에서 테스트 해서 문제가 없으면 별 다른 수정 없이 RC만 떼어내고 릴리즈 하는게 일종의 관행이다. RC도 특정 숫자가 붙을 수도 있는데 RC1, RC2 이런 두 가지가 있다면 둘 다 릴리즈 후보라는 것이다.

개발사 특유의 버전 네이밍: Mac OS X

현재 애플에서는 OS X 라고 공식적으로 칭하고 있지만 어쨌든 Mac OS X라는 매킨토시용 OS 이름이 있다. 여기서 X는 알파벳 숫자로 아라비안 숫자로 표시하면 10이다. 즉 OS X는 10.x.x라는 버전의 제품명이다.

최신 OS X인 라이온(Lion)은 10.7.x 버전으로 표기되고 있다. 여기서 Major 버전 7이 라이온의 주요 버전인 셈이다. 비슷하게 10.6.x 는 Snow Leopard, 10.5.x는 Leopard 이다.

OS의 경우 제일 앞의 버전 번호 변화는 정말 큰 변화다. 그래서 애플에서는 이런 식으로 두 번째 버전 번호를 큰 변화를 암시하는 식으로 버전을 명명한다.

개발사 특유의 버전 네이밍: Google Chrome

구글에서 개발/배포하는 유명한 인기 웹브라우저. 특징적인 면이 있다면 굉장히 버전이 빨리 올라간다는 점. 특히 제일 앞자리는 1년에도 수 차례 올라갈 정도로 지나치게 변하고 있다고 느끼고 있다.

하지만 크롬의 버전 명명은 눈속임인 것 같다. '나 굉장히 빨리 발전하고 있어요!' 라는 말을 하는 것 같다. 개인적으론 크롬의 버전은 앞에 하나가 숨은 것 같다. 현재 가장 최신 버전인 10.0.963.56 이라는 버전은 1.10.0.963.56 이 아닐까 -_-;;;;

정리

버전의 점(dot)을 수학의 소숫점로 읽으면 곤란하다. 또한 버전에는 영문자도 쓸 수 있고 개발사 마다 버전을 구분하는 점(dot)을 몇 가지 이용하느냐도 다르다.

버전 제일 앞자리가 변경될 정도의 변화에는 아예 버전 대신 제품명을 바꾸는 케이스도 있으니 주의하자.

[관련글] 버전 - Seorenn Note

댓글

익명님의 메시지…
정말 정리잘되있어서 글좀 퍼가겠습니다.
출처 남기겠습니다.좋은글 정말 감사합니다!!
익명님의 메시지…
저도 글 참조하겠습니다.
Paul Ryu

이 블로그의 인기 게시물

소수점 제거 함수 삼총사 ceil(), floor(), round()