Batch 서버와 Api 서버를 따로 두는 이유

먼저 Batch 서버는 1대만 띄워도 지장이 없지만 Api 서버는 보통 스케일 아웃을 위해 여러 대 띄우게 된다.

만약 Batch 서버가 여러 대 띄워지면 Batch 서버끼리 Sync가 맞지 않아 원하는 데이터를 이룰 수 없을 것이다.

또한 Batch 서버는 자주 실행되는 것이 아니기 때문에 여러 대를 띄울 필요조차도 없다.


Batch 어플리케이션 설계

보통 Batch, Api, Common 모듈로 나누어 어플리케이션을 구성한다.

Batch 모듈에는 Batch 작업에 필요한 것들을 넣어주고

Api 모듈에는 controller, service 등이 들어가고

Common에는 Batch, Api 모듈에서 공통으로 사용하는 영속성 관련된 것들이 들어간다.