-
시멘틱 버저닝이란 무엇인가?극락코딩 2023. 8. 9. 13:40
라이브러리를 사용하다보면, 라이브러리 이름 뒤에 극락-1.0.0과 같은 형태의 숫자를 본적이 있을 것이다. 라이브러리 네이밍 뒤에 나오는 숫자가 버저닝을 의미한다. 그럼 각각의 숫자는 어떤것을 의미할까?
대부분 버저닝을 진행할 떄 시멘틱 버저닝을 사용한다. 시맨틱 버저닝은
1.0.0
과 같은 스타일로 버저닝을 기입하는 방법이다.도트
.
를 기준으로 major, minor, patch이다.major란?
major는 이전 버전의 라이브러리와 차이가 발생했을 경우 올린다. 업데이트된 버전이 기존 기능을 원활하게 동작시키지 않게 하는 경우가 이에 해당한다. major를 올리는 경우, minor와 patch의 첫 시작을 0으로 초기화해야 한다.
기존 api 변경 및 삭제 되거나 하위 호환을 지원하지 않는 경우
minor란?
minor는 이전 버전의 라이브러리에서 기능이 추가되었을 때 올린다. 기존 라이브러리와 호환이 되면서도, 신규 기능이 추가되는 경우가 이에 해당한다. minor를 올리는 경우, major는 그대로 나두고, patch의 첫 시작을 0으로 초기화해야 한다.
신규 기능이 추가 또는 개선되었으며, 하위 호환을 지원하는 경우
patch란?
patch는 이전 버전의 라이브러리에서 문제가 발생하여 수정 작업을 진행했을 때 올린다. 기존 라이브러리와 호환이 되면서 이슈를 처리했을 경우가 이에 해당한다. patch를 올리는 경우, major와 minor는 변경하지 않는다.
특정 버전의 버그가 수정되었고, 하위 호환을 지원하는 경우
시멘틱 버저닝 REGEX
^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
참고자료
'극락코딩' 카테고리의 다른 글
ThreadLocal을 간단하게 살펴보기 (0) 2023.08.15 ehcache 사용하기 (로컬 캐시 사용하기) (0) 2023.08.09 OLTP와 OLAP (0) 2023.07.30 Server Shutdown (0) 2023.07.30 스프링 스케줄러 사용법 (0) 2023.07.30