Spring Boot 3.4 ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ

2025. 2. 27. 01:34ยทFramework/spring

์„ฌ๋„ค์ผ.jpg

Spring Boot 3.4 ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ ์ข…ํ•ฉ ๋ถ„์„

Spring Boot 3.4๋Š” 2024๋…„ 11์›” 21์ผ ์ถœ์‹œ๋œ ์ฃผ์š” ๋ฒ„์ „์œผ๋กœ, ์„ฑ๋Šฅ ๊ฐœ์„ , ๋ณด์•ˆ ๊ฐ•ํ™”, ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์ง€์› ํ™•์žฅ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๋ฆด๋ฆฌ์Šค๋Š” ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜ ํ–ฅ์ƒ๊ณผ ์šด์˜ ํ™˜๊ฒฝ์—์„œ์˜ ์•ˆ์ •์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ(Observability), ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์ตœ์ ํ™”, ๋ณด์•ˆ ์ •์ฑ… ๊ฐœ์„ ์ด ๋‘๋“œ๋Ÿฌ์ง‘๋‹ˆ๋‹ค.


์ฃผ์š” ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ

1. ๊ธฐ์กด ๋ฒ„์ „(3.3)์—์„œ์˜ ์—…๊ทธ๋ ˆ์ด๋“œ

Spring Boot 3.4๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ฃผ์š” ๋ณ€๊ฒฝ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • HTTP ํด๋ผ์ด์–ธํŠธ ์ž๋™ ๊ตฌ์„ฑ ์šฐ์„ ์ˆœ์œ„ ๋ณ€๊ฒฝ: RestClient ๋ฐ RestTemplate์˜ ๊ธฐ๋ณธ HTTP ํด๋ผ์ด์–ธํŠธ๊ฐ€ JDK HttpClient๋กœ ๋ณ€๊ฒฝ๋จ
  • ๋นˆ ๊ฒ€์ฆ ๋™์ž‘ ๊ฐœ์„ : @Validated๊ฐ€ ์ ์šฉ๋œ ๊ตฌ์„ฑ ์†์„ฑ ํด๋ž˜์Šค์˜ ์ค‘์ฒฉ ์†์„ฑ ๊ฒ€์ฆ์ด ๋ช…์‹œ์  @Valid ์–ด๋…ธํ…Œ์ด์…˜ ํ•„์š”
  • ๊ทธ๋ ˆ์ด์Šคํ’€ ์…ง๋‹ค์šด ๊ธฐ๋ณธ ํ™œ์„ฑํ™”: server.shutdown=immediate๋กœ ์„ค์ •ํ•ด์•ผ ์ฆ‰์‹œ ์ข…๋ฃŒ ๊ฐ€๋Šฅ
  • ๋™์  ์†์„ฑ ๋“ฑ๋ก ๋ฐฉ์‹ ๋ณ€๊ฒฝ: DynamicPropertyRegistry ์ฃผ์ž… ๋Œ€์‹  DynamicPropertyRegistrar ๊ตฌํ˜„ ํ•„์š”

์‹ ๊ทœ ๊ธฐ๋Šฅ ๋ฐ ๊ฐœ์„  ์‚ฌํ•ญ

2. ๊ตฌ์กฐํ™”๋œ ๋กœ๊น… ์ง€์›

Spring Boot 3.4๋Š” Elastic Common Schema(ECS), Graylog Extended Log Format(GELF), Logstash ํ˜•์‹์˜ ๊ตฌ์กฐํ™”๋œ ๋กœ๊น…์„ ๊ธฐ๋ณธ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. application.yml์—์„œ ๊ฐ„๋‹จํžˆ ํ™œ์„ฑํ™” ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค:

logging:
  structured:
    format:
      file: ecs  # ํŒŒ์ผ ๋กœ๊น… ํฌ๋งท
      console: gelf  # ์ฝ˜์†” ์ถœ๋ ฅ ํฌ๋งท

3. ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ ๊ฐ•ํ™”

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ทธ๋ฃนํ•‘: spring.application.group ์†์„ฑ์œผ๋กœ ๊ด€๋ จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋…ผ๋ฆฌ์  ๊ทธ๋ฃน์œผ๋กœ ๊ด€๋ฆฌ[1][20]
  • OTLP gRPC ์ „์†ก ์ง€์›: ํŠธ๋ ˆ์ด์Šค ๋ฐ์ดํ„ฐ ์ „์†ก ํ”„๋กœํ† ์ฝœ๋กœ gRPC ์„ ํƒ ๊ฐ€๋Šฅ
    management:
    otlp:
      tracing:
        transport: grpc
  • SSL ์ธ์ฆ์„œ ๋ชจ๋‹ˆํ„ฐ๋ง: /actuator/info ์—”๋“œํฌ์ธํŠธ์— SSL ์ธ์ฆ์„œ ์œ ํšจ๊ธฐ๊ฐ„ ๊ฒฝ๊ณ  ๊ธฐ๋Šฅ ์ถ”๊ฐ€

4. ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ๋นŒ๋“œ ๊ฐœ์„ 

Paketo tiny ๋นŒ๋”๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์–ด ๋” ์ž‘์€ ์ด๋ฏธ์ง€ ํฌ๊ธฐ(๊ธฐ์กด ๋Œ€๋น„ ~40% ๊ฐ์†Œ)๋ฅผ ๋‹ฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ARM/x64 ์•„ํ‚คํ…์ฒ˜ ๋™์‹œ ์ง€์› ๋ฐ ๋ณด์•ˆ ๊ฐ•ํ™”๋ฅผ ์œ„ํ•ด trustBuilder ์˜ต์…˜ ์ถ”๊ฐ€:

bootBuildImage {
    builder = "paketobuildpacks/builder-jammy-java-tiny"
    trustBuilder = true
}

5. Docker Compose ํ†ตํ•ฉ ๊ฐ•ํ™”

  • ๋‹ค์ค‘ Compose ํŒŒ์ผ ์ง€์›: spring.docker.compose.arguments๋กœ ์ถ”๊ฐ€ ๋ช…๋ น์ค„ ์ธ์ˆ˜ ์ „๋‹ฌ ๊ฐ€๋Šฅ[7]
  • Redis Stack ๋ฐ Grafana LGTM ์ง€์›: ์ƒˆ๋กœ์šด ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ํ†ตํ•ฉ ์ถ”๊ฐ€
    spring:
    docker:
      compose:
        files:
          - docker-compose-base.yml
          - docker-compose-override.yml

๋ณด์•ˆ ๊ฐ•ํ™” ์กฐ์น˜

6. ์•ก์ถ”์—์ดํ„ฐ ์ ‘๊ทผ ์ œ์–ด

  • ์„ธ๋ถ„ํ™”๋œ ๊ถŒํ•œ ๊ด€๋ฆฌ: management.endpoint.<id>.access ์†์„ฑ์œผ๋กœ ์ฝ๊ธฐ ์ „์šฉ(read-only), ๋ฌด์ œํ•œ(unrestricted), ์ ‘๊ทผ ๋ถˆ๊ฐ€(none) ์„ค์ •
    management:
    endpoints:
      access:
        max-permitted: read-only  # ์ตœ๋Œ€ ํ—ˆ์šฉ ๊ถŒํ•œ ์ƒํ•œ ์„ค์ •
    endpoint:
      loggers:
        access: unrestricted  # ํŠน์ • ์—”๋“œํฌ์ธํŠธ ๊ถŒํ•œ ์„ค์ •

7. SSL ์ธ์ฆ์„œ ๊ด€๋ฆฌ

  • ์ž๋™ ๋งŒ๋ฃŒ ๊ฒฝ๊ณ : /actuator/info์—์„œ SSL ์ธ์ฆ์„œ ์œ ํšจ๊ธฐ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง
  • ์ƒํƒœ ์ ๊ฒ€ ํ†ตํ•ฉ: management.health.ssl.certificate-validity-warning-threshold๋กœ ์ž„๊ณ„๊ฐ’ ์„ค์ •

๊ฐœ๋ฐœ์ž ์ƒ์‚ฐ์„ฑ ๊ฐœ์„ 

8. ๊ฐ€์ƒ ์Šค๋ ˆ๋“œ ์ง€์› ํ™•๋Œ€

  • Undertow ์›น ์„œ๋ฒ„: ๊ฐ€์ƒ ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜ ์š”์ฒญ ์ฒ˜๋ฆฌ
  • OTLP ๋ฏธํ„ฐ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ: ๋น„๋™๊ธฐ ๋ฉ”ํŠธ๋ฆญ ์ˆ˜์ง‘์— ๊ฐ€์ƒ ์Šค๋ ˆ๋“œ ์ ์šฉ

9. ํ…Œ์ŠคํŠธ ์ปจํ…Œ์ด๋„ˆ ๊ฐœ์„ 

  • KafkaContainer ์ง€์› ์ถ”๊ฐ€: ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ๊ตฌ์ถ• ์šฉ์ด
  • Redis Stack ํ†ตํ•ฉ: redis/redis-stack ์ด๋ฏธ์ง€ ๊ณต์‹ ์ง€์›

