Inflearn MJ코딩 강사님의 [스프링 배치 입문] 예제로 배우는 핵심 Spring Batch 강의를 듣고 정리한 내용입니다.
Spring Batch - 여러 작업들을 모아서 특정 주기마다 한번에 처리해주는 역할 -> 대량의 데이터 일괄처리 - 업무 효율성 향상을 위한 필수적인 작업!
- 초당 수많은 처리 작업이 생기는데 이것을 모두 실시간으로 처리하기 어렵다!
예시: 이메일 쿠폰 발송, 가맹점 정산, 거래 명세서 생성, 추천 시스템 데이터 작업
Spring Batch로 작업이 필요한 이유
- 풍부한 기능, 일관성있는 코드, 기존 서비스가 스프링 프레임워크로 되어있는 경우 호환 가능
- 트랜잭션, 롤백 등의 기능도 구현이 되어있음
- 확장성에 유리
Spring Batch의 구조
JobRepository - 배치가 수행될 때, 메타 데이터 관리, 시작 시간, 종료 시간, 상태 등 정보 저장
JobLauncher - Job 시작하게 하는 역할 - Scheduling 처리할 때
Job - 하나의 배치 작업 - ex. 이메일 발송 Job
Step - 세부적인 작업 내용 - Job 하나에 하나 이상의 Step - Step 하나는 ItemReader, ItemProcessor, ItemWriter 하나씩으로 구성
유효성 검증: validator 추가
리스너 : listener 추가 - BeforeJob, AfterJob
Tasklet 처리 방식(간단한 거) & Chunk 처리 방식(ItemReader, ItemProcessor, ItemWriter)