Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 백준
- 카카오 면접
- 2228
- Longest Increasing Subsequence
- 구간나누기
- 개발자 면접
- 여름인턴십
- 백준12015
- 카카오 인턴
- 단어수학
- 파이썬
- 최장증가수열
- 알고리즘
- LIS 알고리즘
- 백준12738
- 기술면접
- 2629
- 정상회담2
- 카카오
- 백준11053
- 카카오 인턴십
- Python
- 카카오 서류전형
- 2482
- LIS
- DP
- 1670
- 카카오 자기소개서
- 인턴십 면접
- 가장긴증가하는 부분수열
Archives
- Today
- Total
프로그래밍에 대한 고찰 및 생각
[1] Semantic Version 본문
Spring boot 를 사용하면서 아래와 같은 다양한 버전들을 보게되는데 버전 이름 생성하는 규칙과 옆에 붙어있는 태그들(CURRENT, GA...) 이 정확히 어떻게 붙여지고 어떤것을 의미하는지 정리를 한번 해봐야겠다는 생각이 들었다.

그 중 5.6.2 5.2.15 처럼 숫자로 이루어진 형태의 버전들에 대해 먼저 알아보았다.
01. 소프트웨어 개발에서 Versioning이 중요한 이유?
소프트웨어 Version 은 특정한 이름/번호를 통해 소프트웨어나 패키지의 상태를 구분할 수 있게 해준다.
여기에는 다양한 Versioning Schemes 가 있지만 그중 유명한 것중 하나는 Semantic Versioning (SemVer) 이다.
02. SemVer ?

SemVer 의 기본적인 포맷은 위와 같다. X Y Z 는 순차적으로 증가하는 정수로 각각 Major, Minor, Patch 를 나타낸다.
- Major
- Major Version은 기존 API 를 break 하는 기능을 새로 개발할 때, 즉 프로젝트에 하위 호환성이 없는 변경사항을 추가할 때 증가되어야 한다.
- 이때 Minor, Patch 는 0으로 초기화 되어야한다.
- 예를 들어, 3.5.2 버전에서 Major 버전을 올린다면 4.0.0 이 될것이다.
- Minor
- Minor Version은 기존 API를 기능적으로 변경하였지만 하위 호환성이 존재하는 변경일 때 증가된다. 또는 내부 코드의 상당한 수정이 있었다면 증가할 수 있다.
- 이때 Patch 는 0으로 초기화 되어야한다.
- Patch
- 이전 버전과 호환되는 버그 수정을 할 때 증가된다.
- Patch 업데이트 시에는 API가 변경되어서는 안된다.
추가 라벨
- Pre-Release
- 1.0.0-alpha.1 은 1.0.0 버전의 사전 릴리즈 버전임을 나타낸다. 이 버전은 불안정하며, 사용할 경우 위험성이 높음을 의미한다.
- Build