-
[Spring Batch] StepJava/Spring Batch 2021. 5. 15. 22:54
Step
잡이 전체적인 처리를 정의한다면, 스텝은 잡의 구성 요소를 담당한다. 스텝은 독립적이고 순차적으로 배치 처리를 수행한다. 그렇기 때문에 이 책에서는 스텝을 배치 프로세서라고 부른다.
스텝은 모든 단위의 조각이다. 자체적으로 입력을 처리하고, 자체적인 처리기를 가질 수 있으며, 자체적으로 출력을 처리한다.
트랜잭션은 스텝 내에서 이뤄진다. 스텝은 서로 독립되도록 의도적으로 설계됐다. 이렇게 함으로써 개발자는 필요에 따라 자유롭게 잡을 구조화할 수 있다.
테스크릿 처리 vs 청크처리
테스크릿 모델
- Tasklet인터페이스를 사용해 개발자는 Tasklet.execute 메서드가 RepeatStatus.FINISHED 를 반환할 때까지 트랜잭션 범위 내에서 반복적으로 실행된느 코드 블록을 만들 수 있다.
청크 기반 처리 모델
- 청크 기반 스텝은 최소한 2~3개의 주요 컴포넌트(ItemReader, 필수는 아닌 ItemProcessor, ItemWriter)로 구성된다. 스프링 배치는 이러한 컴포넌트를 사용해 레코드를 청크 또는 레코드 그룹 단위로 처리한다. 각 청크는 자체 트랜잭션으로 실행되며, 처리에 실패했다면 마지막으로 성공한 트랜잭션 이후부터 다시 시작할 수 있다.
청크 기반 처리 시퀀스 다이어그램 청크 기반 처리는 3가지 루프를 수행한다.
- ItemReader에서 일어난다. ItemReader는 청크 단위로 처리할 모든 레코드를 반복적으로 메모리로 읽어온다.
- ItemProcessor에서 일어난다. 필수 구성 요소는 아니지만 ItemProcessor를 구성했다면, 메모리로 읽어들인 아이템은 반복적으로 ItemProcessor를 거쳐간다.
- 마지막으로 한 번에 기록할 수 있는 ItemWriter를 호출하면서 모든 아이템을 전달한다. ItemWriter의 단일 호출은 물리적 쓰기를 일괄적으로 처리함으로써 IO최적화를 이룬다.
스프링배치 완벽 가이드, 마이클 미넬라
'Java > Spring Batch' 카테고리의 다른 글
[Spring Batch] ItemReader(4) - 기존서비스 (0) 2021.06.13 [Spring Batch] ItemReader(3) - 저장프로시저(SP, Stored Procedure) (0) 2021.05.31 [Spring Batch] ItemReader(2) - JPA (0) 2021.05.30 [Spring Batch] ItemReader(1) - JDBC (0) 2021.05.30 [Spring Batch] 스프링 배치란 / 이용하면 좋은 이유 (0) 2021.05.10