Spring Batch Architecture
스프링 배치는 Job, Step, Tasklet이라는 개념을 기반으로 한 아키텍처를 제공한다. 이 아키텍처를 이해하고 활용함으로써 배치 작업을 효율적으로 처리할 수 있다!
1. Job, Step, Tasklet 개념
- Job: 스프링 배치의 최상위 개념으로, 하나 이상의 Step으로 구성된다.
Job은 배치 작업의 실행 단위를 나타냄. 개발자는 Job을 정의하고 구성하여 작업의 흐름을 제어할 수 있다.
- Step: Job을 구성하는 작업 단위.
각 Step은 특정한 작업을 수행하는데 필요한 Reader, Processor, Writer 등의 구성 요소를 포함할 수 있음. Step은 순차적으로 실행되며, 필요에 따라 병렬로 실행될 수도 있다.
- Tasklet: Step 내에서 실제 작업을 수행하는 컴포넌트.
Tasklet은 개발자가 구현한 비즈니스 로직을 담고 있으며, 배치 작업의 세부 처리를 담당함. Tasklet은 Reader, Processor, Writer 등의 다른 구성 요소와 조합하여 사용될 수도 있음.
2. 배치 처리 흐름
스프링 배치의 배치 처리 흐름은 Job과 Step 사이의 관계를 기반으로 한다. 일반적인 배치 처리 흐름은 이렇다.
1. Job 실행: 스프링 배치는 JobLauncher를 사용하여 Job을 실행. Job 실행 시 Job 파라미터를 전달할 수도 있음.
2. Step 실행: Job 내의 각 Step은 개별적으로 실행. Step은 Reader를 통해 데이터를 읽고, Processor를 통해 가공하며, Writer를 통해 결과를 저장함.
3. Step 전이: Step이 실행된 후에는 다음 Step으로 전이될 수 있음. 전이는 성공, 실패, 종료 등의 조건에 따라 결정됨.
4. Job 완료: 모든 Step이 실행된 후에 Job은 완료됨. Job 실행 결과를 확인하고 후속 작업을 수행할 수 있음.
3. 결론
스프링 배치의 아키텍처를 이해하고 Job과 Step을 구성함으로써 개발자는 배치 작업의 흐름과 처리 단위를 명확하게 파악하고 제어할 수 있다!!
이게 기본이기 때문에 배치를 하려면 이건 무조건 알고 있어야 됨!