배치 작업과 대비되는 작업은 리얼타임 작업 즉, 실시간 작업
이라고 할 수 있다.
실시간으로 결제가 되고 이후에는 응답을 받아 화면에 주문 내역을 실시간으로 받아 올 수 있다.
이렇게 실시간 작업은 즉시 이루어 지지만 배치작업은 그렇지 않다.
배치 작업
은 특정한 작업들을 한 번에 모아서 처리를 하는 것이다.
예를 들어, 상품을 주문 했을 때 바로 물건을 보내는 것이 아닌 고객의 단순 변심으로 인해 취소를 할 수 있기 때문에 즉시 발송하지 않고 특정 시점에 한번에 처리한다.
<aside> 💡
배치 작업
특정 주기마다 데이터를 처리하는 작업으로 예를 들어서 쿠폰 발생, 가맹점 정산, 거래 명세서 출력 등 실시간으로 처리하기에 무리가 있는 기능에 대해서 사용
</aside>
Spring Batch는 Job Repository
, Launcher
, Job
, Step
으로 구성되어 있으며 구중 Step 하위에 ItemReader
, Processor
, Writer
의 모습으로 구성되어 있다.
Job Repository
는 배치가 수행될 때 수행되는 메타데이터를 관리하고 시작 시간 및 종료 시간 job의 상태 등 배치 수행 관련 데이터들이 저장됨
Launcher
는 Job
을 실행 시켜 주는 역할을 함
주로 개발하는 영역은 Job
과 Step
및 그 하위 영역에서 개발이 진행 된다.