배치 처리 또는 일괄 처리 는 순차적으로 자료를 처리하는 방식. 프로그램 입출력에 따라 상호작용 가능.
일정 기간 동안 데이터를 모은 후 한번에 순서적으로 처리 하는 방식.
실시간으로 데이터 조회가 힘든 단점이 있다.
이를 위해 분산 쿼리나 스트리밍 기법이 요구된다.
DB 작업을 일정한 시간, 주기마다 실행 해야할 경우, 배치를 사용하는데 보통 스프링 스케줄러로 간편하게 구현 한다.
Job Scheduling 라이브러리. 자바로 개발되어 있어 자바 프로그램에 쉽게 통합해서 개발 가능하다.
시스템 Fail-over와 랜덤 방식의 로드 분산처리 지원.
수십개~수천개의 작업도 실행 가능, 간단한 interval형식이나 Cron표현식의 복잡한 스케줄링도 지원 한다.
Cron 표현식 : 링크
Spring의 특성을 그대로 가지고 있다.
DI, AOP, 서비스 추상화 등 스프링 프레임워크의 3대 요소 모두 사용 가능.
스프링 배치 앱의 요소 :
Job 안에 여러 Step이 있고 Step안에 Reader와 Processor, Writer가 있는데 이는 Tasklet(기능)으로 대체 가능하다.
Spring MVC의 @Component, @Bean과 비슷한 역할. 개발자가 Step에서 하고 싶은 내용을 자유롭게 만들 수 있다.