์ฃผ์š” ํ˜ธํ™˜์„ฑ ๋ณ€๊ฒฝ ์‚ฌํ•ญ

10. ์˜์กด์„ฑ ์—…๊ทธ๋ ˆ์ด๋“œ

  • Spring Framework 6.2: ๊ฐ€์ƒ ์Šค๋ ˆ๋“œ ๋ฐ ๋ฆฌ์•กํ‹ฐ๋ธŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ์„ 
  • Hibernate 6.6: ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฐ ์ƒˆ๋กœ์šด ์• ๋…ธํ…Œ์ด์…˜ ์ง€์›
  • Jackson 2.18: JSON ์ง๋ ฌํ™”/์—ญ์ง๋ ฌํ™” ์„ฑ๋Šฅ 15% ํ–ฅ์ƒ

11. ์‚ฌ์šฉ ์ค‘๋‹จ(DEPRECATION) ํ•ญ๋ชฉ

  • @MockBean/@SpyBean: Spring Framework์˜ @MockitoBean/@MockitoSpyBean์œผ๋กœ ๋Œ€์ฒด
  • legacy Actuator ์†์„ฑ: management.endpoints.enabled-by-default → management.endpoints.access.default

์šด์˜ ํ™˜๊ฒฝ ๊ณ ๋ ค์‚ฌํ•ญ

12. ์„ฑ๋Šฅ ๋ชจ๋‹ˆํ„ฐ๋ง ์ „๋žต

  • ๋ฉ”ํŠธ๋ฆญ ์ง‘๊ณ„: Micrometer์™€ Prometheus ํ†ตํ•ฉ์„ ํ†ตํ•œ ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง
    @Bean
    public MeterRegistryCustomizer<PrometheusMeterRegistry> metricsCommonTags() {
      return registry -> registry.config().commonTags("application", "my-service");
    }
  • ํŠธ๋ ˆ์ด์Šค ์ƒ˜ํ”Œ๋ง: management.otlp.tracing.sampling.ratio๋กœ ๋น„์šฉ ์ตœ์ ํ™”

13. ์ปจํ…Œ์ด๋„ˆ ๋ณด์•ˆ ๊ฐ•ํ™”

  • Distroless ์ด๋ฏธ์ง€ ์ ์šฉ: ๋ถˆํ•„์š” ํŒจํ‚ค์ง€ ์ œ๊ฑฐ๋กœ ์ทจ์•ฝ์  ์ตœ์†Œํ™”
  • SBOM ์ƒ์„ฑ: --enable-sbom ์˜ต์…˜์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ํˆฌ๋ช…์„ฑ ํ™•๋ณด

๊ฒฐ๋ก  ๋ฐ ๊ถŒ์žฅ ์‚ฌํ•ญ

Spring Boot 3.4๋Š” ํ˜„๋Œ€์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์š”์†Œ๋ฅผ ํฌ๊ด„ํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ํ™˜๊ฒฝ์—์„œ์˜ ์šด์˜ ํšจ์œจ์„ฑ๊ณผ ๋ณด์•ˆ์„ฑ์ด ํฌ๊ฒŒ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ ๋‹ค์Œ ์‚ฌํ•ญ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค:

  1. ์ ์ง„์  ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜: Deprecated API ์‚ฌ์šฉ ๋ถ€๋ถ„ ์šฐ์„  ์ˆ˜์ •
  2. ๋ณด์•ˆ ๊ฒ€์ฆ ๊ฐ•ํ™”: Actuator ์—”๋“œํฌ์ธํŠธ ์ ‘๊ทผ ์ œ์–ด ์žฌ๊ฒ€ํ† 
  3. ์„ฑ๋Šฅ ๋ฒ ์ด์Šค๋ผ์ธ ์„ค์ •: ๊ตฌ์กฐํ™”๋œ ๋กœ๊น… ๋„์ž… ์ „ ๊ธฐ์กด ๋ชจ๋‹ˆํ„ฐ๋ง ์ฒด๊ณ„ ์ ๊ฒ€
  4. ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ํ…Œ์ŠคํŠธ: Paketo tiny ๋นŒ๋”์™€ ๊ธฐ์กด ์›Œํฌํ”Œ๋กœ์šฐ ํ˜ธํ™˜์„ฑ ๊ฒ€์ฆ

