기타 Versioning 에 대한 참고 사항

황제낙엽 2012.08.28 21:46 조회 수 : 846

1.Software Version

소프트웨어는사람이만들다보니완벽을추구하기힘들다. 때문에, 같은기능을가진소프트웨어라도계속해서좀더나은기능을가진소프트웨어가만들어지게되는데, 이를전에있는소프트웨어와구별하기위해버전을표시한다.

일반적으로버전은다음과같이정의된다.

<?XML:NAMESPACE PREFIX = O />

Version
어떤
산출물의변형들. 일반적으로이전버전의산출물을확장하여이후버전의산출물을만든다

 

 

1.1.S/W 버전이 결정되기 까지..

버전을붙이는방법이따로있을까? 답은없다. 실망스러울지모르겠지만, 버전은개발조직이임의로붙인다. 하지만누구라도쉽게이해하기위해서일반적으로지켜지는규칙은있다. 일반적으로새버전에큰변화를주었다면소수점윗자리를올리고, 작은변화는소수점아랫자리번호를올리는방식이많이쓰이는데, 예를들자면 1.0에서 1.5로바뀌었다면 1.0에서 1.1로바뀐것보다는많은것이바뀌었다는의미이다.

그외에, build, stable, beta, alpha 등의버전이있다. 이는개발단계를나타내는것이다.

 

2.다양한 버저닝

2.1.Linux Kernel

2.1.1.리눅스커널버전의구성

2.1.1.1.커널버전의규칙

<주버전번호>.< 부버전번호>.<패치레벨번호>-<컴파일횟수><추가정보문자>

예> Kernel 2.9.19-12

 

2.1.1.2.주버전번호

소프트웨어에커다란변화가생겼을때올라가는부분이다.

 

2.1.1.3.부버전번호

부버전번호는짝수일때와홀수일때가있다. 짝수일경우에는안정버전(Stable Version)이라고하며, 많은개발과정을통해충분히안정화되어있다고판단하는기능으로이루어져있는소프트웨어를나타낸다.홀수일경우에는개발버전(Development Version)이라고하며, 현재개발되고있는소프트웨어를중심으로베타테스터혹은최신중독자를위한버전이다.

 

2.1.1.4.패치레벨번호

패치레벨은같은버전안에서일어난소규모의개정작업의횟수를나타낸다. 예를들어 2.9.19은 2.9.0이후 19번의개정작업이이루어졌다는뜻이다.

 

2.1.1.5.컴파일횟수

몇번의컴파일을했는지를나타낸다.

 

2.1.1.6.추가정보

필요한정보를지정하여사용한다.

 

2.2.Microsoft

2.2.1.Windows Series

마이크로소프트社는전통적인프로그램의버전업네임방식인 Windows V4.0으로하지않고발표연도를기준으로 Windows 95라명명하기로했다. 마이크로소프트社가흔히프로그램이름에버전번호를붙이는방식을택하지않고새로운방식을택한이유는지금까지의소프트웨어업그레이드시에버전네임지정방식인큰기능향상또는추가(Major Upgrade)시는앞자리수판높임, 작은기능의추가또는버그수정판(Minor Upgrade)은소수점아래판높임방식이오히려소비자들에게더욱혼란을가증시킨다는판단에서이다.

 

2.2.2.Microsoft Versioning

 

2.2.2.1.구성

<Major Version>.<Minor Version>.<Build Number><Additional Marks>

4.00.950(윈도우 95)
4.00.950B(
윈도우 95 OSR2)
4.10.1998(
윈도우 98)
4.10.2222A(
윈도우 98 Second Edition.)

 

2.2.2.2.Major Version

프로그램의대폭적인변경이있을경우에이숫자가하나올라갑니다. 실제로윈도우 3.1에서윈도우95로넘어갈때그모양과기능은가히혁명적으로변화하였습니다. 이렇게상당한변화가있을경우에메이저버전을하나올립니다.

 

2.2.2.3.Minor Version

마이너라는단어는메이저라는단어보다작다는느낌이확실히드실것으로생각되는데프로그램에작은기능개선이있을경우에이숫자를바뀐정도에따라적절히변화시킵니다. 윈도우 95의버전은 4.00이지만윈도우 98은 4.10인데이말은윈도우 95에서윈도우 98로의변화는그리크지않다는것을가리킵니다.

 

2.2.2.4.Build Number

