푸시 한 번에 수십만 명 - 메시지 유실 없이 하기 위해 알림 시스템을 어떻게 만들었나?
개발노트/개발기록
2026. 4. 4. 18:05
푸시 한 번에 수십만 명 — 메시지 유실 없는 알림 시스템을 어떻게 만들었나RabbitMQ + BullMQ + NestJS로 구현한 분산 알림 파이프라인 설계기문제는 이렇게 시작됐다서비스가 성장하면서 알림 요구사항이 복잡해졌습니다.마케팅팀이 보내는 수십만 명 대상 일괄 앱푸시 or 이메일사용자 행동에 반응하는 실시간 서비스 푸시날짜와 시간을 지정하는 예약 발송FCM, APNs, 웹 푸시, 이메일, SMS를 모두 커버하는 멀티채널 전송처음에는 각 서비스가 직접 FCM API를 호출했습니다. 그러다 문제가 터지기 시작했습니다."마케팅 배치 발송이 시작되면 일반 알림이 수십 분씩 밀린다."이유는 단순했습니다. 하나의 Queue를 모든 서비스가 공유했기 때문입니다. 100만 건의 배치 Job이 쌓이면 그 뒤에 ..