[Spring boot] Spring batch 개념정리
2022. 5. 27. 11:48ㆍspring boot
728x90
반응형
Spring batch 개념
Spring batch는 스프링에서의 배치 프로세싱을 지원한다. 배치 프로세싱이란 일괄처리하고 하는데 일련의 작업을 정해진 로직으로 수행하는 것이다.
그렇다면 배치 프로세싱은 어떤 경우에 필요할까
- 대용량의 데이터를 복잡한 작업으로 처리하는 경우
- 특정한 시점에 스케줄러를 통해 자동화된 작업이 필요한 경우
- 대용량 데이터의 포맷 변경, 유효성 검사 등의 작업을 트랜잭션 안에서 처리해야하는 경우
배치 시나리오
Dependency
Gradle 의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-batch'
testImplementation 'org.springframework.batch:spring-batch-test'
Domain
Job, Step, Tasklet
- Job: 전체 배치 프로세스를 캡슐화하는 객체
- 작업의 간단한 이름
- Step 객체의 정의 및 순서
- Step: 실질적인 배치 처리를 정의하고 제어하는데 필요한 모든 정보가 있는 객체
- Tasklet이나 Reader, Processor, Writer를 한 묶음으로 가진다.
- Tasklet: Step 안에서 단일로 수행 될 커스텀한 기능
- Step 안에서 수행 될 기능들을 명시한다.
메타 데이터 테이블
Spring batch 어플리케이션을 운영하기 위한 메타 데이터가 여러 테이블로 나눠져 저장된다.
메타 데이터는 다음과 같은 내용들을 담고 있다.
- 이전에 실행한 Job이 어떤 것들이 있는지
- 최근 실패한 Batch Parameter가 어떤 것들이 있고, 성공한 Job은 어떤 것들이 있는지
- 다시 실행한다면 어디서부터 시작하면 될지
- 어떤 Job에 어떤 Step들이 있었고, Step들 중 성공한 Step과 실패한 Step들은 어떤 것들이 있는지
- 등등
Enable
728x90
반응형
'spring boot' 카테고리의 다른 글
[Spring boot] Spring Scheduler 사용법 (0) | 2022.05.26 |
---|