본문 바로가기
IT/Java

Spring Batch (part 2. 배치 종류 설명)

by 성준하이 2024. 5. 19.
반응형

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

 

반응형

댓글