게임을 하다가 보면 Version이 보입니다.
123.12.123.123 혹은 1.2.3 같은 어떤 숫자의 나열로 되어있습니다.
V 혹은 Ver와 함께 말이죠.
V와 Ver인 거 보니 Version 인 것 같긴 한데.. 내가 원하는 대로 Version을 만들어주면 될까요?
Q. 무슨 규칙으로 만드는 거지?
Version에는 어떤 규칙이 있습니다.
바로 Major.Minor.Patch 순서대로 적는 겁니다.
즉, 위의 숫자가 5.21.3이라고 했을 때 Major가 5, Minor가 21, Patch가 3인 거죠.
Q. Major? Minor? Patch? 이게 뭐지?
Major는 큰 변화가 일어난 것을 말합니다.
큰 변화란 사용자가 봤을 때 바로 인지할 수 있는 화면이 바뀐 거죠.
위치가 바뀐다던지 형태가 바뀐다던지 그런 것을 바꿀 경우 Major의 숫자가 변경되는 겁니다.
예를 들어 Axure RP 9의 경우 UI와 화면을 변경하고 Axure RP 10으로 Major 숫자를 한 단계 더 올렸습니다.
그런데 Major가 바뀌면 눈으로 변화되는 것 외에도 한 가지 더 큰 변화가 있습니다. 바로 이전 Version과 호환이 되지 않는 것이죠.
Axure 10에서 만든 파일이 Axure 9에는 열리지 않는 것처럼 말이죠.
Minor는 새로운 기능이 추가되거나 사용법이 변경된 경우에 변경해줍니다.
기능이 추가되거나 사용법이 변경되었지만 사용자가 보기에 화면의 전체적인 형태는 그대로인 경우입니다.
그리고 가장 큰 특징은 하위 Version과 호환이 되는 경우입니다.
무언가 변경되긴 했는데.. 이전의 파일로도 잘 열리는 경우 Minor 위치의 숫자를 변경해줍니다.
Patch는 사용자가 알아채지 못할 정도의 작은 변화를 이야기합니다. 다 똑같이 생겼고 사용법도 다 똑같습니다.
다만 버그가 수정되거나 내부적인 코드가 수정된 정도의 변화만 있는 거죠.
하지만 변화가 되었기 때문에 숫자를 달리해 구분을 해주는 것입니다.
당연하게도 하위 Version과 호환이 됩니다.
Q. 4자리도 있고 3자리도 있던 데?
Version을 정의할 때 어느 정도의 규칙은 있지만 회사 내 별도 Version 관리 방법을 통해서 관리를 하기도 합니다.
하지만 Major, Minor, Patch의 구분은 동일하게 적용될 겁니다.
Q. 이미 완료된 경우는 완료되었으니까 알 수 있는 데 회사 내부에서 Version을 보고 대략적인 흐름을 알 수 있는 방법은 없을까?
회사 내부의 Version변화를 보고 대략적인 흐름을 알 수도 있습니다.
예를 들어 1.1.1이라는 Version이 있다고 합시다. 하지만 분명히 다음 Version이 1.1.2라고 되어있지만 내용을 봤을 때 신규 기능도 추가되고 사용방법도 변경되어있는 경우에 '아~ 원래 간단한 패치만 하려고 일정을 잡았었는 데 일정이 변경되어 다른 작업을 추가하고 있구나'라는 것을 알 수 있는 것이죠.
Q. Major. Minor. Patch는 각각의 개념이 다르니 각각 관리하는 걸까?
만약 1.1.1에서 Patch를 7번 진행해서 1.1.8이 되었다고 합시다. 여기서 만약 Minor 한 업데이트를 추가적으로 한다면 1.2.8이 아닌 1.2.0이 됩니다. 앞자리가 바뀌게 되면 뒷자리는 0으로 초기화되는 것이죠.
Q. SW Version 관리 방법은 어떤 것들이 있을까요?
소프트웨어 버전 관리 방법은 1. 공유 폴더 방식, 2. 클라이언트 서버 방식, 3. 분산 저장소 방식 이렇게 3가지가 있습니다.
1. 공유폴더 방식: 내가 관리할 자료를 직원들이 모두 함께 사용하는 공유 폴더에 저장하여 관리하는 방법으로 공유 폴더 안의 파일을 복사하여 확인합니다.
(SCCS, RCS, PVCS, QVCS)
2. 클라이언트 서버 방식: 버전 관리자료가 서버에 저장되어 서버 자료를 자신의 PC에 복사해서 작업한 뒤에 변경된 내용을 다시 서버에 저장하는 방식으로 모든 버전 관리는 서버에서 진행됩니다.
(CVS, SVN)
3. 분산 저장소 방식: 버전 관리자료가 원격 저장소와 분산된 개발자 PC의 로컬저장소에 함께 저장되어 관리되는 방식을 말합니다.
(Git, GNU arch)
이 방식 중에서도 업무에서는 SVN방식을 가장 많이 쓰여지는 것으로 알고 있습니다.
오픈소스로 업그레이드하며 Committ할 때 마다 버전이 1씩 오릅니다.
참고: https://kiwinam.com/posts/33/version-naming/
https://tttsss77.tistory.com/57
'소년의 IT 쉽게 이해하기 > 기획 쉽게 이해하기' 카테고리의 다른 글
IA (Information Architecture) 쉽게 이야기하기 (1) | 2021.12.03 |
---|---|
와이어 프레임(Wire frame) 쉽게 이야기하기 (0) | 2021.12.02 |
요구사항 정의서 쉽게 이야기하기 (0) | 2021.12.02 |
DDD 쉽게 이야기하기 (0) | 2021.11.30 |
개발 모델 쉽게 이야기하기 (0) | 2021.11.30 |
댓글