본문 바로가기
개발공부/JAVA Spring

[SpringBoot] Spring Batch 5

by bzerome240 2023. 7. 20.

 

 Spring Batch

대용량 일괄처리를 위해 설계된 배치 프레임워크

ex) 일관되고 반복적인 작업, 트랜잭션 관리, logging/trace 모니터링 등 대용량 레코드 처리

 

  • Job이라는 단위로 배치 작업을 분류한다.
  • 한 개의 Job은 한 개 이상의 Step을 가진다.
  • Step 안에는 Tasklet 또는 {Reader, Processor, Writer } 묶음이 존재한다.

 

Batch 프로세스 

 

단계 1) Batch Scheduler

spring batch 자체는 configuration bean을 통해 Job이 실행될 경우 어떤 일을 처리할지 세팅시켜주기만 할 뿐이므로,

Scheduler가 필요하다.

 

단계 2) JobRepository

배치를 수행하는데 필요한 object를 포함하고 있다. (Job, JobLauncher, Step 등)

배치 수행과 관련된 CRUD 처리를 한다.

 

단계 2-1) Job

배치 처리 과정을 하나의 단위로 만들어 놓은 객체 (최상단)

 

단계 2-2)  JobLauncher

Job을 실행시키는 역할

우리가 직접 컨트롤할 일은 없다.

 

단계 2-3)  Step

Job을 구성하는 독립적인 작업 단위

실제 배치가 실행되는 처리를 정의하고 제어하는데 필요한 모든 정보를 가지고 있는 객체

  • step의 실행단위
    • 실행단위 1) Task
      • 단일 작업 기반으로 처리한다.
      • ex) 한가지 이상의 CURD가 발생하는 task 에 대해 일괄적으로 처리하는 경우 (복잡한 로직 수행 job)
      • Tasklet 구현체 사용
    • 실행단위 2) Chunk
      • 하나의 큰 덩어리를 n개씩 나눠서 실행, 한번에 Write
      • ex) 대용량 데이터에 대해 단순 처리
      • ItemReader, ItemProcessor, ItemWriter를 사용하여 ChunkOrientedTasklet 구현체 사용

 

단계 3) ItemReader

대상이 되는 데이터를 읽는데 사용되는 객체

읽는 방법 : DB connection , File I/O

 

단계 4) ItemProcessor

Read와 Write의 중간 단계에서 가공 역할

필수 단계는 아니다.

 

단계 5) ItemWriter

Batch의 마지막 단계

가공된 데이터를 출력하는 역할

 

 


 

구현..

 

Spring batch 5.0 업그레이드가 되면서 문법이 바뀌었다.

최소 Java 17이 필요하다.

 

 

<메인 Application 클래스에 추가하기>

@EnableBatchProcessing

배치 기능 활성화

 

<JobConfig class 생성>

@Configuration

설정을 위해 사용되는 Bean 임을 명시

@RequiredArgsConstructor

해당 어노테이션을 통한 생성자 주입 (@Autowired 권장하지 않음)

 

<Job, Step 생성>

JobBuilderFactory, StepBuilderFactory 문법이 지원 중단됐다.

❗ Builder에서 JobRepository를 명시적으로 제공하는 방식을 권장한다.

 

<ItemReader 생성>

batch 를 통해 처리하고자 하는 데이터를 Read하는 부분

 

<ItemWriter 생성>

batch를 통해 처리된 데이터에 대한 출력을 하는 부분

 


 

참조

 

 

 

[Spring Batch] 개념 및 Job 생성

오늘은 Spring Batch에 대한 간략한 소개 및 Job 생성에 대해 소개해보도록 하겠습니다. Spring Batch Spring Batch의 이론적인 개념에 대해 살펴보면 아래와 같습니다. >Spring Batch: Enterprise System의 운영에 있

velog.io

 

 

Spring Batch 5 뭐가 달라졌나?

Spring Batch 4.0에서 약 5년의 세월이 흘러 Spring Batch 5.0으로 메이저 버전이 업데이트되었다. 어떤 기능들이 개선되고, 생겼는지 알아보도록 하자. 의존성 Spring Batch5는 Spring framework 6을 의존하기 때

alwayspr.tistory.com

 

 

 

Spring Batch 5.0 Migration Guide

Spring Batch is a framework for writing batch applications using Java and Spring - spring-projects/spring-batch

github.com

 

728x90
반응형

댓글