일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 1670
- 백준11053
- 여름인턴십
- 백준12738
- 2629
- 단어수학
- 카카오 인턴
- 카카오 인턴십
- 개발자 면접
- 가장긴증가하는 부분수열
- 최장증가수열
- 카카오 자기소개서
- 알고리즘
- 카카오
- 카카오 서류전형
- DP
- 카카오 면접
- 2228
- Python
- LIS
- 2482
- 기술면접
- 인턴십 면접
- 백준12015
- LIS 알고리즘
- 백준
- 정상회담2
- Longest Increasing Subsequence
- 파이썬
- 구간나누기
- Today
- Total
프로그래밍에 대한 고찰 및 생각
[2] Spring Boot Version Convention 본문
지난번 Semantic Version 에 이어 버전 옆에 붙는 태그들에 대해 알아보고자 한다.
GA (General Availability)
public 으로 배포된 버전을 의미한다.
CURRENT
GA 중에 가장 최신 버전을 의미한다. 이것은 보통 모든 새로운 프로젝트에 사용된다.
M (Milestone)
release 과정에서 주요한 stage를 마크할 때 사용되며 정해진 주기마다 배포된다.
SNAPSHOT
release 되기 전 버전을 의미한다.
예를 들어 1.0.0 버전이 배포되기 전에는 1.0.0-SNAPSHOT 이 존재하며 이 버전은 이후에 1.0.0 이 될 것이다.
Q. 실제 version 과 snapshot version은 어떤 차이가 있나?
A. snapshot version 은 수시로 업데이트 될 수 있다. 예를 들어 오늘 1.0-SNAPSHOT을 받았을 때 어제 받은 1.0-SNAPSHOT과 내일 받을 1.0-SNAPSHOT이 다를 수 있다.
PRE
아직 변경되지 않았지만 단지 개발자들이 다가오는 GA 릴리즈의 feature를 테스트하기 위해 배포한 것이다. 그것들은 몇몇 버그를 포함할 수 있는데 이것은 후에 같은 버전의 pre release에서 수정된다. (ex 2.0.0 M1 → fix → 2.0.0 M2, M = Milestone)
이렇게 보면 와닿지 않을 것 같다. 실제 버전 리스트를 보면서 확인해보자.
위 리스트는 2022.04.17 PM 02:48 기준 (UTC+09:00) Spring Security Version 목록이다. (https://spring.io/projects/spring-security#learn)
버전 목록들을 살펴보면 현재 public 으로 배포된 버전들(GA)이 있고 그중 가장 최신 버전인 5.6.2 버전이 CURRENT 인 것을 알 수 있다.
Spring boot 프로젝트에 Spring Security를 새로 적용한다면 5.6.2 버전을 적용하면 될 것 같다.
6.0.0 5.6.3 5.5.6 버전의 경우 SNAPSHOT 이 붙어있다. (이 버전들은 release 되기 전이므로 GA 는 없음을 알 수 있다)
5.6.3-SNAPSHOT 버전을 클릭해보면 아래와 같은 경고 문구를 볼 수 있다.
해당 버전이 스냅샷으로 아직 안정되지 않았으므로 현재 가장 최신 GA 인 5.6.2 버전을 사용하라고 안내하고 있다.
PRE 버전인 6.0.0과 5.7.0도 확인할 수 있다. 이 역시도 안정된 버전이 아니므로 클릭해보면 위와 동일한 문구를 확인할 수 있다.
출처. https://stackoverflow.com/questions/5901378/what-exactly-is-a-maven-snapshot-and-why-do-we-need-it