반응형
<배치 패턴>
- read: 데이터 조회
- process: 데이터 가공
- write: 수정된 양식으로 다시 저장
<아키텍쳐>
- 개발자가 만든 모든 배치 job과 커스텀 코드 포함
- 개발자는 로직의 구현에만 집충, 공통 기반기술은 프레임워크가 담당
- job을 실행, 모니터링, 관리하는 api로 구성
- application, core 모두 공통 Infrastructure 위에서 빌드
- job실행의 흐름과 처리를 위한 틀 제공
- reader, processor, writer, skip, retry 등
<배치 활성화>
@EnableBatchProcessing 어노테이션을 달아야 실행되며, 아래 클래스들이 활성화 됨
- BatchAutoConfiguration -> JobLauncherApplicationRunner 빈 생성
- SimpleBatchConfiguration -> 스프링 배치 주요 구성 요소 생성; 프록시 객체로 생성됨
- BatchConfigurerConfiguration -> BasicBatchConfigurer
- BatchAutoConfiguration
- BatchProperties 주입받아서 설정 읽고(특정 job만 실행 가능)
- JobLauncherApplicationRunner 빈 생성
- JobLauncherApplicationRunner.run 함수 실행할 때 ApplicationArguments(부트 run config에 설정한 값) 받아서 넘겨줌
- JobLauncherApplicationRunner.execute 함수 실행
<배치 시작>
- configurer 선언
- JobBuilderFactory
- StepBuilderFactory
- Job; 여러개의 스텝을 하나로
- Step; 하나의 일
- tasklet; 작업내용, 비즈니스 로직
- Job 구동 -> Step 실행 -> tasklet 실행
<메타데이터 저장>
배치가 실행하고 과정을 저장하기 위한 테이블이 필요하다. job에 관련한 테이블 4개, step에 관련한 테이블 2개가 필수적으로 필요하다.(디비 특성에 따라 시퀀스를 저장하는 테이블이 추가될 수 있음)
따라서 DB연결이 필수!
728x90
반응형
'개발 > spring-batch' 카테고리의 다른 글
[spring-batch] 소개 (0) | 2023.12.04 |
---|---|
[spring-batch] simpleJob (0) | 2022.05.26 |
[spring-batch] application.yml 설정 값 (0) | 2022.05.25 |
[spring-batch] h2 연결 및 설정 (0) | 2022.05.23 |
[spring-batch] 도메인 이해 (0) | 2022.05.23 |