본문 바로가기
Batch

Batch의 청크와 테스크릿 구조

by 떡쇠 2024. 3. 29.
반응형

청크 (Chunk)

청크는 배치 처리 과정에서 한 번에 처리될 데이터의 집합을 의미한다. 청크 방식은 리더(Reader), 프로세서(Processor), 라이터(Writer)의 세 가지 컴포넌트로 구성되며, 이들은 각각 데이터를 읽고, 처리하고, 쓰는 역할을 한다.

 

"청크 지향 처리"는 대량의 데이터를 작은 단위의 청크로 나누어서 처리하는 방식을 말한다. 이 방식은 메모리 사용량을 효율적으로 관리하고, 처리 과정의 트랜잭션 범위를 제어하는 데 도움이 된다.

 

  • Read: 데이터 소스로부터 데이터를 읽어온다. 이 때, 데이터는 일반적으로 한 번에 한 건씩 읽힌다.
  • Process: 읽어온 데이터에 대해 필요한 비즈니스 로직을 적용한다. 데이터 변환, 필터링 등의 처리가 이 단계에서 이루어진다.
  • Write: 처리된 데이터를 배치로 모아서 최종 데이터 싱크에 쓰기를 수행한다. 이 때, "청크"라는 용어는 이 배치의 크기를 의미한다. 예를 들어, 청크 크기가 100이라면, 100건의 데이터를 읽고, 처리한 후, 100건을 한 번에 쓰기를 수행한다.

청크 방식은 데이터 처리의 효율성과 성능 최적화에 중점을 둔다. 트랜잭션 관리도 청크 단위로 이루어지기 때문에, 오류 발생 시 해당 청크만 롤백되어 전체 데이터 처리 과정의 안정성을 높일 수 있다.

 

 

테스크릿 (Tasklet)

테스크릿은 배치 처리 과정에서 더 작은 단위의 작업을 정의하는 방법이다. 테스크릿은 특정 비즈니스 로직이나 작업을 수행하는데 사용되며 , 청크 처리와는 달리 단일 작업 또는 작업의 단계를 구현하는데 초첨을 맞춘다. 테스크릿은 주로 청크 처리의 전후로 사용되거나 단순한 작업을 수행하는데 적합하다.

 

  • Execute: 테스크릿은 'execute' 메서드를 통해 특정 작업을 수행한다. 이 메서드는 StepContext 또는 ChunkContext와 같은 실행 컨텍스트에 접근할 수 있으며, 이를 통해 작업 실행 중 필요한 데이터를 관리하고, 작업의 실행 결과를 조절할 수 있다.

테스크릿 방식은 간단한 작업이나, 청크 처리로 적합하지 않은 특정 작업을 구현하는데 유용하다. 예를 들어, 배치 작업 시작 전에 필요한 리소스를 준비하거나, 작업 완료 후 리소스를 정리하는 작업 등에 사용될 수 있다.

반응형