![[SpringBatch 연재 05] JdbcPagingItemReader로 DB내용을 읽고, JdbcBatchItemWriter로 DB에 쓰기](https://devocean.sk.com/thumnail/2024/10/28/c6ab0423c449accde8c39729cbb0156dfab20487cabc4d636480ad301c57ef85.png)
백엔드
[SpringBatch 연재 05] JdbcPagingItemReader로 DB내용을 읽고, JdbcBatchItemWriter로 DB에 쓰기
두줄요약
JdbcPagingItemReader로 DB 데이터를 페이지 단위로 읽고 파일로 저장하는 방법을 다루었습니다. JdbcBatchItemWriter로 파일 데이터를 DB에 빠르게 적재하는 구성도 함께 설명했습니다.
문제 상황
- Spring Batch에서 대용량 DB 데이터를 읽어 파일로 저장하거나, 파일 데이터를 DB에 적재하는 처리 필요
- 일반 읽기/쓰기보다 페이지 단위 처리와 배치 적재 방식으로 성능과 효율성 확보 필요
구조와 흐름
- JdbcPagingItemReader로 데이터소스, SQL, 정렬 키, 파라미터를 설정해 페이지 단위 조회
- RowMapper와 QueryProvider 조합으로 Customer 객체로 매핑
- JdbcBatchItemWriter로 SQL INSERT와 ItemSqlParameterSourceProvider를 연결해 DB 적재
성능/운영 포인트
- pageSize와 chunk 크기 조합으로 대용량 처리 효율 개선
- 커밋 간격과 재시작 상태 저장 기능으로 배치 안정성 확보
- JDBC 기반이라 다양한 DB 연동 가능하지만 설정과 쿼리 작성은 다소 복잡
