0C 개발일지
스프링 배치(Spring Batch)란 본문
Spring Batch 란?
대용량 데이터 일괄처리를 위한 경량화된 프레임워크
Spring Boot Batch 라이브러리로 설치하면 Spring 스케줄러도 사용 가능하다
(스케줄러 이용 시, 일정한 시간 간격으로 반복되는 업무나 특정 시간에 실행해야 하는 작업을 자동으로 처리 할 수 있음)
Spring Batch 특징
- 로깅 및 추적
- 트랜잭션 관리
- 작업 처리 통계
- 작업 재시작
- 건너뛰기
- 리소스 관리
Spring Batch 용어
- Job
: 배치 처리의 최상위 단위 작업을 의미,
1개 이상의 Step 으로 구성되며, 실행 시점에 파라미터를 전달 받을 수 있으며, 실행 결과를 반환할 수 있다.
- JobInstance
: 하나의 Job 실행을 나타내는 인스턴스를 의미
- JobParameters
: Job 실행 시 필요한 파라미터
- JobExecution
: Job 실행 정보를 나타내는 인스턴스
- JobRepository
: Job 실행 정보를 저장하고 관리하는 저장소
- JobLauncher
: Job 을 실행하는 인터페이스
- JobExcutionListener : Job 실행 전후로 수행할 작업을 정의하는 인터페이스
- Step
: 실제로 배치 처리를 수행하는 단위
Tasklet 방식(하나의 작업만 처리를 수행) 또는 Chunk 방식(Reader-Processor-Writer 묶음으로 여러 작업을 처리)이 있음
- StepExecution
- ExecutionContext
- ItemReader
- ItemProcessor
- ItemWriter
- Tasklet
- JobOperator
- JobExplorer
Spring Batch 전체 프로세스
1. Job Launcher 로 Job을 실행
2. Job은 Step 을 통해 실제 배치 처리 수행
3. Step 에서 Item Reader (읽어오고) , Item Processor (처리하고), Item Writer(저장)한다.
Batch 와 Scheduler 는 다르다.
배치(Batch)는 논리적 또는 물리적으로 관련된 일련의 데이터를 그룹화하여 일괄 처리하는 방법을 의미.
-> 정해진 시간에 실행되지 않고, 사용자의 명령이 있을 때 실행.
스케줄러(Scheduler)는 주어진 작업을 미리 정의된 시간에 실행할 수 있게 해주는 도구나 소프트웨어
Spring Batch는 스케줄러와 함께 사용할 수 있도록 설계되어 있을 뿐이지 스케줄러 자체를 대체하지는 않음
'Spring' 카테고리의 다른 글
Spring Boot (0) | 2024.08.07 |
---|---|
스프링 공부 - DI, AOP (0) | 2024.05.16 |