욱'S 노트

Product Version Management 본문

Story/Product Management

Product Version Management

devsun 2015. 9. 8. 14:23

항상 우리는 소프트웨어를 코딩해서 만들어내고 있지만 생각보다 많은 프로덕트에서 제대로된 버젼관리를 못하고 있는 것 또한 현실이다. 이에 전 회사 동료 및 여러 개발자분들에게도 조언을 구해도 딱히 정답이 없다는 것도 사실인 것 같다. 하지만 여기서는 내가 생각하는 가장 기본적인 버젼관리 방법을 정리해보겠다.


Most used


프로덕트 버젼 관리에서는 명확한 convention이 있는 건 아니지만, 대부분의 오픈 소스들이 가장 많이 쓰는 방식은 아래와 같다. 여기서 내가 가장 선호하는 방식은 1.0.1-SNAPSHOT과 같은 방식이다. 메이져버젼이 올라갈 때는 하위 호환성이 없다는 것을 의미하며 마이너버젼은 기능의 변경 그리고 버그픽스를 위한 버젼을 남겨둔다. Qualifier의 역할은 maven과 같은 라이브러리 관리 시스템을 사용할 떄 SNASHOT은 항상 변경될 수 있는 플로팅 버젼임을 의미하며, Qualifier가 없거나 RELEASE라는 Qualifier가 붙어 있다면 더 이상 변경이 일어나지 않는 라이브러리임을 의미한다.

Major.minor[.bugfix][-qualifier[-build]]

예)

1.0 (두자리만 쓰는 애들도 꽤나 있음 - asm, aop)

1.0.1-SNAPSHOT (일반적)

1.0.1-SNAPSHOT-20150507 (주로 eclipse plugin)

1.0.2-FINAL-20141213 (final은 jboss쪽에서 좋아하더라)

1.0.3 (RELEASE나 final 버젼에 안붙이는 경우도 많음)

1.0.4.RELEASE (spring)

Qualifier


Qualifier에 대한 자세한 설명은 아래의 내용을 참조하자.

Alpha: not feature complete

Beta: contains critical bugs

RC: release candidate, not fully tested

RELEASE or Final: final version, release 버젼

SNAPSHOT : 그냥 라이브 버젼. Floating version, not an actual identification. Should allways be used for code under development.




'Story > Product Management' 카테고리의 다른 글

Product Release  (0) 2015.09.08
Comments