2. Step
- 작업 내 독립적 단위
- 스텝을 연결해서 순차적 처리 흐름을 형성할 수도 있다.
- 세분화 : 성능 및 최적화를 위해서 독립적으로 조장할 수 있어서 효율적인 디버깅 및 테스트가 가능하다.
- 작업 및 청크 지향 처리 : Tasklet으로 정의되거나 Chunk로 정의될 수 있다.
- 리스너 : 사전 및 사후 처리 작업을 수행하기 위한 생명 주기 이벤트에 후킹하기 위해서 리스너를 사용할 수 있다.
계속 읽기
1. Job
- Batch의 최상위 작업 단위
- 순서대로 실행되는 하나 이상의 단계로 구성
- 특정시간에 실행되도록 구성 및 예약하거나 이벤트에 의해 트리거되도록 설정할 수도 있다.
- 전체 배치 처리 워크플로우를 캡슐화하는 주요 구성 요소이다.
- 원자성 : 단일 처리 단위로 취급된다.
- 재사용성 : 다양한 데이터 셋, 작업에 대해서 재사용할 수 있다.
- 확장성 : 구성 설정을 통해 작업이 확장되고 병렬로 실행되어 성능이 향상
계속 읽기
2. 특징
- 배치작업
- 대량의 데이터를 처리하는 단계의 모음
- 배치 작업은 작업 단계를 정의하는 Job, JobLauncher로 구서ㅇ된다.
- 단계 기반 접근 방식
- 데이터 처리에 대한 단계 기반 접근 방식을 제공, 스텝과 그 안의 Reader들이 예시
- 항목 처리
- 유효성 검사, 변환, 필터링 등의 작업을 수행할 수 있다.
- 리소스 관리
- DB연결, 파일 리소스 관리 등 지원해서 확장 가능한 방식으로 외부 리소스에 상호작용할 수 있음
- 트랜잭션
- 트랜잭션을 단일, 전체 작업에 걸쳐 구성할 수 있다.
- 오류 처리
- 오류 발생시 장애를 처리할 수 있도록 한다.
- 단계 또는 작업 수준에서 구성할 수 있다.
- 재시작
- 실패하거나 중단된 배치 작업의 재시작을 지원
- 스케일링
- 대량의 데이터를 분산 및 병렬으로 처리할 수 있도록 한다.
- 모니터링
- 진행 상황 모니터링을 지원하여 개발자가 실행 중인 작업의 상태를 추적하고 로깅할 수 있도록 도운다
계속 읽기
1. 아키텍쳐
- Job:
- 배치 애플리케이션의 최상위 구성 요소
- 작업은 순차적으로 실행되는 하나 이상의 단계로 구성
- Step:
- 스텝은 작업의 단일 단계를 나타낸다.
- 데이터를 처리하기 위해서 함께 동작하는 Reader, Processor, Writer가 존재한다.
- ItemReader
- 파일이나 DB같은 소스에서 데이터를 읽는 방법 제공
- JdbcCursorItemReader 및 FlatFileItemReader 같은 내장 ItemReader가 있다.
- ItemProcessor
- 처리 중인 데이터에 비즈니스 로직을 적용하는 방법을 제공한다.
- 입력을 받아서 출력 항목을 반환
- ItemProcessorAdapter, CompsiteItemProcessor 같은 내장 ItemProcessor가 있다.
- ItemWriter
- 데이터를 파일이나 DB에 저장하는 방법을 제공한다.
- JdbcBatchITemWriter, FlatFileItemWriter 등 내장 ItemWriter를 제공
- JobRepository
- 작업 단계 및 실행 데이터를 저장하는 방법을 제공
- MapJobRepository, JobRepositoryFactoryBean와 같은 구현 제공
- JobLauncher
- 시작과 중지를 담당
계속 읽기
EventDrivenDevelop
- 확장성이 뛰어나고 분리되어 있으며 반응성이 뛰어난 시스템을 구축하는 것을 목표로 한다.
계속 읽기