Spring boot Quartz - cron trigger (feat. 사이드 프로젝트)

최근에 주기적으로 특정 시간에 특정 알람을 보내야하는 사이드 프로젝트를 진행하면서, Quartz 를 사용해 보았다. 그래서 개발하고 그에 따른 후기를 남겨본다. 먼저 알람 발송 시점은 아래와 같다. 그날 그날 휴일인지 평일인지에 따라서 또한 평일인 경우 주간인지 야간인지에 따라 담당자가 다르다. 따라서 해당 담당자에게 "너 이제 일해야됨!!" 이렇게 알람을 보내는 서비스를 개발했다. 알람 방법에 대해선 생략하고, 어떻게 Scheduler 를 활용 했는지에 초점을 두고 글을 쓰려고 한다. 먼저, 주간, 야간, 휴일 근무시간이 어떻게 되는지 정리해보겠다. - 주간 : working day (not holiday, not weekend) 09:00 ~ 18:00 - 야간 : working day (not holiday, not weekend) 18:00 ~ 23:00 - 휴일 : holiday ( including weekend ) 09:00 ~ 23:00 우선 공통점을 뽑아낸다면, 하루 전은 모두 공통되어 있다. 내일 담당자에게 전날에 22:00 에 "내일 너 일해야됨!" 을 보내야 한다. 따라서 주기적으로 22:00 에 발송을 보내야 한다. 그리고 나머지 시점은 각각 고유하게 시각을 가지고 있다. 시점과 해당 시점에서 해야하는 일을 정리해보면, 아래와 같다. 1. 22:00 - 오늘이 working day 인지 holiday 체크 후 working day -> 내일 주간 담당자와 야간담당자에게 알람을 보낸다. holiday -> 내일 휴일 담당자에게 알람을 보낸다. 2. 09:00 - 오늘이 working day 인지 holiday 체크 후 working day -> 오늘 주간 담당자에게 알람을 보낸다. holiday -> 아무것도 안한다. 3. 08:55 - 오늘이 working day 인지 holiday 체크 후 working day -...