PM이 원할 때마다, 1,000만명에 대한 알림을 발송해야 하는 요구 사항이 생겼다. 생각보다 까다로운 조건들이 있었는데…
요구 사항은 다음과 같았다.
- 배포에 영향 없이 스케줄러가 동작해야 한다.
- 대상에 대한 조건 설정이 복수로 가능해야 한다.
- 특정 약관 동의 여부
- 청약 점수 보유 여부
- 특정 연령대만 혹은 전체 나이 설정
- 청약 계좌 여부
- 발송 시간에 대한 설정(동적 스케줄링)이 가능해야 한다.
왜냐면, 우리는 메세지 발송 시, 플랫폼 허락을 받아야 한다
발송 가능 시간을 허락 받아 쓰기 때문에 1,000만명에 대한 발송 체크 로직이 한시간~두시간 이내에 전부 처리될 수 있어야 함(우리에게 주어진 건 한시간뿐…)
- TPS 설정이 가능해야 한다.
이것도 플랫폼에 TPS 허락을 받아야 한다 ㅠㅠ
(회사의 메세지 플랫폼에 부하를 주지 않기 위해 TPS로 유동적으로 조절 가능해야한다)
- 청약 공고 당일 N시에는 자동으로 꺼져야 한다.
(공고가 종료되기 임박했을 때는 유저가 메세지를 받을 필요가 없음)
- 발송 중 시간이 늦은 경우, 발송은 중단하고 다음날 발송해야 한다.
- 언제든지 중단 가능해야 한다.
적고 보니 뭐가 많다…
물론, 개발 신경 쓰지 말고 원하는 거 다 이야기 하라고 했음
구현하기까지 고민
요구 사항들이 다 필요해 보이는 것들이지만, 구현하기 까다로워 보이는 게 많았다.