관리 메뉴

개발그래머

Spring Batch 소개 본문

Spring/Spring Batch

Spring Batch 소개

임요환 2023. 3. 17. 10:52

배치 작업이란?

배치작업 ↔ 실시간작업

배치작업

  • 특정주기마다 작업들을 한 번에 모아서 처리
  • 주문결제 후 배송
  • 은행 정산
  • 이메일 쿠폰 발송
  • 가맹점 정산
  • 거래 명세서 생성
  • 추천 시스템 데이터 작업

스프링 배치로 작업이 필요한 이유

  • 풍부한 기능
  • 일관성 된 코드
  • 기존 서비스가 스프링 프레임워크로 되어 있는 경우 호환 가능
  • 완성도 있고 유지보수와 확장성 있는 개발 가능

스프링 배치 구성

JobLauncher

  • JobExecution을 JobRepository로부터 얻고 Job을 실행
  • @EnableBatchProcessing 어노테이션을 통해 JobRepository를 자동으로 구성

Job

  • 전체 배치 프로세스를 캡슐화하는 엔티티
  • 전체 계층구조의 최상위
  • Step을 위한 단순한 인스턴스 컨테이너
  • 정의와 Step들의 순서
  • 하나이상의 Step으로 구성

Step

  • 실제 일괄 처리를 정의하고 제어하는 모든 정보를 포함
  • chunk와 tasklet으로 구성가능

JobRepository

  • 위의 정보들을 위한 영속성 메커니즘
  • JobLaucher, Job, Step을 위한 CRUD 작업 제공

ItemReader

  • Step 한 항목에 대한 입력 검색을 나타내는 추상화
  • 제공할 수 있는 항목을 소진하면 null 반환

ItemProcessor

  • item의 비지니스 처리를 나타내는 추상화
  • ItemReader 가 item을 읽고 ItemWriter가 item을 쓰는 동안 ItemProcessor는 다른 비즈니스 처리를 변환하거나 적용하기 위한 액세스 지점을 제공
  • item을 처리하는 동안 항목이 유효하지 않은 것으로 확인되면 null을 반환

ItemWriter

  • Step의 배치, itemchunked의 출력을 나타내는 추상화
  • 다음에 수신해야 입력에 대해 알지 못하고 현재 호출에서 전달된 항목만 알고 있음