ํ–ฅํ›„ Spring Boot 4.0์—์„œ๋Š” Jakarta EE 11 ๋ฐ Project Leyden ํ†ตํ•ฉ์œผ๋กœ ๋”์šฑ ๊ฐœ์„ ๋œ ์‹œ์ž‘ ์„ฑ๋Šฅ์ด ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. ์ง€์†์ ์ธ ๊ด€์ธก ๊ฐ€๋Šฅ์„ฑ ๊ฐ•ํ™”์™€ ์„œ๋ฒ„๋ฆฌ์Šค ์•„ํ‚คํ…์ฒ˜ ์ง€์› ํ™•๋Œ€๊ฐ€ ์ฃผ์š” ๋ฐœ์ „ ๋ฐฉํ–ฅ์œผ๋กœ ์ฃผ๋ชฉ๋ฐ›๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'Framework/spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • spring framework 6.2๋Š” spring boot ์–ด๋–ค ๋ฒ„์ „๋ถ€ํ„ฐ ์ ์šฉ๋˜๋Š”๊ฐ€?
  • Spring Framework 6.2 ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ
  • Spring One 2023 ์„ธ์…˜ ๋ชจ์Œ
  • [spring boot] ์Šคํ”„๋ง๋ถ€ํŠธ 3.1.0 M2 ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
์ผ์ƒ, ๊ฒŒ์ž„, ๋ง›์ง‘, ์—ฌํ–‰, ๊ฐœ๋ฐœ, IT ๋ธ”๋กœ๊ทธ๐Ÿงž
  • ์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
    ์š”์ˆ  ๋žจํ”„๐Ÿซ–
    ์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • All (549)
      • Languages (57)
        • JAVA (13)
        • JSP (1)
        • C_C++ (4)
        • Html (3)
        • CSS (1)
        • JavaScript (18)
        • Python (3)
        • Kotlin (13)
        • TypeScript (1)
      • Framework (14)
        • spring (11)
        • jstl (1)
        • angular (2)
      • Tool (28)
        • Eclipse (5)
        • vsCode (3)
        • scrcpy (2)
        • Git (1)
        • IntelliJ (6)
        • Visual-studio (1)
        • UML (1)
        • Gradle (8)
      • DB (6)
        • Oracle (1)
        • MySql (3)
        • Mongo (2)
      • OS (14)
        • Linux (2)
        • Windows (12)
      • Server (8)
        • Tomcat (1)
        • Apache (1)
        • Node.js (6)
      • Programmings (25)
        • Design Pattern (2)
        • Funny (20)
        • Algorithms (3)
      • Cloud (8)
        • Docker (1)
        • Kubernetes (4)
        • Istio (1)
        • ArgoCD (2)
      • IT (5)
        • gRPC (3)
        • RESTful (3)
        • Web UI (5)
        • AI (4)
      • Book (6)
      • TIP (187)
      • Life (53)
      • Game (83)
      • Storage (22)
      • ์‹๋‹น (15)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ์‚ฌ์ดํŠธ๋งต
    • RSS
    • ๊ธฐํƒ€ ์†Œ๋“
  • ๋งํฌ

    • ๊ตฌ๊ธ€
    • ๋„ค์ด๋ฒ„
    • ์ •๋ถ€24
    • Spring Framework ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • Kotlin ๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ
    • ์นด์นด์˜ค ์• ๋“œํ•
    • ๋ธ”๋กœ๊ทธ ์‚ฌ์ดํŠธ๋งต
    • ๋ธ”๋กœ๊ทธ RSS
  • ๊ณต์ง€์‚ฌํ•ญ

    • ์•ˆ๋…•ํ•˜์„ธ์š”
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์˜ค๋Š˜์˜๋‰ด์Šค
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ์™€์ผ์ฆˆ
    ๋‰ด์Šค
    ํ•œ๋ˆˆ์— ๋ณด๋Š” ์˜ค๋Š˜์˜ ๋‰ด์Šค
    ๋‰ด์Šค ๋ธŒ๋ฆฌํ•‘
    ๋ธŒ๋ฆฌํ•‘
    ๋ฐ์ผ๋ฆฌ ๋‰ด์Šค
    ํƒœ๊ตญ
    ํ€˜์ŠคํŠธ
    ๋ชฌ์Šคํ„ฐํ—Œํ„ฐ๋‚˜์šฐ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์ง€๋‹ˆ๐Ÿงž‍โ™‚๏ธ๐Ÿฅญ
Spring Boot 3.4 ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”