소프트웨어 버저닝(Software Versioning)은 소프트웨어의 다양한 버전을 관리하고 식별하기 위한 체계입니다. 일반적으로 버전 번호는 소프트웨어의 변화, 업데이트 및 개선 사항을 명확하게 나타내기 위해 사용됩니다. 소프트웨어 버저닝에는 여러 가지 방식이 있으며, 가장 널리 사용되는 방식은 '유의적 버저닝(Semantic Versioning)'입니다.
유의적 버저닝(Semantic Versioning)
유의적 버저닝은 버전 번호를 주버전.부버전.수정버전 형식으로 사용하는 방식입니다. 예를 들어, 1.4.2는 주버전이 1, 부버전이 4, 수정버전이 2임을 의미합니다.
- 주버전(Major Version): 주버전이 변경될 때는 기존 버전과의 호환성이 깨지는 중요한 변경 사항이 포함된 경우입니다. 예를 들어, 1.0.0에서 2.0.0으로의 변화는 호환성이 없는 큰 변경 사항을 나타냅니다.
- 부버전(Minor Version): 부버전은 하위 호환성 있는 새로운 기능이 추가될 때 증가합니다. 예를 들어, 1.1.0에서 1.2.0으로의 변화는 새로운 기능이 추가되었음을 나타냅니다.
- 수정버전(Patch Version): 수정버전은 하위 호환성 있는 버그 수정이나 작은 변경 사항이 있을 때 증가합니다. 예를 들어, 1.0.1에서 1.0.2로의 변화는 버그 수정이 있었음을 나타냅니다.
기타 버저닝 방식
- 연도 기반 버저닝: 버전 번호에 연도를 사용하는 방식입니다. 예를 들어, 2021.1은 2021년에 릴리스된 첫 번째 버전을 의미합니다.
- 빌드 번호 포함 버저닝: 빌드 번호를 포함하여 버전을 관리하는 방식입니다. 예를 들어, 1.0.0.123은 123번째 빌드를 나타낼 수 있습니다.
- 알파, 베타, RC(Release Candidate) 등의 사전 릴리스 태그: 공식 버전이 출시되기 전에 알파(alpha), 베타(beta), RC 등의 태그를 붙여 사용합니다. 예를 들어, 1.0.0-alpha, 1.0.0-beta, 1.0.0-rc.1 등이 있습니다.
버전 관리 시스템
소프트웨어 개발에서는 버전 관리 시스템(VCS, Version Control System)을 사용하여 코드의 변경 사항을 추적하고 관리합니다. 대표적인 버전 관리 시스템으로는 Git, Subversion(SVN), Mercurial 등이 있습니다. 이러한 시스템을 통해 여러 개발자가 협력하여 효율적으로 소프트웨어를 개발할 수 있습니다.
요약
소프트웨어 버저닝은 소프트웨어의 버전을 체계적으로 관리하고, 사용자와 개발자가 소프트웨어의 변화 및 업데이트 사항을 명확하게 이해할 수 있도록 돕는 중요한 방법입니다. 이를 통해 소프트웨어 개발 과정에서의 혼란을 줄이고, 체계적으로 버전을 관리할 수 있습니다.
'[개발] Info > 용어' 카테고리의 다른 글
지수적 백오프(Exponential Backoff) (0) | 2024.10.08 |
---|---|
멀티 모듈(Multi-Module) (0) | 2024.08.09 |
Hashicorp Vault (0) | 2024.07.26 |
워커 러너 패턴 (0) | 2024.07.21 |
보일러 플레이트(boiler plate) (0) | 2024.07.21 |