Spring 한국어
팔로우
MongoDB 기반 Spring Batch 작업 및 Spring Boot 4.1의 추가 기능
Spring Batch는 역사적으로 JobRepository에서 작업 실행 상태를 저장하기 위해 SQL 데이터베이스에 의존해 왔습니다. 이 요구 사항은 MongoDB와 같은 NoSQL 데이터베이스를 주로 사용하는 사용자들에게도 지속되었습니다. 최근 Spring Batch 버전에서는 JobRepository를 JDBC에서 분리했으며, Spring Boot 4.1은 MongoDB에 대한 자동 구성을 도입했습니다. 이를 통해 배치 메타데이터를 MongoDB에 저장할 수 있어 별도의 SQL 데이터베이스가 필요 없어졌습니다. 이 글은 JobRepository에 MongoDB를 사용하는 Spring Batch 작업의 완전한 예제를 보여줍니다. 이 예제는 Docker Compose를 사용하여 MongoDB와 PostgreSQL을 설정합니다. CSV에서 고객 데이터를 읽어 PostgreSQL 테이블에 쓰는 ETL 작업을 정의합니다. 이는 대상 테이블을 재설정하는 작업과 실제 데이터 전송을 위한 작업의 두 단계로 이루어집니다. 데이터 전송 단계에서는 FlatFileItemReader, 간단한 프로세서, JdbcBatchItemWriter를 사용합니다. 이 청크 기반 단계에 대한 내결함성 및 재시도 메커니즘이 구성됩니다. 그런 다음 애플리케이션이 실행되며, 모든 작업 실행 세부 정보가 MongoDB에 기록됩니다. OpenTelemetry 및 Grafana 통합으로 관찰 가능성이 향상됩니다. 이 글은 또한 Spring Batch를 GraalVM 네이티브 이미지와 함께 작동하도록 하는 방법과 최적화를 위한 지연 데이터 소스 연결을 소개합니다. 핵심은 Spring Batch가 이제 MongoDB와 원활하게 통합되어 개발자가 선호하는 데이터베이스를 타협 없이 사용할 수 있다는 것입니다.