SpringBoot 버전을 μ—…κ·Έλ ˆμ΄λ“œ ν•΄μ•Όν•  일이 μƒκ²¨μ„œ 2.3 버전을 2.5 λ²„μ „μœΌλ‘œ μ—…κ·Έλ ˆμ΄λ“œν•œ κ²½ν—˜λ‹΄μ„ κ³΅μœ ν•©λ‹ˆλ‹€.

κ°œλ°œμΈμƒ 처음으둜 ν•΄λ³΄λŠ” λ ˆκ±°μ‹œ μ‹œμŠ€ν…œμ˜ ν”„λ ˆμž„μ›Œν¬ μ—…κ·Έλ ˆμ΄λ“œ μž‘μ—…μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

λŒ€λΆ€λΆ„μ€ μ‹ κ·œ ν”„λ‘œμ νŠΈλ₯Ό λ§Œλ“€κ±°λ‚˜ deprecate 된 μƒνƒœλ‘œ μœ μ§€ν•˜λŠ” μ •λ„μ˜€μ£ .

κ·Έλž˜λ„ 해보고 μ‹Άμ—ˆλ˜ λΆ€λΆ„μ΄μ—ˆμŠ΅λ‹ˆλ‹€. 업무가 많이 지루해진것도 ν•œ λͺ« ν–ˆμ£ .

μ €λŠ” 주기적으둜 λ°˜κΈ°μ— ν•œλ²ˆμ •λ„λŠ” 라이브러리 μ—…κ·Έλ ˆμ΄λ“œ μž‘μ—…μ„ μ§„ν–‰ν•΄μ•Όν•œλ‹€κ³  μƒκ°ν•˜μ§€λ§Œ

저희 κ°œλ°œνŒ€μ€ μ΄μƒν•˜κ²Œ 라이브러리 μ—…κ·Έλ ˆμ΄λ“œ μž‘μ—…μ„ μ•ˆν•©λ‹ˆλ‹€. 

그런데 κ°‘μžκΈ° ν”„λ ˆμž„μ›Œν¬ μ—…κ·Έλ ˆμ΄λ“œλ₯Ό ν•˜λ €λ‹ˆ dependency κ°€ 많이 κ±Έλ €μžˆμ„κ±°λΌ μ˜ˆμƒν–ˆμ£ .

 

μš°μ„  2.3 -> 2.4 둜 μ˜¬λΌκ°€λ©΄μ„œ μ–΄λ–€ 뢀뢄에 λ³€ν™”κ°€ μƒκ²ΌλŠ”μ§€λ₯Ό ν™•μΈν•˜κ³  λŒ€μ‘ν•˜κ³ ,

2.4 -> 2.5 μ—μ„œλŠ” μ–΄λ–€ λ³€ν™”κ°€ μžˆμ—ˆλŠ”μ§€ ν™•μΈν•˜μ—¬ λŒ€μ‘ν•˜λ©΄ 될거라 μƒκ°ν–ˆκ³  

μ•„λž˜ 2개의 spring boot release note λ₯Ό ν•˜λ‚˜ν•˜λ‚˜ μ‚΄νŽ΄λ΄€μŠ΅λ‹ˆλ‹€.

2.3 -> 2.4 μ—μ„œ λ³€κ²½λœ λΆ€λΆ„

  • JUnit 5’s Vintage Engine Removed from spring-boot-starter-test
  • Config File Processing (application properties and YAML files)
  • Config Data Imports
  • Embedded database detection
  • User-defined MongoClientSettings no longer customized
  • Logback Configuration Properties
  • Default Servlet Registration
  • HTTP traces no longer include cookie headers by default
  • Undertow Path on Forward
  • Neo4j
  • Hazelcast 4
  • Elasticsearch RestClient
  • R2DBC
  • Flyway
  • Removal of Plugin Management for Flatten Maven Plugin
  • Version management for exec-maven-plugin
  • Spring Boot Gradle Plugin
  • Metrics export in integration tests
  • Deprecations from Spring Boot 2.2 and 2.3

2.4 -> 2.5 μ—μ„œ λ³€κ²½λœ λΆ€λΆ„

  • SQL Script DataSource Initialization
  • Flyway and Liquibase JDBC URLs
  • Spring Data JPA
  • Spring Data Solr
  • Secure Info Endpoint
  • Task Scheduling Harmonization with Spring Integration
  • Default Expression Language (EL) Implementation
  • Messages in the Default Error View
  • Logging Shutdown Hooks
  • Gradle Default jar and war Tasks
  • Cassandra Throttling Properties
  • Customizing jOOQ’s DefaultConfiguration
  • Groovy 3
  • Minimum Requirements Changes
  • Hibernate Validator 6.2

μœ„μ— λ‚˜μ˜¨ λ‚΄μš© 이외에도 μ—…κ·Έλ ˆμ΄λ“œ λ˜λ©΄μ„œ deprecated λ˜λŠ” 것듀에 λŒ€ν•œ λΆ€λΆ„λ“€, 그리고 μƒˆλ‘œ μΆ”κ°€ 된 뢀뢄듀에 λŒ€ν•œ μ„€λͺ…을 ν•˜λ‚˜ν•˜λ‚˜ 읽어보고 ν˜„μž¬ λ‚΄κ°€ λ‹΄λ‹Ήν•˜λŠ” ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©λ˜λŠ” 것듀과 μ—°κ΄€λœ 것듀을 λͺ¨λ‘ μ½μ–΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

