본문 바로가기
Spring Batch

Spring Batch Guide - Overveiw

by oJJung 2025. 6. 7.

현 직장에 아직 Spring Batch가 도입되어 있지 않다. 

이에 따라서 이전에 공부했던 Spring Batch 에 대해서 다시 공부할 겸 그리고 팀내 인원들과 공유하기 위해서 Spring Batch 가이드를 작성해볼까 한다. (향로님의 글을 자주봐서 그글 위주로 나만의 가이드를 작성해볼까 한다!)

 

Batch ???
Batch? 그게 뭘까? Batch 는 데이터를 실시간으로 처리하는게 아니라, 일괄적으로 모아서 한번에 처리하는 작업을 의미한다. 그렇다 일괄적으로 대량의 데이터를 한번에 처리하기 위해서 Spring 에서는 Spring Batach 라는 Framework을 제공하고 있다.

그렇다면 우리는 이 Batch를 왜 써야 할까? 가령 매입이 완료된 건에 대해서 가맹점에게 정산을 해줘야 한다고 생각해보자. 30,000개의 가맹점에 대해서 특정 시간에 우리는 대량의 정산을 해줘야 한다. 또한 30,000개의 가맹점을 정산하는 도중에 29,999번째 가맹점에서 실패 했다면? 다시 처음부터 다시 실행 해야 할까? 너무 비효율적이지 않은가?

물론 이보다 더 다양한 이유가 있겠지만, 이러한 단점을 보완하고자 우리는 Spring 에서 제공하는 Batch Framework 을 사용하여 손쉬게 Batch Application 을 만들 수 있다.

 

그렇다면 Srping Batch 의 장점은 뭐가 있을까?

 

Spring Batch 의 장점
1. 트랜잭션 관리: 데이터 처리 실패 시 롤백 가능
2. 재시작 기능: 실패한 Job을 이어서 실행 가능
3. 대용량 처리 최적화: chunk 단위 처리 가능
4. 스케줄링 연동 용이: Quartz, cron 등과 통합 가능
5. 모니터링/로깅: JobExecution, StepExecution 로그 자동 저장

 

앞으로 Spring Batch를 공부하고, 가이드를 제공하면서 샘플 코드를 통해서 적용해보고자 한다.