[Tip] 소프트웨어 버전 번호 별 의미
본문 바로가기

Development/Tip

[Tip] 소프트웨어 버전 번호 별 의미

소프트웨어 버전 관리에서 버전 번호는 일반적으로 세 자리의 숫자로 구성되며, 각 숫자는 각각 주 버전, 마이너 버전, 패치 버전을 나타냅니다.

버전 번호의 구성

형식: 주 버전.마이너 버전.패치 버전 (Major.Minor.Patch)

  1. 주 버전 (Major)

    • 의미: 주 버전의 변경은 대규모 업데이트나 중요한 변경 사항을 나타냅니다. 이는 API의 호환성을 깨트릴 수 있으며, 이전 버전과의 역호환성을 보장하지 않을 수도 있습니다.
    • 변경 이유: 완전히 새로운 기능이나 아키텍처 변경, 혹은 기존의 기능을 크게 변경하여 사용자나 다른 소프트웨어가 큰 영향을 받을 수 있는 경우 주 버전이 증가합니다.
    • 예시: 1.0.0에서 2.0.0으로의 변경은 소프트웨어가 근본적으로 많이 변했고, 사용자는 코드 수정이 필요할 수 있음을 의미합니다.
  2. 마이너 버전 (Minor)

    • 의미: 마이너 버전의 변경은 새로운 기능 추가와 같이 주 버전 내에서의 향상을 나타냅니다. 마이너 버전의 변경은 이전 버전과 호환성을 유지합니다.
    • 변경 이유: 새로운 기능이 추가되거나 기존 기능이 확장되었으나, 기존의 기능에 영향을 미치지 않는 경우 마이너 버전이 증가합니다.
    • 예시: 1.1.0에서 1.2.0으로의 변경은 새로운 기능이 추가되었지만, 기존 코드가 여전히 정상 작동함을 의미합니다.
  3. 패치 버전 (Patch)

    • 의미: 패치 버전의 변경은 주로 버그 수정, 보안 업데이트, 성능 개선 등을 나타냅니다. 이는 새로운 기능을 추가하지 않고, 기존 기능의 결함을 수정합니다.
    • 변경 이유: 버그를 수정하거나 성능을 개선하여 소프트웨어의 안정성을 높이는 경우 패치 버전이 증가합니다.
    • 예시: 1.0.1에서 1.0.2로의 변경은 작은 버그가 수정되었음을 의미합니다.

추가 버전 태그

  1. SNAPSHOT

    • 의미: 개발 중인 불안정한 버전을 나타냅니다. 이는 공식 릴리스 전에 제공되는 버전으로, 테스트 목적으로 사용되며, 종종 변경될 수 있습니다.
    • 사용 예시: 1.0.0-SNAPSHOT은 1.0.0 정식 버전이 출시되기 전의 개발 버전임을 의미합니다.
  2. RC (Release Candidate)

    • 의미: 정식 출시 후보 버전을 나타내며, 안정화가 거의 완료된 상태로, 주요 버그가 없으면 이 버전이 정식 버전으로 승격됩니다.
    • 사용 예시: 1.0.0-RC1은 첫 번째 릴리스 후보 버전임을 의미합니다.
  3. GA (General Availability)

    • 의미: 일반적으로 사용 가능한 안정화된 정식 버전을 나타냅니다.
    • 사용 예시: 1.0.0-GA는 정식 출시된 안정 버전임을 의미합니다.

예시

  • 1.0.0: 초기 정식 릴리스.
  • 1.1.0: 새로운 기능이 추가된 릴리스.
  • 1.1.1: 버그가 수정된 릴리스.
  • 2.0.0: 이전 버전과 호환되지 않는 대규모 변경이 포함된 릴리스.

참조

  • ChatGPT 4o