빌드의뜻은프로그래밍중인프로그램을실제로프로그램화시키는것을말합니다. 여러명이작업하는경우에는모든프로그래머가작업한프로그램코드를하나로합쳐프로그램화시키는것을말합니다. 윈도우98과윈도우 98 SE는버전은동일하지만빌드넘버가윈도우 98 SE가더큰데이것은윈도우 98 SE가윈도우 98에비해좀더버그를잡고자잘한기능을추가했음을의미합니다.

2.2.2.5.Additional Marks

빌드넘버가동일하다하더라도프로그램의코드가다른경우가있는데예를들어빌드 10인프로그램코드에 A라는내용을추가한경우와같은코드에 B라는내용을추가하여Build한경우같은빌드넘버 11이되지만내용은다르게됩니다. 이러한미세한차이가있을경우에알파벳이나기타기호로표시를해둡니다.


2.3.Apple (Mac)

MacOS X 버전에는메이저(또는비호환) 버전및마이너(또는호환) 버전등 2개의버전이있다.

 

2.3.1.MacOS X Versioning Summary

2.3.1.1.메이저비호환버전

이전버전프레임워크의동적공유라이브러리와연결된프로그램과비호환되는프레임워크를의미한다(백워드호환).

 

2.3.1.2.마이너호환버전

동일한메이저버전내에나중에구축된프레임워크와연결된프레임워크와호환되는프레임워크를의미한다(포워드호환).

 

2.3.1.3.특징및요약

프레임워크버전부여요약

버전유형

요청시점

결과

메이저/비호환 (백워드호환)

API 변경(함수이름변경하기와같은); API 삭제하기, 인스턴스변수추가하기또는재정리; C++ 메소드추가

메이저버전지정자변경되고; 프레임워크경로에새로운지정자가반영된다.
프로그램에기록된동적공유라이브러리의경로는프레임워크를통해작성된다.

마이너/호환 (포워드호환)

새로운함수, 메소드, 클래스, 구조등추가

현재(마이너) 버전번호가증가되며, 호환버전은현재(마이너) 버전과동일한값으로설정된다. 프로그램에기록된값은이프레임워크를통해작성된다.

없음

버그수정, 성능향상은프로그램인터페이스에영향을미치지않는다.

현재(마이너) 버전이증가된다; 호환가능한버전이동일하게유지된다. 프로그램에기록된값은이프레임을통해작성된다

 


번호 제목 글쓴이 날짜 조회 수
79 [Gemini] branch 와 worktree 의 차이점 황제낙엽 2026.09.27 15
78 버전 관리 이슈 케이스 (1) : 장기적으로 pull 하지 않은 개발자의 대량의 merge 이슈 발생 file 황제낙엽 2026.05.13 480
77 sourcetree - 특정 커밋으로 프로젝트 변경 황제낙엽 2025.08.26 676
76 git clone시 보안에 취약하지만 사용자 아이디와 비번 저장해놓고 사용하기 황제낙엽 2025.08.05 683
75 cherry pick 내가 원하는 커밋만 가져오기 file 황제낙엽 2022.02.17 1051
74 Git Extensions Online Manual 황제낙엽 2022.02.17 5441
73 TortoiseSVN 초보자 가이드 file 황제낙엽 2022.02.09 973
72 [TortoiseSVN] SVN Revision 되돌리는 법 file 황제낙엽 2022.02.09 2608
71 심플한 커밋 이력 조회 (git log --pretty=format) [2] 황제낙엽 2022.01.12 1078
70 Git 특정 폴더 및 파일만 clone 하기 (작성중) 황제낙엽 2021.10.08 1018
69 git remote set-url file 황제낙엽 2021.09.03 909
68 git clone [bare/mirror] 정리 file 황제낙엽 2021.09.03 1493
67 Git Repository 이동하기 황제낙엽 2021.09.02 912
66 유용한 Git 명령어 몇가지 황제낙엽 2021.09.02 924
65 Git의 4가지 영역 황제낙엽 2021.09.02 907
64 Git bare repository 황제낙엽 2021.09.02 834
63 git reset의 3가지 옵션 제대로 이해하기 file 황제낙엽 2021.07.31 916
62 이전 커밋으로 되돌리기 (revert, reset) file 황제낙엽 2021.07.31 1075
61 TortoiseSVN - add to ignore list file 황제낙엽 2021.06.04 1176
60 Ubuntu 에 Git 설치 황제낙엽 2020.09.13 937