그리고 spring boot 버전을 λ³€κ²½ν•œ λ’€ 였λ₯˜κ°€ λ°œμƒν•˜λŠ” 뢀뢄은 μ—†λŠ”μ§€ λ°°ν¬λŠ” 잘 λ˜λŠ”μ§€λ₯Ό ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

boot μ—…κ·Έλ ˆμ΄λ“œ μž‘μ—…ν•˜λ©΄μ„œ λ³€κ²½ν–ˆλ˜ 뢀뢄은 μ•„λž˜ λ‚΄μš©λ“€μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

  • spring.config.use-legacy-processing = true 섀정을 μΆ”κ°€
  • fasterxml.jackson.databind.PropertyNamingStrategy -> PropertyNamingStrategies 클래슀 λ³€κ²½
  • third-party dependency λ“€ μ€‘μ—μ„œ μ—…κ·Έλ ˆμ΄λ“œκ°€ ν•„μš”ν•œ 것듀 확인 및 μ—…κ·Έλ ˆμ΄λ“œ
  • gradle 버전 μ—…κ·Έλ ˆμ΄λ“œ 6.7 -> 6.9

μž‘μ—… λ‚΄μš©λ§Œλ³΄λ©΄ μ§„μ§œ 별거 μ•„λ‹ˆμ—ˆλ˜ μž‘μ—…μœΌλ‘œ λ³΄μ΄λ„€μš”. μž‘μ—…μ‹œκ°„λ³΄λ‹€ λ¬Έμ„œ μ½μ–΄λ³΄λŠ” μ‹œκ°„μ΄ 더 였래 κ±Έλ Έλ˜κ²ƒ κ°™μŠ΅λ‹ˆλ‹€. 링크λ₯Ό 타고타고 λ“€μ–΄κ°€μ•Ό 확인할 수 μžˆλŠ” 것듀이 λ§Žλ‹€λ³΄λ‹ˆ..

μ•„λ¬΄νŠΌ λ‘œμ»¬ν™˜κ²½μ—μ„œ 잘 λŒμ•„κ°€λŠ” κ²ƒκΉŒμ§€ 확인 ν•˜κ³  κ°œλ°œμ— 올렀 ν…ŒμŠ€νŠΈλ₯Ό ν•΄λ³΄λ‹ˆ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ •μƒμ μœΌλ‘œ μ‹€ν–‰λ˜μ§€ λͺ»ν•˜λŠ” ν˜„μƒμ΄ ν™•μΈλ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ™œ κ·ΈλŸ°κ°€ λ΄€λ”λ‹ˆ jar 파일λͺ…이 μ΄μƒν•˜κ²Œ λ°”λ€Œμ–΄μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 끝에 -plain postfixκ°€ 뢙은 파일λͺ…이 배포된 것을 ν™•μΈν–ˆκ³  이게 λ­”κ°€ μ‹Άμ–΄ ꡬ글링을 ν•΄λ³΄λ‹ˆ release note μ—μ„œ μ„€λͺ…을 μ°Ύμ•„λ³Ό 수 μ—†μ—ˆμ§€λ§Œ(λ‚΄κ°€ λͺ» λ³Έ κ±Έμˆ˜λ„?) 2.5버전뢀터 λ°œμƒν•˜λŠ” ν˜„μƒμ΄μ—ˆκ³  gradle μ„€μ •μ—μ„œ jar taskλ₯Ό λΉ„ν™œμ„±ν™” μ‹œν‚€κ±°λ‚˜ λ°°ν¬νŒŒμΌμ„ λ§Œλ“œλŠ” task μ—μ„œ ν•΄λ‹Ή νŒŒμΌμ„ exclude μ²˜λ¦¬ν•˜λ©΄ λ˜λŠ” λ¬Έμ œμ˜€μŠ΅λ‹ˆλ‹€.

 

맀일 λ°˜λ³΅λ˜λŠ” νŠΉλ³„ν•˜μ§€ μ•Šμ€ μ—…λ¬΄λ“€λ§Œ ν•˜λ‹€κ°€ 처음으둜 ν•΄λ³Έ ν”„λ ˆμž„μ›Œν¬ μ—…κ·Έλ ˆμ΄λ“œ μž‘μ—…μ€ λ„ˆλ¬΄ μž¬λ―Έμžˆμ—ˆκ³  쒋은 κ²½ν—˜μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

 

λ‚΄λ…„μ—λŠ” java 17 + SpringBoot 3 기반의 μ‹ κ·œ ν”„λ‘œμ νŠΈλ₯Ό ν•˜λ‚˜ λ§Œλ“€μ–΄μ•Ό ν•˜λŠ”λ° λ²Œμ¨λΆ€ν„° κΈ°λŒ€λ˜κ³  ν˜„μž¬ μ‚¬μš©μ€‘μΈ java 11 μ—μ„œ 17κΉŒμ§€ μ–΄λ–€ 변화듀이 μžˆμ—ˆλŠ”μ§€ ν™•μΈν•˜λŠ” μ‹œκ°„μ„ κ°€μ Έμ•Ό ν•  것 κ°™μŠ΅λ‹ˆλ‹€.