2022. 9. 27. 19:56ㆍBackEnd(Java)/Spring Batch
✅ 아래 내용들에 대해서 알아보자
- 스프링 배치 탄생 배경
- 배치 핵심 패턴
- 배치 시나리오
- 배치 프로젝트 구성
- 배치 초기화 설정 클래스
실무에서 Spring Batch를 사용할 일이 생겨서 스프링 배치 공부하려고 인프런에서 아래 강의를 듣게 되었습니다.
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B0%B0%EC%B9%98/dashboard
그래서 제가 다시 보기 위해 정리하려고 시리즈 글을 쓸려고 합니다. 😁😁(혹시나 Batch 공부하실 분들은 위 강의 추천합니다! )
스프링 배치 탄생 배경
- 자바 기반 표준 배치 기술 부재
- 배치 처리에서 요구하는 재사용 가능한 자바 기반 배치 아키텍처 표준의 필요성 대두
- 스프링 배치는 SpringSource(햔재는 Pivotal)와 Accenture(경영 컨설팅 기업)의 합작품
- Accenture : 배치 아키텍처를 구현하면서 쌓은 기술적인 경험과 노하우 제공(Spring에 소스 제공)
- SpringSource : 깊이 있는 기술적 기반과 스프링의 프로그래밍 모델 제공
- Accentrue는 이전에 소유했던 배치 처리 아키텍처 프레임워크를 Spring Batch 프로젝트에 기증함
배치 핵심 패턴
- Read : db, file, que에서 대량 데이터 조회
- Process : 특정 방법으로 데이터 가공
- Write : 데이터를 수정된 양식으로 다시 저장
배치 시나리오
- 배치 프로세스를 주기적으로 커밋
- 동시 다발적인 job의 배치 처리, 대용량 병렬 처리
- 실패 후 수동 또는 스케줄링에 의한 재시작
- 의존관계가 있는 step 여러 개를 순차적으로 처리
- 조건적 Flow 구성을 통한 체계적이고 유영한 배치 모델 구성
- 반복, 재시도, Skip 처리
배치 프로젝트 구성
@EnableBatchProcessing
- 스프링 배치가 작동하기 위해 선언해야 하는 어노테이션
- 총 4개의 설정 클래스를 실행 시키며 스프링 배치의 모든 초기화 및 실행 구성이 이루어짐
- 스프링 부트 배치의 자동 설정 클래스가 실행됨으로 빈으로 등록된 모든 Job을 검색해서 초기화와 동시에 Job을 수행하도록 구성됨
배치 초기화 설정 클래스
1. BatchAutoConfiguration
- 스프링 배치가 초기화 될 때 자동으로 실행되는 설정 클래스
- Job을 수행하는 JobLauncherApplicationRunner 빈을 생성
2. SimpleBatchConfiguration
- JobBuilderFactory와 StepBuilerFactory 생성
- 스프링 배치의 주요 구성 요소 생성 - Proxy객체로 생성됨
3. BatchConfigurerConfiguration
- BasicBatchConfigurer
- SimpleBatchConfiguration에서 생성한 프로식 객체의 실제 대상 객체를 생성하는 설정 클래스
- 빈으로 의존성 주입 받아서 주요 객체들을 참조해서 사용할 수 있다
- JpaBatchConfigurer
- JPA 관련 객체를 생성하는 설정 클래스
- 사용자 정의 BatchConfigurer 인터페이스를 구현하여 사용할 수 있음
이글은 인프런 정수원님의 ‘스프링 배치 - Spring Boot 기반으로 개발하는 Spring Batch’ 강의 내용을 바탕으로 정리 및 복습하기 위해 작성하였습니다.(링크)
'BackEnd(Java) > Spring Batch' 카테고리의 다른 글
3. Job (0) | 2023.02.14 |
---|---|
배치 실행 시 잡파라미터 null 바인딩 현상 (0) | 2023.02.08 |
2. 배치 메타 데이터 분석 (0) | 2023.02.06 |