์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 31 |
- ์ฝ๋ฉํ ์คํธ์ค๋น
- ํ ํฐ ๋ฒ์ค
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- IEEE 802
- tcp ์ธ๊ทธ๋จผํธ
- ์ค๋ฅ๊ฒ์ถ
- git merge
- ์ค๋ธ์
- reducible
- leetcode
- well known ํฌํธ
- ๋น์ฃผ๊ธฐ์ ํธ
- ์๋น์ค ํ๋ฆฌ๋ฏธํฐ๋ธ
- ์ฃผ๊ธฐ์ ํธ
- ํ๋ก์ด๋์์
- i-type
- ์์๋ฒํธ
- mariadb
- 99ํด๋ฝ
- ๋ฐ์ดํฐ ์ ์ก
- ํญํด99
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ํ๋ ์ ๊ตฌ์กฐ
- til
- ์ค๋ฅ์ ์ด
- ์ค๋ ๋
- xv6
- ์ฐ๋ถํฌdb
- ๊ฐ๋ฐ์์ทจ์
- tcp ํ๋กํ ์ฝ
- Today
- Total
Unfazedโ๏ธ๐ฏ
[Spring Boot] ๋ฒ์ ์ฒด๊ณ Semantic Versioning ๋ณธ๋ฌธ
Semantic Versioning(SemVer)์ ์ํํธ์จ์ด ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ์ํ ์ฒด๊ณ์ ์ธ ๊ท์น์ผ๋ก, MAJOR.MINOR.PATCH ํ์์ผ๋ก ๋ฒ์ ์ ๊ตฌ์ฑํ๋ค. ์ด ์ฒด๊ณ๋ API๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ช ํํ ์ ๋ฌํ๋ฉฐ, Spring Boot ํ๋ ์์ํฌ์์๋ ํต์ฌ ๋ฒ์ ๊ด๋ฆฌ ์ ๋ต์ผ๋ก ์ฑํ๋์๋ค.
Semantic Versioning ๊ธฐ๋ณธ ํ์
MAJOR.MINOR.PATCH
MAJOR ๋ฒ์ (์ฃผ ๋ฒ์ ): ๊ธฐ์กด ๊ธฐ๋ฅ๊ณผ์ ํธํ์ฑ์ ๊นจ๋จ๋ฆฌ๋ ๋ณ๊ฒฝ ์ฌํญ์ด ํฌํจ๋ ๋ ์ฆ๊ฐ(์: 1.x.x → 2.0.0)
MINOR ๋ฒ์ (๋ถ ๋ฒ์ ): ํ์ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ ๋ ์ฆ๊ฐ(์: 2.1.x → 2.2.0)
PATCH ๋ฒ์ (ํจ์น ๋ฒ์ ): ๋ฒ๊ทธ ์์ ๋ฑ ๊ธฐ๋ฅ ๋ณ๊ฒฝ ์์ด ๋ด๋ถ ๊ฐ์ ์ด ์์ ๋ ์ฆ๊ฐ(์: 2.2.0 → 2.2.1)
๋ณ๊ฒฝ ์ ํ | ์์ ๋ฒ์ ์ด๋ | ์ํฅ๋ | ์ ๋ฐ์ดํธ ์ ๋ต |
PATCH ์ ๋ฐ์ดํธ | 3.4.0 → 3.4.1 | ๋ฎ์ | ์ฆ์ ์ ์ฉ, ํ ์คํธ ํ ์ ์ฉ |
MINOR ์ ๋ฐ์ดํธ | 3.4 → 3.5 | ์ค๊ฐ | ํ ์คํธ ํ ์ ์ฉ |
MAJOR ์ ๋ฐ์ดํธ | 2.7 → 3.0 | ๋์ | ์ํคํ ์ฒ ๊ฒํ ํ์ |
๋ฒ์
1. ์ฃผ ๋ฒ์ (MAJOR)
์ฃผ ๋ฒ์ ์ API ํธํ์ฑ์ด ๊นจ์ง๋ ํฐ ๋ณํ๊ฐ ์์ ๋ ์ฆ๊ฐํ๋ค. ์ด๋ ๊ธฐ์กด ์ฝ๋๋ฅผ ์์ ํด์ผ ํ๋ ๋ณ๊ฒฝ์ฌํญ์ ํฌํจํ๋ค.
์์: WebSecurityConfigurerAdapter Deprecated
https://github.com/spring-projects/spring-security/issues/10822
Deprecate WebSecurityConfigurerAdapter · Issue #10822 · spring-projects/spring-security
With the following issues closed we've added the ability to configure the security of an application without needing the WebSecurityConfigurerAdapter. Related issues: #8804 #8978 #10040 #10138 Back...
github.com
์ issue๋ฅผ ๋ณด๋ฉด Spring Security 5.7.0-M2(2022๋ 2์ 22์ผ ๋ฐฐํฌ)์์ WebSecurityConfigurerAdapter๊ฐ deprecated ์ฒ๋ฆฌ๋์๋ค. ์ดํ ์ฃผ(MAJOR) ๋ฒ์ 6.0.0์์ ํด๋น ํด๋์ค๋ ์์ ํ ์ ๊ฑฐ๋์๋ค.
๊ฐ๋ฐ์๋ deprecation ๊ฒฝ๊ณ ๋ฅผ ํ์ธํ๊ณ ์ฃผ ๋ฒ์ ์ ๋ฐ์ดํธ ์ด์ ์ ์ง์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ฉฐ ๋๋นํ ์ ์๋ค.
์ฌ๊ธฐ์ Spring Security๋ 5.7์์ ๋ฐ๋ก 6.0์ผ๋ก ๋์ด๊ฐ์ง ์๊ณ , ๋ฒ์ 5.8์ ์ ๊ณตํ๋ค.
Spring Boot 3.0 uses Spring Security 6.0. The Spring Security team have released Spring Security 5.8 to simplify upgrading to Spring Security 6.0.
์ด๋ ํฐ ๋ณํ๋ฅผ ์ ์ง์ ์ผ๋ก ๋์ ํ๊ธฐ ์ํ ๋ฒ์ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ด๋ผ ์ดํดํ ์ ์๋ค.
2. ๋ถ ๋ฒ์ (MINOR)
๋ถ ๋ฒ์ ์ ํ์ ํธํ์ฑ์ ์ ์งํ๋ฉด์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋ ์ฆ๊ฐํ๋ค. ๊ธฐ์กด ์ฝ๋๋ ์์ ์์ด ๊ณ์ ๋์ํ๋ค.
์์: Spring Boot Version 3.3.x → 3.4.0
Spring Boot 3.4.0 ๋ฆด๋ฆฌ์ค ๋ ธํธ๋ฅผ ํตํด ์ด๋ค ์ฌํญ๋ค์ด ๋ณ๊ฒฝ ๋์๋์ง ์ดํด๋ณด์.
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.4-Release-Notes
Spring Boot 3.4.0์์๋ ์๋ก์ด ๊ธฐ๋ฅ๋ค์ด ์ถ๊ฐ๋์๋๋ฐ, MockMvcTester๋ผ๋ ์๋ก์ด ํ ์คํธ ๋๊ตฌ๊ฐ ๋์ ๋์๊ณ , ์ฌ๋ฌ ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ต์ ์์ ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋๋์๋ค๊ณ ํ๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ๊ธฐ์กด์ ์ฝ๋๋ฅผ ๊นจ๋จ๋ฆฌ์ง ์์ผ๋ฏ๋ก MINOR ๋ฒ์ ์ด ์ฆ๊ฐํ๋ค๊ณ ์ดํดํ ์ ์๋ค.
๋ํ ๋ฌธ์์์ "Deprecations from Spring Boot 3.2" ์น์ ์ ๋ณด๋ฉด:
"Classes, methods, and properties that were deprecated in Spring Boot 3.2 and marked for removal in 3.4 have been removed in this release."
3.2์์ deprecated ๋๊ณ "3.4์์ ์ ๊ฑฐ๋ ๊ฒ"์ด๋ผ๊ณ ๋ช ์์ ์ผ๋ก ํ์๋ ๊ธฐ๋ฅ๋ค์ด 3.4(๋ถ๋ฒ์ ์ ๋ฐ์ดํธ)์์ ์ค์ ๋ก ์ ๊ฑฐ๋์์์ ์๋ ค์ฃผ๊ณ ์๋ค.
์ด๋ฅผ ํตํด ์ผ๋ฐ์ ์ผ๋ก ๋ช ์์ ์ธ ์ ๊ฑฐ ์์ ์ด ํ์๋์ง ์์ deprecated ๊ธฐ๋ฅ์ ๋ณดํต ๋ค์ ์ฃผ๋ฒ์ ์์ ์ ๊ฑฐ๋์ง๋ง, "X.Y ๋ฒ์ ์์ ์ ๊ฑฐ ์์ "์ผ๋ก ๋ช ํํ ํ์๋ ๊ฒฝ์ฐ ํด๋น ๋ถ๋ฒ์ ์์๋ ์ ๊ฑฐ๋ ์ ์๋ค๋ ์ ์ ์ ์ ์๋ค.
How upgrading from Spring Boot 3.2.5 to 3.3.1 broke our object mapper
After upgrading Spring Boot from version 3.2.5 to 3.3.1 we started to have a serialization issue with the Optional class. Check how to fix it in this post
joaovieira.ca
์ ๋งํฌ์ ๊ธ์์ ์์ฑ์๋ Spring Boot 3.2.5์์ 3.3.1๋ก์ ์ ๊ทธ๋ ์ด๋๊ฐ MINOR ๋ฒ์ ์ ๊ทธ๋ ์ด๋(3.2→3.3)์ด๋ฏ๋ก ํธํ์ฑ์ ๊นจ๋ ๋ณํ๊ฐ ์์ด์ผ ํ๋ค๊ณ ์๊ฐํ๋ค๊ณ ํ๋ค. ํ์ง๋ง ์ค์ ๋ก๋ Jackson Databind ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ 2.15.4์์ 2.17.1๋ก ์ ๋ฐ์ดํธ๋๋ฉด์ Optional ํ์ ์ ์ง๋ ฌํ ๋ฐฉ์์ด ๋ณ๊ฒฝ๋์ด ํธํ์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์ ์ฌ๋ก๋ฅผ ๋ณด์์๋, MINOR ๋ฒ์ ์ ๊ทธ๋ ์ด๋๋ ์ข ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ณ๊ฒฝ์ ํฌํจํ ์ ์๊ณ , ์ข ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ณ๊ฒฝ์ด ํธํ์ฑ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์๋ ์๊ธฐ ๋๋ฌธ์ ๋ถ(MINOR) ๋ฒ์ ๋ํ ์ ๊ทธ๋ ์ด๋ ์ ๋ณ๊ฒฝ ๋ด์ญ(changelog)์ ํ์ธํ๋ ๊ฒ์ด ์ค์ํ ๊ฒ ๊ฐ๋ค.
3. ํจ์น ๋ฒ์ (PATCH)
ํจ์น ๋ฒ์ ์ ๋ฒ๊ทธ ์์ , ๋ณด์ ํจ์น, ์ฑ๋ฅ ์ต์ ํ์ ๊ฐ์ ํ์ ํธํ์ฑ์ ์ ์งํ๋ ์์ ์ฌํญ์ ์ฌ์ฉํ๋ค.
์์: 3.4.0 → 3.4.1
Spring Boot 3.4.1 patch ๋ฒ์ ์ ๋ฐ์ดํธ ๋ ธํธ๋ฅผ ํตํด ์ด๋ค ์ฌํญ๋ค์ด ๋ณ๊ฒฝ ๋์๋์ง ์ดํด๋ณด์.
https://github.com/spring-projects/spring-boot/releases/tag/v3.4.1
Release v3.4.1 · spring-projects/spring-boot
๐ Bug Fixes KafkaProperties fail to build SSL properties when the bundle name is an empty string #43563 Diagnostics are poor when property resolution throws a ConversionFailedException #43559 Spri...
github.com
3.1. ๋ฒ๊ทธ ์์
์ด๋ฌํ ์์ ์ ๊ธฐ์กด ๊ธฐ๋ฅ์ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋๋ก ํ๋ ๊ฒ์ด์ง, ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์๋๋ค.
3.2 ๋ฌธ์ ๊ฐ์
๋ฌธ์ ์์ ์ API๋ ๊ธฐ๋ฅ ๋ณ๊ฒฝ ์์ด ์ฌ์ฉ์ ์ดํด๋๋ฅผ ๋์ธ๋ค.
3.3 ์์กด์ฑ ์ ๊ทธ๋ ์ด๋
ํจ์น ๋ฒ์ ์์์ ์์กด์ฑ ์ ๊ทธ๋ ์ด๋๋ ์ฃผ๋ก ๋์ผํ major,minor ๋ฒ์ ๋ด์์์ ํจ์น ์ ๋ฐ์ดํธ๋ค. ์ด๋ ํ์ ํธํ์ฑ์ ๋ณด์ฅํ๋ฉด์ ๋ณด์ ์ทจ์ฝ์ ๋ฐ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ค.
ํจ์น ๋ฒ์ ์ ๋ฐ์ดํธ๋ฅผ ํตํด ๋ฒ๊ทธ ์์ , ๋ฌธ์ ๊ฐ์ , ์์กด์ ์ ๊ทธ๋ ์ด๋ ๋ฑ์ ์์ ํ๊ฒ ํด๊ฒฐํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ณด์ ์ทจ์ฝ์ ๋ฑ์ ์ค์ ๊ฐ์ ์ฌํญ์ด ์กด์ฌํ๋ค๋ฉด ํ์ธ ํ ์ต์ ํจ์น ๋ฒ์ ์ ์ ์ฉํ๋ ๊ฒ์ด ๊ถ์ฅ๋๋ค.
์ฐธ๊ณ ์๋ฃ
- Semantic Versioning ๊ณต์ ์น์ฌ์ดํธ
- Spring Boot ๋ฒ์ ๊ด๋ฆฌ ๊ฐ์ด๋
- npm Semantic Versioning ๋ฌธ์
Semantic Versioning 2.0.0
Semantic Versioning spec and website
semver.org
Spring Boot
spring.io
About semantic versioning | npm Docs
Documentation for the npm registry, website, and command-line interface
docs.npmjs.com
https://techblog.lycorp.co.jp/ko/how-to-migrate-to-spring-boot-3
์ค์ ! Spring Boot 3 ๋ง์ด๊ทธ๋ ์ด์
๋ค์ด๊ฐ๋ฉฐ ์๋ ํ์ธ์. LINE Plus์์ ํ๊ตญ LINE BK ์ฑ๋ ์๋ฒ ๊ฐ๋ฐ ๋ฐ ์ด์ ์ ๋ฌด๋ฅผ ๋งก๊ณ ์๋ ์ด์์ฌ์ ๋๋ค. LINE BK์์๋ ์ง๋ 9์์ LINE BK ๋ณดํ ์ค๊ฐ ์...
techblog.lycorp.co.jp
'Web (back-end) > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Spring @RequestParam vs @PathVariable ์ ๋ ธํ ์ด์ ๋น๊ต (0) | 2025.02.24 |
---|---|
SOLID ์์น(์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ)๊ณผ Spring์ ํ์์ฑ (0) | 2025.01.06 |