소프트웨어 개발의 세계에서 버전 번호는 단순한 숫자 이상의 의미를 담고 있습니다. 우리는 매일 사용하는 애플리케이션과 도구에서 다양한 버전 번호를 접하게 됩니다. 하지만 이 숫자들이 실제로 어떤 의미를 지니고 있으며, 왜 중요한지에 대해 깊이 생각해본 적이 있나요?
버전 표기법은 소프트웨어의 변경 사항과 발전 과정을 체계적으로 표현하는 중요한 수단입니다. 이를 통해 개발자와 사용자 모두가 소프트웨어의 상태와 호환성을 쉽게 이해할 수 있습니다.
위의 20.15.0 으로 표기한 버전 표기법을 보통 Semantic versioning이라고 부릅니다.
각각 20(메이저).15(마이너).0(패치) 형식으로 구성되며, 각 숫자는 특정한 의미를 지닙니다.
Major 버전
- 하위 버전과 호환되지 않는 변화가 생겼을 때
- 대대적인 변화가 일어났을 때
- 클라이언트가 1.0.0 버전의 API 접근 방식으로 2.0.0 버전에 접속할 수 없을 때
Minor 버전
- 하위 버전과 호환이 되면서, 새로운 기능이 추가 될 때
- 새로운 기능이 추가된 API 가 나왔지만, 기존의 공개된 API 가 하위 호환되고 있을 때
- 기존의 기능이 변경되거나 사용 방법이 변경 되었을 때
Patch 버전
- 버그 수정
- 기존 클라이언트가 알아차리지 못할 정도의 작은 변화가 있을 때
- 서버 코드 내부적으로 소스가 수정되었을 때
- 당연한 얘기겠지만, 이 모든 것들이 하위 버전과 호환될 때
일반적인 규칙
- 버전 번호는 Major, Minor, Patch 의 형태로 배포하고, Major, Minor, Patch 는 각각 자연수이고 절대 앞에 0이 붙어서는 안된다.
- 특정 버전으로 패키지를 배포하고 나면, 그 버전의 내용은 절대 변경하지 말아야한다
- 변경분이 있다면 반드시 새로운 버전으로 배포하도록 한다.Major 버전이 변경될 때, Minor, Patch 는 0으로 초기화 된다.
- Minor 버전이 변경될 때, Patch 는 0으로 초기화 된다.
버전 표기법은 소프트웨어 개발 및 배포 과정에서 중요한 역할을 합니다. 올바른 버전 관리는 사용자에게 신뢰성 있고 예측 가능한 소프트웨어 업데이트 경로를 제공하며, 개발자에게는 버그 수정과 새로운 기능 추가를 체계적으로 관리할 수 있는 기회를 제공합니다.
References
https://kiwinam.com/posts/33/version-naming/
https://nodejs.org/en/download/package-manager
'1. 웹개발 > 1_3_2 IT 상식' 카테고리의 다른 글
[IT 상식] PoC란? (0) | 2024.07.20 |
---|---|
[IT 상식] 모노레포란? (with Turborepo) (1) | 2024.06.30 |
[IT 상식] pnpm을 사용하는 이유 (vs npm) (0) | 2024.06.15 |
[IT 상식] DMZ 서버란? (0) | 2022.04.16 |