Skip to content

Latest commit

 

History

History
27 lines (16 loc) · 3.12 KB

intro.md

File metadata and controls

27 lines (16 loc) · 3.12 KB

소프트웨어의 버전 정하기

소프트웨어나 라이브러리를 만들어서 주변사람이나 세상에 공개할 때, 버전을 어떻게 정하시나요? 쉽게는 0.1부터 올라가는 방법도 있을테고, 아니면 0.0.1부터 시작해서 열심히 달려가서 1.0.0을 정식으로 배포할 수도 있겠습니다. 각자 나름의 방법으로 버전을 정해서 사용하고는 하지만, 여기에 조금의 형식을 정해서 사용한다면, 만드는 사람과 쓰는 사람 모두가 더 나은 의미를 주고 받고, 더 부드럽게 소프트웨어 프로젝트를 진행할 수 있습니다.

이미 여러 소프트웨어나 라이브러리들이 잘 활용하고 있는 Semantic Versioning이라는 체계가 있습니다. 어떻게 소프트웨어나 라이브러리의 버전을 정하고 업그레이드 할 때 어떻게 새 버전을 붙일지를 명시적으로 선언함으로써 그 소프트웨어의 버전을 사용하는 이의 입장에서도 이번에 새로 나온 버전의 API가 어느정도 수준으로 바뀌었는지, 예전처럼 그대로 써도 되는건지, 아니면 바뀐 API에 맞게 고쳐작성해야하는 지를 쉽게 판단할 수 있습니다.

예를 들어서, 이 체계를 따른 어떤 라이브러리 1.1.0을 쓰고 있었는데, 새로운 버전이 등록됐다고 가정합시다. 새로운 버전이 1.2.0이나 1.9.3이라면, 사용하는 입장에서는, '아 기존 API가 바뀌지는 않고, 새로운 기능만 추가됐구나'라고 이해하고 별 무리 없이 업그레이드해서 사용할 수 있습니다. 그런데 만약, 2.0.0이 출시됐다면, 이 경우 API가 다소 변경되었을 것이라고 판단해서, 더 진지하게 테스트해보고 새버전을 쓸 지, 일단 기존 버전을 사용할 지 판단할 수 있습니다. 자세하게 변경내역을 확인해보기 전에 버전의 표시만 보고도 큰 골자를 파악하기 쉬운 것이지요.

이 명세를 잘 따라서 쓰고 싶습니다만, 아쉽게도 이 명세가 한국어로 번역되지 않은 것 같아서, 무리해서 번역을 해봤습니다. 편집했으면 하는 부분이나, 오탈자 수정등의 의견은 깃헙이슈에 남겨주시면 참고해서 반영하도록 하겠습니다.

어느 정도 잘 정리됐다 판단되는 시점이 오면, 원저작자 사이트에 번역본을 실어달라 부탁하겠습니다.

이하, 한국어 번역판 이어집니다.

2014년 5월 25일

이제 원저작자 사이트에 보내도 될 것 같습니다만, 원문 저장소에 pull-request가 밀려있어서, 일단 기다려보고 있습니다. 조금 더 기다리다가, 계속 밀려있으면, 어쨌거나 보내보려고 합니다. 아쉬운대로, 제 사이트에 번역 페이지를 올려둡니다.

https://hatemogi.com/semver

2014년 6월 26일

원문 저장소에 pull-request를 보냈습니다.

semver/semver.org#90