보다 더 나은 내일의 나를 위해

Spring Batch 개념잡기 본문

spring/batch

Spring Batch 개념잡기

H-SC 2022. 4. 25. 15:18

스프링 배치 (Spring Batch)

일괄 처리를 위한 오픈소스 프레임 워크
여러 Job을 순차적으로 처리한다.

보통 어떤 경우에 사용할까?

  1. 대용량 비지니스 데이터를 복잡한 작업으로 처리해야하는 경우
  2. 특정한 시점에스케쥴러를 통해 자동화된 작업이 필요한 경우 ( ex. 푸시알림, 월 별 리포트)
  3. 대용량 데이터 포멧을 변경, 유효성 검사 등의 작업을 트랜젝션 안에서 처리 후 기록해야하는 경우

스프링 배치 시나리오

시나리오

  1. 읽기 → 데이터 저장소(데이터베이스, 파일 등)에서 데이터를 읽어온다.
  2. 처리 → 데이터를 원하는 대로 가공 / 처리 한다.
  3. 쓰기 → 처리 완료된 데이터를 저장한다.

스프링 배치 관계도

스프링 배치 관련 객체 관계

  • Job과 Step은 1:M의 연관 관계를 맺고 있다.
  • Step와 ItemReader, ItemProcessor, ItemWriter들은 각각 1:1의 연관 관계를 맺고 있다.

Job

job은 하나의 작업이다.
작업은 여러 단계로 구분된다.
여러 단계의 모임이다.

Step

step은 단일 단계를 말한다.
일반적으로 Chunk 지향 프로세싱을 이용한다.

더보기

Chunk 지향 프로세싱
한번에 하나씩 데이터를 읽어 Chunk 덩어리를 만들어 이 덩어리 단위로 트랜잭션을 다루는 것
수행 중 실패할 경우 해당 Chunk만큼 콜백이 되고 이전에 커밋 된 트랜잭션 범위까지는 반영

스프링 배치 청크 지향 프로세싱

Reader, Processor에서는 1건씩 다루고, Writer에서는 Chunk 단위로 일괄 처리한다.

Reader, Processor, Writer를 이용하여 구성된다.

 

 

다음 포스팅에서는 코드를 통해 알아보자.

'spring > batch' 카테고리의 다른 글

Spring Batch 코드로 알아보기  (0) 2022.04.25
Comments