Spring Batch (part 2. 배치 종류 설명)
Batch 에 대해서 이전 포스팅에서 소개를 하였다.
자세한 내용은 참고 포스팅 참고 바란다.
이번 포스팅에서는 Spring Batch 에서 사용할 수 있는 배치의 종류에 대해 설명할 것이다.
스프링에서 Batch를 사용하는건 다음과 같다.
Job은 여러가지의 Step 모음으로 구성되어있고 Job은 순차적인 Step을 수행하며 Batch 를 수행하게 된다.
Step 은 Tasklet 처리 방식과 Chunk 지향 처리 방식을 지원한다.
Tasklet
: 데이터 처리과정이 tasklet안에서 한번에 이뤄진다.
배치 처리과정이 쉬운 경우 쉽게 사용되며, 대량처리 경우 더 복잡해질 수 있다.
Chunksize
: chunksize 단위로 데이터가 페이징처럼 처리된다.
대용량 데이터를 처리할때 사용되며, reader / processor / writer 로 구분되어 처리된다.
(reader와 writer는 필수이며, processor는 필수 아님)
- reader
: (파일/DB) 데이터(item)를 읽어오며, reader안에서도 페이징처리가 가능한 bean들이 있다.
ItemReader, MybatisPagingItemReader, JpaPagingItemReader, ...
- processor
: reader에서 읽어온 데이터(item)를 필터/처리 하고 write로 보내는 역할.
item을 필터 도중 null로 리턴하면, 그 item은 write로 전달되지 못한다.
ex) 10개 read 후 processor에서 4개 필터링 해서 6개만 리턴하면 write에서는 6개만 처리한다.
- writer
: processor에서 처리된 데이터들(items : List<item>)을 파일이나 DB에 적재하는 역할.
writer는 기본으로 List단위로 처리되며, List는 chunksize에 의해 처리된다.
참고 포스팅
https://thenicesj.tistory.com/308
Spring Batch (part 1. 소개)
스프링에는 다양한 기능들이 있고 우리가 실제로 사용하는것은 프로젝트에 맞게 다양하다.지금까지 다뤄온 글들과는 다른 기능을 하나 소개 해보려고 한다. 먼저 이름을 소개하면 스프링 배치
thenicesj.tistory.com