ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 시멘틱 버저닝이란 무엇인가?
    극락코딩 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
극락코딩