대량의 데이터를 처리하는 작업
-> 이를 자동화 하여 시스템의 부화를 줄이고 효율적인 데이터 처리를 가능하게 하는 framework
1) Batch Program
-> 대량의 데이터를 처리하는 작업을 자동화 하는 프로그램
Batch 와 scheduler 의 차이
실행방법과 목적에 큰 차이가 있다
- Batch -> 일괄처리를 위한 프로그램 (정해진 시간에 실행되지 않고 사용자의 명령이 있어야 실행된다)
- Scheduler -> 정해진 시간에 실행(주기적으로 실행되는 작업을 설정)
2) Spring Batch 프로세스
- Job - 단위 작업 ( Batch 처리의 최상위 단위 , 1개 이상의 step 으로 구성 )
![](https://velog.velcdn.com/images/finestecher/post/206333fb-3ea8-4fff-8dc3-286da135dd6a/image.png)
- Step - 작은 단위 작업 ( 실제로 배치 처리를 수행하는 단위 )
하나의 작업 처리 - Tasklet, 여러 작업 처리 - Chunk
Chunk 지향 처리 방식
Quartz, Cron 을 활용한 배치 작업 스케쥴링
로깅과 예외처리 기능
![](https://velog.velcdn.com/images/finestecher/post/125a222f-0091-499b-89b1-e609a42acc20/image.png)
https://docs.spring.io/spring-batch/reference/#domainLanguageOfBatch
- job Launcher 로 job 을 실행한다
- job 은 step 을 통해 실제 배치 처리를 수행한다
- step 에서 읽어오고 처리하고 저장하는 작업을 수행한다
![](https://velog.velcdn.com/images/finestecher/post/277b0bf9-9233-478f-b518-a0ce3a615bf9/image.png)
참고사이트
https://docs.spring.io/spring-batch/reference/#domainLanguageOfBatch