[용어 정리] Semantic Versioning

[용어 정리] Semantic Versioning


  • 소프트 웨어 버전 : 컴퓨터 소프트웨어의 특정 시점의 상태에 대해 식별 가능한 유일한 이름을 지정하는 것
    • ex) 윈도 7(버전 6.1), 리눅스 커널 버전 3.10.0-123, PHP 버전 5.6.8 등
  • 윈도우, 리눅스, PHP 등 개별 소프트웨어는 나름대로 버전 이름을 지정하는 규칙이 있지만 이는 해당 소프트웨어에만 해당되며 다른 소프트웨어들은 또 저마다의 버전 규칙이 있다.
  • 개발하는 소프트웨어의 규모가 커지고 외부 라이브러리를 많이 사용할수록 의존성 지옥에 빠지기 쉽기 때문에, 명확한 규칙이 필요
  • 유의적 버전(Semantic Versioning)은 이러한 의존성 문제를 해결하고자 나온 라이브러리의 버전 명시 규칙과 요구 사항
  • 먼저 외부에서 사용할 수 공개 API를 선언하고 라이브러리 버전은 MAJOR.MINOR.PATCH형식으로 한다
    • 기존 버전과 호환되지 않게 API가 변경되면 "MAJOR 버전"을 올린다.
    • 기존 버전과 호환되면서 새로운 기능이 추가 되었을 때는 "MINOR 버전"을 올린다.
    • 기존 버전과 호환되면서 버그를 수정 했을 경우 "PATCH 버전"을 올린다.
    • 버전 형식 뒤에 "정식 출시전"이나 빌드 메타데이터를 위한 레이블을 추가 할 수 있음

출처



댓글

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?