스프링 배치 (Spring Batch)
- Java 기반의 오픈 소스 프레임워크
- 대용량 데이터 처리 작업 수행시 사용
배치 처리란?
주기적으로 반복되거나 정해진 시간에 실행되는 작업(일괄 처리)
장점
- Spring Framework와 통합 용이
- 확장성과 유연성이 높음
- 배치 작업 상태 관리/실패 처리/재시작 기능 제공으로 인해
안정적이고 신뢰성 있는 배치 처리 구현 가능
스프링 배치
-
Job(잡)
: 처리해야할 작업의 단위
-
Step(스텝)
: Job을 구성하는 작업의 단위
-
Reader(리더)
: Step에서 사용되는 데이터를 읽어오는 역할
-
Processor(프로세서)
: Reader에서 읽어온 데이터를 가공 또는 처리하는 역할
-
Writer(작성자)
: Processor에서 가공된 데이터를 저장하거나 외부 시스템에 전송하는 역할
-
Listener(리스너)
: Job 또는 Step의 실행 중에 이벤트가 발생할 때 특정 로직을 수행하기 위해 사용
👉 대용량 데이터 처리를 효율적이고 안정적으로 수행할 수 있다.
스프링 배치 구조
스프링 배치의 3가지 주요 Layer
- Application
: 배치 처리를 위한 모든 사용자의 코드와 설정 포함
- Batch Core
: Job, Step, JobLauncher, JobParameter
- Batch Infrastructure
: File, DB, ItemReader, ItemWriter
스프링에서 제공하는 특성 그대로 사용 가능하다
스프링배치는 스케줄러가 아니다
- 특정 시간/이벤트에 따라 Job이 실행되는 이벤트가 없다.
- Job을 관리는 하지만 실행시키는 주체는 아니다.