์ด๋ฒ์ ํ๋ก์ ํธ์ ์๋ก ๋ค์ด๊ฐ๊ฒ ๋๋ฉด์, Spring Boot ๋ฒ์ ์ ์ ํํด์ผ ๋๋ค.
์๋ (23๋ ์ด)๊น์ง๋ง ํด๋ ๊ต์ก์์ ์ฐ๋ฆฌ ํ ๋ฟ๋ง์๋๋ผ, ๊ฑฐ์ ๋ชจ๋ ์ฃผ๋ณ ํ๋ค์ด Spring 2.7 ๋ฒ์ ์ ์ฌ์ฉํ์๋ค. ์๋ฌด๋๋ Spring Boot 3 (22๋ 11์ ์ถ์)์ด ๋์จ์ง ์ผ๋ง ์๋์ด์ Deprecated ๋๋ ๊ฒ๋ ๊ฝค ์์๊ณ , ์ฐธ๊ณ ์๋ฃ๊ฐ ์๋์ ์ผ๋ก ์ ์ด ๋ค๋ค 2.7 ๋ฒ์ ์ ์ ํํ์๋ค.
Spring Boot 2๊ฐ ๋ฎ์ ๋ฒ์ ๋ถํฐ ์ง์์ด ์ ์ ๋๊ธฐ๊ณ ์๋ค. ๊ทธ๋์ ๊ธฐ์กด์ ํ๋ก์ ํธ๋ฅผ Spring Boot 3์ผ๋ก ์ ์ฐจ ๋ง์ด๊ทธ๋์ด์ ํ๊ณ ์๋ค๊ณ ๋ค์๋ค.
์ด๋ฒ ํ๋ก์ ํธ์ Spring Boot 3 ๋ฒ์ ์ ์ฐ๊ฒ ๋์ด์, Spring Boot 3์์ ์ด๋ป๊ฒ ๋ฌ๋ผ์ก๋์ง ์์๋ณด๊ณ ์ ํ๋ค!
Java 17 ์ด์ ์ง์
Spring Boot 3 ๋ถํฐ๋ Java 17 ์ด์๋ง ๊ฐ๋ฅํ๋ค. ๊ฐ๋ฐ์ ๋ง์ด ์ฐ๋ Java 8๊ณผ Java 11์ ๋์ด์ ์ธ ์ ์๊ฒ ๋์๋ค.
Sprnig Boot 2์ Java 8์ด๋ Java 11๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, JDK๋ฅผ ์ ๊ทธ๋ ์ด๋ํด์ค์ผ ํ๋ค.
* Java 17์์ ์๋กญ๊ฒ ์ถ๊ฐ๋ ๊ฒ๊ณผ ๋ณ๊ฒฝ๋ ๊ฒ์ด ์๋๋ฐ, `Record Data class`์ `Stream.toList()`, `switch`๋ฌธ ๋ณํ ๋ฑ์ด ์๋ค.
Java EE์์ Jakarta EE๋ก ๋ณ๊ฒฝ
์๋ ์ค๋ผํด์ด Java EE(Enterprise Edition)์ ๋ฆด๋ฆฌ์ฆํ์๋๋ฐ, ์ดํด๋ฆฝ์ค ์ฌ๋จ์ผ๋ก Java EE ํ๋ก์ ํธ๋ฅผ ์ด๊ดํ๋ฉด์ ์ด๋ฆ์ด Jakarta EE๋ก ๋ฐ๋์๋ค๊ณ ํ๋ค.
Java EE์์ Jakarta EE๋ก ์ ํ๋๋ ์์ธํ ์ด์ผ๊ธฐ๋ ์ฌ๊ธธ ์ฐธ๊ณ ํ๋ฉด ๋์์ด ๋๋ค.
(https://www.samsungsds.com/kr/insights/java_jakarta.html)
๊ทธ๋์ API ํจํค์ง๋ช ์ด `javax` ์์ `jakarta`๋ก ๋ณ๊ฒฝ๋์๋ค.
์๋ฅผ ๋ค์ด, Spring Boot 2 ์์ JPA๋ฅผ ์ฐ๊ธฐ ์ํด์ `javax`๋ฅผ ๋ถ๋ฌ์์๋๋ฐ,
import javax.persistence.*;
Spring Boot 3 ์์๋ `jakarta`๋ฅผ ๋ถ๋ฌ์์ผ ํ๋ค.
import jakarta.persistence.*;
๊ทธ ์ธ
- GraalVM์ ์ฌ์ฉํ์ฌ ๋ค์ดํฐ๋ธ ์ด๋ฏธ์ง ์์ฑ ์ง์
- ๋ง์ดํฌ๋ก๋ฏธํฐ ์ถ์ ์ผ๋ก ๊ด์ฐฐ ๊ฐ๋ฅ์ฑ ํฅ์
์ฐธ๊ณ
- Spring Boot 3.0 Goes GA : https://spring.io/blog/2022/11/24/spring-boot-3-0-goes-ga
- Spring Boot 3.0 Release Notes : https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes
- Java EE์์ Jakarta EE๋ก์ ์ ํ : https://www.samsungsds.com/kr/insights/java_jakarta.html