스프링 배치란?
batch processing: 일괄처리라는 의미를 가짐. 일련의 작업을 정해진 로직으로 수행하는 것.
일괄 처리가 필요한 경우
대용량 비즈니스 데이터를 복잡한 작업으로 처리해야하는 경우
특정 시점에 스케줄러를 통해 자동화된 작업이 필요한 경우(ex. 알림, 월 별 리포트 등등…)
대용량 데이터의 포맷을 변경, 유효성 검사 등의 작업을 트랜잭션 안에서 처리 후 기록해야하는 경우
배치의 일반적인 사용 시나리오
DB, 파일 또는 큐에서 데이터 읽기
데이터를 정의한 방식으로 처리
처리된 데이터를 데이터 쓰기
스프링 배치는 사용자 상호작용 없이 반복적으로 데이터를 트랜잭션 단위로 처리할 수 있도록 구현되어 있음.
개발자는 데이터 처리에 대한 비즈니스 로직에만 집중하여 배치 프로세스를 작성가능.
스프링 배치가 제공하는 비즈니스 시나리오
주기적 배치 프로세스
동시적 배치 프로세스: 작업 병렬 처리
단계별 엔터프라이즈 메시지 기반 처리
대규모 작업에 대한 병렬 배치 프로세스
실패 후 수동 or 예약 된 재시작
단계별 순차 처리
부분 처리: 레코드 건너 뛰기(ex, 롤백)
배치 작업 처리의 단위가 작은 경우, 기존 저장 프로시저/스크립트가 있는 경우 전체 배치에 대한 트랜잭션 처리
스프링 배치 계층 구조
Application: 개발자가 작성한 모든 배치 작업, 사용자 정의 코드 포함.