Spring Batch Architecture

Spring Batch가 지향하는 계층형 아키텍처 - 3개의 계층으로 나뉘어진다

Spring Batch가 지향하는 계층형 아키텍처 - 3개의 계층으로 나뉘어진다

Spring Batch는 확장성과 다양한 사용자들을 고려해서 위의 아키텍처를 설계했다.

**Application, Core, Infrastructure 3개의 핵심 요소들이 존재**하는데 각각의 특징은 아래와 같다.

Application

Spring Batch를 사용하는 개발자가 **정의한 배치 Job들과 코드**들이 들어가는 계층이다.

Core

배치 Job을 제어하고 실행하는데 필요한 **핵심 런타임 클래스**들이 들어가는 계층이다.

JobLauncher, Job, Step등의 구현이 포함되어 있다.

Infrastructure

Application, Core는 공통 인프라 위에 구축된다.

ItemReader, ItemWriter, RetryTemplate 같은 서비스를 포함하고 있다.

정리

위와 같이 설계되어 있기 때문에 개발자는 **Application 계층의 비즈니스 로직 작성에 집중**할 수 있고

배치의 동작과 관련된 것은 Batch Core에 있는 클래스들을 이용해 제어가 가능하다.