📢 해당 카테고리의 글은 개인적인 궁금증을 좀 더 편하게 작성해보며, 글 작성 능력을 길러보기 위한 카테고리입니다
Spring Framework 6.0이 RC1로 간다는 소식을 아래를 통해 접하게 되었다.
https://spring.io/blog/2022/10/12/spring-framework-6-0-goes-rc1
RC 1이 뭐지?
Spring 5점 대도 잘 모르는데 벌써 6.0이라니.. 근데 저 RC 1은 뭘까?
소프트웨어 배포 생명주기는 아래와 같은 순서로 이루어져 있다.
RC는 Release candidate 단계로 마지막 제품이 될 가능성이 있는 시험판(Beta)으로, 상당한 버그가 나타나지 않으면 출시할 준비가 되었음을 의미한다고 한다.
즉, 정식 출시가 임박했다는 의미이다.
아래 spring-framework 릴리즈 버전들을 보면 M(Mileston), RC(Release Candidate), GA(General Availability) 등이 있다.
https://github.com/spring-projects/spring-framework/releases
버전 | 요약 | 설명 |
Mx (ex.M1, M6) : Mileston | 특정한 집합의 기능이 완성되자마자 공개한 버전 | 주요 기능 및 버그를 수정하는 단계로 불안정한 단계라고 볼 수 있다 |
RCx (ex. RC1) : Release Candidate | 특별한 큰 버그가 없는 한 출시 준비 완료 버전 (정식 출시 임박) | Preview release 버전이라고 불릴 정도로 마지막 제품이 될 가능성이 있는 최종 베타 버전이다 |
GA : General Availability | 정식 출시(Release)로써 다양한 매체를 통해 시장에서 이용 가능한 버전 | 대부분의 기능과 버그들이 안정화 된 버전으로써 필요한 모든 상업화 활동이 완료되어 시장에 배포되는 버전이다 |
그렇다면 Release 가 된 소프트웨어는 버저닝(Versioning)을 어떻게 할까?
가장 보편적인 규칙으로는 <major>.<minor>.<patch> 로 이루어진다
각각의 의미는 다음과 같다
버전 | 요약 | 설명 |
Major | 기존 버전과 호환되지 않는 버전 (대규모 업데이트) |
하위 버전과 호환되지 않을 정도로 대대적인 변화가 일어나는 경우이다 종종 들을 수 있는 "대규모 업데이트" 라는 것이 이에 해당된다 |
Minor | 기존 버전과 호환되면서 새로운 기능이 추가된 버전 (기능 추가) |
하위 버전과는 호환되는 버전으로 기존 기능들은 계속해서 사용할 수 있고, 새로운 기능이 추가될 때 minor 버전을 올린다 또한 기존 기능들의 사용 방법이 변경 되었을 경우에도 이에 해당된다 |
Patch | 기존 버전과 호환되면서 버그를 수정한 버전 (버그 수정, 성능 향상, 리팩토링 등) |
웹 개발을 예로, 기존 클라이언트 단이 알아차리지 못할 정도로 백엔드 단의 내부적인 코드만 수정되었을 경우 patch 버전을 올린다 또는 특정 기능의 버그를 fix하였을 때도 이에 해당된다 |
마무리
Spring 6.0 출시가 임박한다길래 충격 먹으면서 문득 versioning이 궁금해져서 이것저것 알아보았다
이것이 유명한 야크의 털 깎이인가..?
그래도 많은 시간을 할애하진 않았으니 평소에 궁금했었던 지식을 알게 돼서 뿌듯하다
다 쓰고 보니 또다시 충격이 몰려온다.. 기존 Spring도 제대로 사용해보지 못하고 있는데 기술은 날이 갈수록 발전하는구나..
자 다시 공부하러 가보자..!
💡 소중한 피드백 의견은 언제나 환영입니다 :)
🙋🏻♂️ Call me
Email : dev.gibeom@gmail.com
KakaoTalk : https://open.kakao.com/me/beomdrive