Batch작업이란?

배치 작업과 대비되는 작업은 리얼타임 작업 즉, 실시간 작업 이라고 할 수 있다.

실시간으로 결제가 되고 이후에는 응답을 받아 화면에 주문 내역을 실시간으로 받아 올 수 있다.

이렇게 실시간 작업은 즉시 이루어 지지만 배치작업은 그렇지 않다.

배치 작업은 특정한 작업들을 한 번에 모아서 처리를 하는 것이다.

예를 들어, 상품을 주문 했을 때 바로 물건을 보내는 것이 아닌 고객의 단순 변심으로 인해 취소를 할 수 있기 때문에 즉시 발송하지 않고 특정 시점에 한번에 처리한다.

<aside> 💡

배치 작업

특정 주기마다 데이터를 처리하는 작업으로 예를 들어서 쿠폰 발생, 가맹점 정산, 거래 명세서 출력 등 실시간으로 처리하기에 무리가 있는 기능에 대해서 사용

</aside>

Spring Batch 구조

image.png

Spring Batch는 Job Repository, Launcher, Job, Step 으로 구성되어 있으며 구중 Step 하위에 ItemReader, Processor, Writer 의 모습으로 구성되어 있다.

Job Repository 는 배치가 수행될 때 수행되는 메타데이터를 관리하고 시작 시간 및 종료 시간 job의 상태 등 배치 수행 관련 데이터들이 저장됨

LauncherJob을 실행 시켜 주는 역할을 함

주로 개발하는 영역은 JobStep 및 그 하위 영역에서 개발이 진행 된다.