최근에 어플리케이션이 기동되는 동안 주기적으로 특정 작업이 수행되어야 한다는 요구사항이 있었다. 구체적으로는 MQ에서 메세지를 주기적으로 가져와야 하는 상황이었는데, 내부에서 사용하는 어플리케이션이 아니라서 누구나 유지보수 할 수 있도록… 이전에 공부했던 Spring Integration 같은 프레임워크를 사용하지 않아야 했다. 신입 시절에도 이와 비슷하게 DB에서 값을 폴링하여 특정 상태를 체크하는 요구사항이 있어 "쓰레드 풀을 생성하고, 비동기로 무한 루프를 돌면서 DB를 특정 시간 간격으로 조회하는 쓰레드를 실행"하는 조악한 방식을 쓴 적이 있는데(이 일과 관련해서도 할 말이 많다…), 아래의 짤처럼 언제까지 과거에 머물러 있을 수 없으니 조금 더 우아한 방식으로 스케줄링 작업을 개발해보려고 한다...
사내에서 배치 작업을 스케줄링이나 HTTP API가 아닌 DB polling로 기동하길 원하는 요구사항이 있어, 어떤 방식으로 구현하면 좋을지 찾다보니 Spring Integration를 활용할 수 있을 것 같아 학습 겸 Baeldung 자료를 기반으로 소개 및 튜토리얼 자료를 작성해보려 한다. 그리고 Spring Integration에 대한 기본적인 개념을 학습한 후에 이를 활용한 DB polling에 대한 포스팅을 해야겠다. 1. 소개 이 글에서는 실용적인 예제를 통해 Spring Integration의 핵심 개념을 소개한다. Spring Integration은 엔터프라이즈 아키텍처에서 시스템들과 프로세스들 간의 상호 연결성을 크게 향상시킬 수 있는 많은 요소들을 제공한다. 그리고 널리 사용되는 디자..