[버전관리] Semantic Versioning을 이용한 버전 관리 규칙 ( SemVer )

han·2021년 7월 9일
0

구글 스토어에 등록되있는 앱을 업데이트 하려고 할때 에러가 발생해가지고 원인을 해결하려는 도중에 새로운 정보를 알게 되었다.
앱 버전을 업데이트 할때 마다 콘솔에 등록 할때 버전코드와 버전이름을 바꿔줘야한다.

보통은 안드로이드 초기 셋팅 되있는것을 보자면,

이런식으로 되어있을 것이다. 이중에서 versionCode를 +(1이나 2로)해줘야 업데이트 작업을 할 때 에러가 발생하지 않을 것이다.
버전이름(versionName)은 딱히 에러가 발생하지 않아 적당히 + 하려고 했다.

그런데 이 버전을 관리하는 규칙이 있다고 한다.

Semantic Versioning

그림을 보면 버전기록 4.2.1이 보이는데 구간별로 규칙을 정해서 관리하는 것이다.

이 규칙을 Semantic versioning (SemVer or 시맨틱 버저닝) 규칙이라고 한다.

버전을 Major.Minor.Patch 세 구간으로 나뉜다.

  • Major : 하위(이전) 버전과 호환되지 않는 큰 변화 (Api 변경 및 삭제 등)
  • Minor : 하위(이전) 버전과 호환이 되면서, 새로운 기능이 추가 및 개선 될 경우
  • Patch : 하위(이전) 버전과 호환이 되면서, 버그 수정하는 경우

일반 규칙

  1. 버전 번호는 Major, Minor, Patch 의 형태로 배포하고, Major, Minor, Patch 는 각각 자연수이고 절대 앞에 0이 붙어서는 안된다.
  2. 각 번호의 수는 항상 증가해야 한다.
  3. 특정 버전으로 패키지를 배포하고 나면, 그 버전의 내용은 절대 변경하지 말아야한다. 변경분이 있다면 반드시 새로운 버전으로 배포하도록 한다.
  4. Major 버전이 변경될 때, Minor, Patch 는 0으로 초기화 된다.
  5. Minor 버전이 변경될 때, Patch 는 0으로 초기화 된다.

예시를 들어 요약하면,

Major : 전체적으로 UI나 기능상 큰 변경이 일어날때, 1.0.0 -> 2.0.0
Minor : 기능 추가와 조금씩 업데이트할 떄 2.0.0 -> 2.1.0
Patch : 버그 고칠때 - > 2.0.0 -> 2.0.1

이 외에도 Semantic versioning 공식홈페이지에 규칙들이 있다.

https://semver.org/lang/ko/

profile
개인 공부 및 기록겸 벨로그 시작

0개의 댓글