프로그래밍에 대한 고찰 및 생각

[2] Spring Boot Version Convention 본문

카테고리 없음

[2] Spring Boot Version Convention

Source 2022. 4. 17. 15:37

지난번 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)

 

Spring Security

Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can be extended to meet custom requirements

spring.io

 


 

버전 목록들을 살펴보면 현재 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