사용자가 미리 설정한 날씨 조건을 충족하면 알림을 보내주는 서비스입니다.
(ex. "오늘 오후에 비가 오니까 우산을 챙겨가세요")
이 앱은 사용자가 알림을 설정할 수 있게 하는 API와 알림을 전송하기 위한 2개의 배치로 구성되어있습니다.
[파란색 배치] 오전 5시엔 공공API에 요청해 오늘 지역/시간별 날씨 데이터를 저장합니다.
[노란색 배치] 매 10분 간격엔, 해당 시간으로 알림을 설정한 사용자들을 조회해, 해당 사용자들이 설정한 알림 설정에 맞게 메시지를 생성합니다. 이 메시지는 캐시와 DB에 저장되어 같은 알림조건의 사용자에게 메시지를 보낼때 재활용됩니다. 생성된 메시지는 전송되기 위해 메시지큐에 삽입됩니다. 메시지큐에 메시지가 있음을 확인한 모니터링 스레드는 스레드풀을 생성해 사용자에게 메시지를 전송합니다. 이 때 메시지큐는 코드수준으로 직접 구현되었습니다.