AI Briefing

Composite PK에서 시작한 Spring Boot 4 / Spring Batch 6 업그레이드 기록

·2026.05.11 13:31

Composite PK 도입을 계기로 Spring Boot 4와 Spring Batch 6로 전환했다.

Composite PK가 필요한 정산 매핑 테이블을 Spring Data JDBC의 Composite ID로 옮기려다, 결과적으로 Spring Boot 4.0.1Spring Data JDBC 4.0.1까지 함께 올리게 됐다. 기존처럼 PK 일부만 @Id로 두는 우회는 savedeleteById에서 다른 행을 덮어쓸 수 있어 위험했고, 그래서 @Id val mappingId: SettlementMappingId 형태와 Persistable + markNew()로 신규 저장 의도를 분리했다.

업그레이드 범위는 점점 넓어졌다.

  • Spring Boot 3.5.0 → 4.0.1
  • Spring Framework 6.2.7 → 7.0.2
  • Spring Batch 5.2.2 → 6.0.1
  • Spring Data JDBC 3.5.0 → 4.0.1
  • Kotlin 2.1 → 2.3
  • Gradle 8.10 → 9.2.1
  • ojdbc8 → ojdbc11
  • kotest 5.9.1 → 6.0.7

Spring Boot 4의 요구사항에 맞추며 spring-boot-starter-aopspring-boot-starter-aspectj로 바꿨다. 배치 모듈에서는 Batch 메타데이터 저장 방식, Job 실행 API, JobParameters 구조, listener·item 패키지 이동 같은 변경을 확인해야 했고, 운영 반영 전에는 v5에서 실패한 JobExecution 정리와 메타 스키마 마이그레이션, DB 접근 정책 점검이 필요했다.

결국 이 작업은 버전 숫자만 바꾸는 일이 아니라, 업그레이드 후에도 운영 배치가 기존과 동일하게 동작하도록 전체 스택을 다시 맞추는 일이었다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.