Spring Batch가 지향하는 계층형 아키텍처 - 3개의 계층으로 나뉘어진다
Spring Batch는 확장성과 다양한 사용자들을 고려해서 위의 아키텍처를 설계했다.
**Application, Core, Infrastructure 3개의 핵심 요소들이 존재
**하는데 각각의 특징은 아래와 같다.
Spring Batch를 사용하는 개발자가 **정의한 배치 Job들과 코드
**들이 들어가는 계층이다.
배치 Job을 제어하고 실행하는데 필요한 **핵심 런타임 클래스
**들이 들어가는 계층이다.
JobLauncher, Job, Step등의 구현이 포함되어 있다.
Application, Core는 공통 인프라 위에 구축된다.
ItemReader, ItemWriter, RetryTemplate 같은 서비스를 포함하고 있다.
위와 같이 설계되어 있기 때문에 개발자는 **Application 계층의 비즈니스 로직 작성에 집중
**할 수 있고
배치의 동작과 관련된 것은 Batch Core에 있는 클래스들을 이용해 제어가 가능하다.