Tasklet vs. Chunk
Tasklet
- 가장 간단한 형태
- 캡슐화된 커스텀 비즈니스 로직 조각을 실행할
- 단일 트랜잭션에서 수항핼 수 있는 작업 단위를 나타낸다.
사례
- 단일 트랜잭션
- 비청크 처리
- 복잡한 로직(작은 세그먼트로 나누기에 애매한)
장점
- 단순성
- 유연성
- 상세 제어
단점
- 메모리 소비
- 단일 실패 지점
특성
- 무상태 : 일반적으로 실행 간에 상태를 유지하지 않으므로 분산환경에서 사용하기 쉽다.
- 혼합 실행 : 여러 tasklet이 서로 다른 작업에서 독립적으로 실행될 수 있어 병렬 처리를 촉진한다.
- 재사용 가능 : taskle 로직은 서로 다른 작업에서도 재사용할 수 있어서 코드의 모듈성을 향상시킨다.
Chunk
- 데이터를 작은 청크로 처리
- 양이 많을 때 사용
- 처리 성능, 메모리 관리를 용이하게
사례
- 대량 데이터
- 트랜잭셔널 무결성
- 정기적인 데이터 흐름
장점
- 효율성
- 트랜잭셔널
- 확장성
단점
- 복잡성
- 구성 오버헤드
비교
| 기능 | Tasklet | Chunk | | :—–: | ———————- | —————————- | | 복잡성 | 직관적 | 세 가지 구성 요소가 포함되어 상대적으로 복잡하다. | | 데이터 사이즈 | 소규모에 적합 | 대규모에 적합 | | 메모리 사용량 | 모든 데이터를 한 번에 처리 | 작은 청크만 처리하도록 최적화되어 있음 | | 실패 핸들링 | 전체 작업이 하나의 단위로 실패 | 각 청크는 독립적으로 커밋될 수 있다. | | 확장성 | 메모리에 의해서 제한된다. | 효율적인 흐름으로 높은 확장성이 있다. | | 제어 | 하나의 메소드에 자세한 제어가 가능하다. | 여러 매핑을 처리해야 한다. | | 성능 | 핸들링하는 데이터 수가 많으면 느려진다. | 일반적으로 더 빠르다. |