[Spring boot] Spring batch 개념정리

2022. 5. 27. 11:48spring boot

728x90
반응형

Spring batch 개념

Spring batch는 스프링에서의 배치 프로세싱을 지원한다. 배치 프로세싱이란 일괄처리하고 하는데 일련의 작업을 정해진 로직으로 수행하는 것이다.

 

그렇다면 배치 프로세싱은 어떤 경우에 필요할까

  • 대용량의 데이터를 복잡한 작업으로 처리하는 경우
  • 특정한 시점에 스케줄러를 통해 자동화된 작업이 필요한 경우
  • 대용량 데이터의 포맷 변경, 유효성 검사 등의 작업을 트랜잭션 안에서 처리해야하는 경우

 

배치 시나리오

https://deeplify.dev/back-end/spring/batch-tutorial


Dependency

Gradle 의존성 추가

implementation 'org.springframework.boot:spring-boot-starter-batch'
testImplementation 'org.springframework.batch:spring-batch-test'

Domain

Job, Step, Tasklet

https://deeplify.dev/back-end/spring/batch-tutorial

  • Job: 전체 배치 프로세스를 캡슐화하는 객체
    • 작업의 간단한 이름
    • Step 객체의 정의 및 순서
  • Step: 실질적인 배치 처리를 정의하고 제어하는데 필요한 모든 정보가 있는 객체
    • Tasklet이나 Reader, Processor, Writer를 한 묶음으로 가진다.
  • Tasklet: Step 안에서 단일로 수행 될 커스텀한 기능
    • Step 안에서 수행 될 기능들을 명시한다.

 

메타 데이터 테이블

 

Spring batch 어플리케이션을 운영하기 위한 메타 데이터가 여러 테이블로 나눠져 저장된다.

 

메타 데이터는 다음과 같은 내용들을 담고 있다.

  • 이전에 실행한 Job이 어떤 것들이 있는지
  • 최근 실패한 Batch Parameter가 어떤 것들이 있고, 성공한 Job은 어떤 것들이 있는지
  • 다시 실행한다면 어디서부터 시작하면 될지
  • 어떤 Job에 어떤 Step들이 있었고, Step들 중 성공한 Step과 실패한 Step들은 어떤 것들이 있는지
  • 등등

출처: https://docs.spring.io/spring-batch/3.0.x/reference/html/metaDataSchema.html

 


Enable

https://jojoldu.tistory.com/324

728x90
반응형

'spring boot' 카테고리의 다른 글

[Spring boot] Spring Scheduler 사용법  (0) 2022.05.26