0. 개발환경
- JDK 1.8 이상
- SpringBoot 2.5.1
- DB - H2, Mysql
- IDE - Intellij or STS
- Maven
2.배치 핵심패턴
- read : 데이터베이스, 파일, 큐에서 다량의 데이터 조회
- process : 특정 방법으로 데이터를 가공
- write : 데이터를 수정된 양식으로 다시 저장.
3. 배치시나리오
- 배치 프로세스를 주기적으로 커밋
- 동시 다발적이 ㄴjob의 배치 처리, 대용량 병렬 처리
- 실패 후 수동 또는 스케줄링에 의한 재시작
- 의존관계가 있는 step 여러개를 순차적으로 처리
- 조건적 flow 구성을 통한 체계적이고 유연한 배치 모델 구성
- 반복, 재시도(잠깐동안의 장애로 인한 실패시 재시도), skip 처리
4. 아키텍처
1) application 레이어
: 개발자는 업무로직의 구현에만 집중, 공통적인 기반기술은 프레임웍이 제공.
=> 모든 배치 job과 커스텀 코드 포함.
2) Batch Core 레이어
: Job을 실행, 모니터링, 관리하는 API로 구성
=> ex. JobLauncher, Job, Step, Flow 등이 속한다,
3) Batch Infrastructure 레이어
: Application, Core 모두 공통 Infratstructure 위에서 빌드, Job실행의 흐름과 처리를 위한 틀 제공.
=> ex. Reader, Processor, Writer, Skip, Retry 등이 속함.