10장 - 가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 알림 시스템 설계

예썰·2026년 2월 23일

이번 장은 가상 면접 사례로 배우는 대규모 시스템 설계 기초 10장 알림 시스템 설계에 대한 내용이다.

고객에게 중요한 정보를 비동기적으로 제공한다.

✅ 1단계 문제 이해 및 설계 범위 확정

- 모바일 Push 알림, 이메일, SMS 모두 지원
- 연성 실시간(실시간이지만, 어느 정도 지연은 허용)
- IOS, Android, Desktop, Laptop 모두 지원
- 알림 생성의 주체는, 프로그램이 생성할 수도 있고 스케줄링 작업으로 처리할 수도 있다.
- 하루 천만 건의 모바일 Push 알림
- 백만 건의 SMS 메세지
- 5백만 건의 이메일

✅ 2단계 개략적 설계안 제시 및 동의 구하기

알림 유형별 지원 방안

  • iOS 푸시 알림
  1. 알림 제공자(Provider)

    • 알림 요청을 만들어, Apple Push 알림 서비스로 보내는 주체
    • 단말 토큰 : 알림 요청을 보내기 위한 고유 식별자
    • 페이로드 : 알림 내용을 담은 JSON Dictionary
  2. APNS : 애플이 제공하는 원격 서비스로, 푸시 알림을 기기로 보내는 역할을 담당

  3. iOS 단말

  • 안드로이드

    • APNS 대신 FCM 사용
  • SMS 메시지

    • 메시지를 보낼 때는 Twilio, Nexmo 같은 제3 사업자의 서비스를 많이 이용
  • 이메일

    • 고유 이메일 서버를 구축할 역랑은 갖추고 있지만 대부분은 이메일 서비스를 사용
  • 연락처 정보 수집 절차

    • 회원가입시 수집
  • 알림 전송 및 수신 절차

    • 알림을 요청하는 N개의 서비스 존재 -> MSA, 크론잡 또는 분산 시스템 컴포넌트일 수 있음
    • 알림 시스템은 알림 전송을 위한 API을 제공해야 하며, 서드 파티 서비스에게 전달할 payload를 만들어 낼 수 있어야 함
  • 서드 파티 서비스 선택 시 확장성과 중국과 같은 폐쇄적인 시장도 고려하여 선택해야 함

  • 문제점

    • SPOF, 규모 확장성, 성능 병목과 같은 이슈도 고려해야 함
  • 사용자 단말 정보를 캐시에 저장

  • 알림 유형별 Message Queue 를 두어 알림 시스템과 worker의 결합을 느슨하게 함

  • 알림 전송 API -> 스팸 방지를 위한 Authentication과 Authorization 이 필요함

  • 알림 validation, DB/cahce query, 알림 전송

✅ 3단계 상세 설계

안정성

  • 데이터 손실 방지
  • 알림 중복 전송 방지

추가적으로 필요한 컴포넌트 및 고려사항

  • 알림 템플릿
  • 알림 설정
  • 전송률 제한
  • 재사도 방법
  • 푸시 알림과 보안
  • 큐 모니터링
  • 이벤트 추적
    • 알림 확인율, 클릭율, 실제 앱으로 이어지는 비율

수정된 설계안

  • 알람 서버에 인증과 전송률 제한 기능 추가
  • 재시도 기능 추가
  • 전송 템플릿 사용으로 일관성 확보
  • 모니터링, 추적 시스템 추가

1개의 댓글

comment-user-thumbnail
2026년 2월 24일

잘 보고갑니다

답글 달기