이번 시간에는 스프링 배치의 기본 구조를 살펴 보면서 큰 그림을 그려 보도록 하겠습니다.
JobRepository
JobRepository는 배치 수행을 위한 데이터 (시작 시간, 종료 시간, 상태, 읽기/쓰기, 회수 등) 및 Job의 상태관리를 담당합니다. JobRepository는 스프링 배치 내의 잡런쳐, 잡, 스탭과 같이 컴포넌트들이 데이터를 공유를 하게 됩니다.
JobLauncher
잡런처는 잡을 실행해주는 역할을 합니다. 잡이 실행이 되면 JobRepository에는 작업의 따른 데이터들이 갱신이 되겠습니다.
Job과 Step
Job은 하나의 배치 작업입니다. 배치 작업을 하나 수행한다고 하면 Job을 수행 하는 개념입니다. 그리고 하나의 Job 안에는 한개의 Step 또는 여러개의 Step이 있을 수 있습니다. Step은 하나의 배치 작업 안에, 여러 단계가 있다면 이걸 나눠 놓은 개념입니다. Step은 ItemReader, ItemProcessor, ItemWriter가 있어서 무언가를 읽고 처리하고 쓰기를 진행하겠습니다.
배치 작업이란게 데이터베이스나 api 또는 파일을 읽는 어떤 읽는 작업을 진행하고, 필요한 내용을 처리하겠습니다. 이후에는 다시 파일이나 데이터베이스 같은 곳에 write 하는 작업을 진행하는데요. 배치 작업은 이런 방법으로 정형화가 되어 있어서 스프링 배치에서도 이런 레이어의 모습을 보이고 있습니다.
스프링 배치를 활용하여 개발을 한다면 우리는 Job 과 Step, Step의 있는 ItemReader, ItemProcessor, ItemWriter 항목들을 활용하여 개발을 진행하겠습니다.
참고 스프링 배치 공식 사이트)
https://docs.spring.io/spring-batch/docs/current/reference/html/domain.html#domainLanguageOfBatch
'Programming > Spring Batch' 카테고리의 다른 글
[Spring Batch] 스프링 배치 파라미터 입력 및 검증 (0) | 2022.04.05 |
---|---|
[Spring Batch] 스프링 배치 테스트 코드 작성 (0) | 2022.04.01 |
[Spring Batch] 스프링 배치로 데이터를 읽고 쓰기 예제 (itemXXX 사용) (0) | 2022.03.31 |
[Spring Batch] 스프링 배치로 Hello, World 실행하기 예제 (tasklet 사용) (0) | 2022.03.29 |
[Spring Batch] 배치 작업이 필요한 이유? (0) | 2022.03.25 |