목록 보기
Composite PK에서 시작된 Spring Boot 4 / Spring Batch 6 업그레이드 기록
백엔드

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

네이버 페이
네이버 페이
2026년 5월 11일

두줄요약

Spring Data JDBC의 Composite ID 적용을 계기로 Spring Boot 4와 Spring Batch 6 업그레이드를 진행했습니다. 복합키 매핑, 배치 메타데이터 변경, Kotlin·Jackson·Gradle 호환성까지 함께 정리했습니다.

핵심 내용

  • Spring Data JDBC의 Composite ID 정식 지원을 계기로 시작된 Spring Boot 3.5.0 → 4.0.1 업그레이드 기록
  • 업그레이드 범위가 Spring Framework 7, Spring Batch 6, Jackson 3, Kotlin 2.3, Gradle, ojdbc11, Kotest 6까지 확장된 과정
  • Composite PK를 억지 우회 없이 엔티티로 표현하고, 운영 반영 전 배치 메타데이터와 실행 호환성을 점검한 경험

구조와 흐름

  • Composite PK를 단일 @Id로 우회하면 save/update/deleteById에서 다른 row를 덮어쓸 수 있는 위험
  • Composite ID를 @Id와 Persistable로 표현해 신규 저장 의도를 명시하고 update 오인을 줄이는 방식
  • Kotlin data class copy()와 @Transient 상태, markNew() 호출 타이밍에 따른 신규 판단 흐름

주의할 점

  • Spring Batch 6 전환 시 메타데이터 저장 방식, Job 실행 API, JobParameters, listener·item 패키지 이동 확인 필요
  • BATCH_JOB_SEQ와 BATCH_JOB_INSTANCE_SEQ처럼 배치 메타 스키마 변경에 따른 운영 호환성 대응 필요
  • markNew() 누락 시 insert 대신 update 경로로 해석될 수 있어 저장 경로 규약 고정 필요

다음 읽기

#Spring Batch 주제를 다룬 다른 회사 글

레거시 정산 개편기: 신규 시스템 투입 여정부터 대규모 배치 운영 노하우까지

20년 레거시 정산 시스템을 분할정복과 데이터 모델 개선으로 개편했습니다. 대규모 배치는 테스트 자동화, 카나리 투입, Jenkins 기반 운영으로 안정성과 성능을 함께 높였습니다.

토스
토스
백엔드

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...