반응형

<배치 패턴>

  • read: 데이터 조회
  • process: 데이터 가공
  • write: 수정된 양식으로 다시 저장

 

<아키텍쳐>

spring batch layer

  • 개발자가 만든 모든 배치 job과 커스텀 코드 포함
  • 개발자는 로직의 구현에만 집충, 공통 기반기술은 프레임워크가 담당

 

  • job을 실행, 모니터링, 관리하는 api로 구성

 

  • application, core 모두 공통 Infrastructure 위에서 빌드
  • job실행의 흐름과 처리를 위한 틀 제공
  • reader, processor, writer, skip, retry 등

 

 

<배치 활성화>

@EnableBatchProcessing  어노테이션을 달아야 실행되며, 아래 클래스들이 활성화 됨

  • BatchAutoConfiguration -> JobLauncherApplicationRunner 빈 생성
  • SimpleBatchConfiguration -> 스프링 배치 주요 구성 요소 생성; 프록시 객체로 생성됨
  • BatchConfigurerConfiguration -> BasicBatchConfigurer

batch loading 순서

  1. BatchAutoConfiguration
  2. BatchProperties 주입받아서 설정 읽고(특정 job만 실행 가능)
  3. JobLauncherApplicationRunner 빈 생성
  4. JobLauncherApplicationRunner.run 함수 실행할 때 ApplicationArguments(부트 run config에 설정한 값) 받아서 넘겨줌
  5. JobLauncherApplicationRunner.execute 함수 실행

 

 

<배치 시작>

  1. configurer 선언
  2. JobBuilderFactory
  3. StepBuilderFactory
  4. Job; 여러개의 스텝을 하나로
  5. Step; 하나의 일
  6. tasklet; 작업내용, 비즈니스 로직
  7. 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

+ Recent posts