๐ŸŒฟSpring/Spring Framework

[Spring Framework] Spring Boot 2.* vs 3.*

Boom's 2024. 6. 11. 10:50
๋ฐ˜์‘ํ˜•

 

์ฃผ์š” ์ฐจ์ด์ 

1. Java ๋ฒ„์ „ ์š”๊ตฌ์‚ฌํ•ญ

  • Spring Boot 2.x: ์ตœ์†Œ Java 8์„ ์š”๊ตฌํ•˜๋ฉฐ, ์ผ๋ถ€ ๊ธฐ๋Šฅ์€ Java 11์„ ์ง€์›
  • Spring Boot 3.x: ์ตœ์†Œ Java 17์„ ์š”๊ตฌ ์ด๋Š” ์ตœ์‹  Java ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ์„ฑ๋Šฅ๊ณผ ๋ณด์•ˆ์ด ๊ฐœ์„ ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

2. Jakarta EE๋กœ์˜ ์ „ํ™˜

  • Spring Boot 2.x: Java EE 8์„ ๊ธฐ๋ฐ˜
  • Spring Boot 3.x: Jakarta EE 9 ์ด์ƒ์œผ๋กœ ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ํŒจํ‚ค์ง€ ์ด๋ฆ„์ด javax์—์„œ jakarta๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, javax.servlet์€ jakarta.servlet๋กœ ๋ณ€๊ฒฝ

3. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ๊ฐœ์„ ์ 

  • Spring Boot 3.x: ๋‹ค์–‘ํ•œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๊ณผ ๊ฐœ์„ ์ ์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ƒˆ๋กœ์šด AOT (Ahead of Time) ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ๋„ค์ดํ‹ฐ๋ธŒ ์ด๋ฏธ์ง€ ์ง€์›์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, GraalVM ๋„ค์ดํ‹ฐ๋ธŒ ์ด๋ฏธ์ง€ ์ง€์›์ด ๊ฐ•ํ™”๋˜์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹œ์ž‘ ์‹œ๊ฐ„์ด ๋Œ€ํญ ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

4. ์ง€์› ์ค‘๋‹จ ๋ฐ ์ œ๊ฑฐ๋œ ๊ธฐ๋Šฅ

  • Spring Boot 2.x: ๋ช‡๋ช‡ ์˜ค๋ž˜๋œ ๊ธฐ๋Šฅ๊ณผ ์ข…์†์„ฑ์„ ์ง€์›
  • Spring Boot 3.x: ์ง€์›์ด ์ค‘๋‹จ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๊ธฐ๋Šฅ์ด ์ œ๊ฑฐ. ์˜ˆ๋ฅผ ๋“ค์–ด, ์˜ค๋ž˜๋œ Spring Security OAuth ํ”„๋กœ์ ํŠธ๊ฐ€ ์ œ๊ฑฐ๋˜๊ณ , Spring Authorization Server๋กœ ๋Œ€์ฒด

5. Spring Framework 6.x ๊ธฐ๋ฐ˜

  • Spring Boot 2.x: Spring Framework 5.x๋ฅผ ๊ธฐ๋ฐ˜
  • Spring Boot 3.x: Spring Framework 6.x๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, ์ด ๋ฒ„์ „์€ ๋ชจ๋“ˆํ™”๋ฅผ ์ง€์›ํ•˜๊ณ  ์ตœ์‹  Java ๋ฐ Jakarta EE ํ‘œ์ค€์„ ๋”ฐ๋ฅธ๋‹ค.

์ข…์†์„ฑ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ณ€ํ™”

  • Spring Boot 3.x: Hibernate ORM 6.x, Thymeleaf 3.0 ๋“ฑ ์ตœ์‹  ๋ฒ„์ „์˜ ์ฃผ์š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ ํ–ฅ์ƒ๊ณผ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • Spring Boot 2.x: ์ด์ „ ๋ฒ„์ „์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•˜์ง€๋งŒ ์ตœ์‹  ๊ธฐ๋Šฅ์ด ๋ถ€์กฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ๋ฐ ์ตœ์ ํ™”

  • Spring Boot 3.x: AOT ์ปดํŒŒ์ผ๊ณผ GraalVM ๋„ค์ดํ‹ฐ๋ธŒ ์ด๋ฏธ์ง€๋ฅผ ํ†ตํ•ด ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ์ค„์–ด๋“ค๊ณ , ์‹œ์ž‘ ์‹œ๊ฐ„์ด ๋‹จ์ถ•
  • Spring Boot 2.x: ์ „ํ†ต์ ์ธ JVM ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์ œ๊ณต

ํ˜ธํ™˜์„ฑ๊ณผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜

  • Spring Boot 3.x: Jakarta EE ์ „ํ™˜์œผ๋กœ ์ธํ•ด ๋งŽ์€ ์ฝ”๋“œ๋ฒ ์ด์Šค๊ฐ€ ๋ณ€๊ฒฝ๋  ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Spring ํŒ€์€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฐ€์ด๋“œ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค.
  • Spring Boot 2.x: ๊ธฐ์กด Java EE ๊ธฐ๋ฐ˜ ์ฝ”๋“œ๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด, ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์ด ๋†’๋‹ค.

์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ์ง€์›

  • Spring Boot 3.x: ์ตœ์‹  ๊ธฐ์ˆ ๊ณผ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ ๊ทน์ ์ธ ์ง€์›๊ณผ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ˜์˜ํ•˜์—ฌ ๋ฐœ์ „ํ•˜๊ณ  ์žˆ๋‹ค.
  • Spring Boot 2.x: ์•ˆ์ •์ ์ธ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ์žฅ๊ธฐ์ ์œผ๋กœ๋Š” ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ๊ถŒ์žฅ

๊ฒฐ๋ก 

Spring Boot 2.x์™€ 3.x๋Š” ๊ฐ๊ฐ์˜ ์žฅ์ ๊ณผ ๋‹จ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ, ์‚ฌ์šฉ์ž๋Š” ์ž์‹ ์˜ ํ•„์š”์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋ฒ„์ „์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Spring Boot 3.x: ์ตœ์‹  ๊ธฐ์ˆ ๊ณผ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์›ํ•˜๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. Java 17 ์ด์ƒ์„ ์š”๊ตฌํ•˜๋ฉฐ, Jakarta EE๋กœ์˜ ์ „ํ™˜์ด ํ•„์š”
  • Spring Boot 2.x: ์•ˆ์ •์ ์ธ ํ™˜๊ฒฝ๊ณผ ๊ธฐ์กด Java EE ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ์™€์˜ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ ํ•ฉ

 

๋ฐ˜์‘ํ˜•