Skip to content

Notification

grasshopper42 edited this page Nov 30, 2024 · 1 revision

Notification Policy

개요

시스템에서 발생하는 모든 알림을 처리하기 위한 정책을 정의합니다. 각 도메인에서 발생한 알림 이벤트를 수신하여 적절한 채널을 통해 사용자에게 전달합니다.

알림 정책

필수 항목

  • 알림 기본 정보

    • type: 알림 유형
    • priority: 중요도 (CRITICAL/HIGH/MEDIUM/LOW)
    • content: 알림 내용
    • occurredAt: 발생 시각
  • 참조 정보

    • domain: 발생 도메인
    • entityType: 엔티티 유형
    • entityId: 엔티티 ID
    • additionalInfo: 추가 정보
  • 수신자 정보

    • targetRoles: 수신 대상 역할 목록
    • targetStaffIds: 특정 수신자 목록

중요도별 처리 정책

  1. CRITICAL

    • 즉시 발송
    • 모든 가능한 채널로 발송
    • 수신 확인 필요
    • 미확인 시 재발송
  2. HIGH

    • 즉시 발송
    • 주요 채널로 발송
    • 미확인 시 재발송
  3. MEDIUM

    • 배치 처리 (10분 간격)
    • 기본 채널로 발송
  4. LOW

    • 배치 처리 (1시간 간격)
    • 기본 채널로만 발송

발송 채널

  1. 이메일
  2. SMS
  3. 앱 푸시 알림
  4. 시스템 내 알림

도메인별 알림 유형

Inventory Domain

  • STOCK_SHORTAGE: 재고 부족

    • 중요도: HIGH
    • 수신자: INVENTORY_MANAGER
    • 채널: 전체
  • SAFETY_STOCK_REACHED: 안전재고 도달

    • 중요도: MEDIUM
    • 수신자: INVENTORY_MANAGER
    • 채널: 이메일, 시스템

Sales Domain

  • ORDER_STATUS_CHANGED: 주문 상태 변경

    • 중요도: MEDIUM
    • 수신자: SALES_MANAGER
    • 채널: 시스템
  • RETURN_REQUESTED: 반품 요청

    • 중요도: HIGH
    • 수신자: SALES_MANAGER
    • 채널: 전체

Purchase Domain

  • PURCHASE_CONFIRMED: 발주 확정

    • 중요도: HIGH
    • 수신자: INVENTORY_MANAGER
    • 채널: 이메일, 시스템
  • RECEIVING_COMPLETED: 입고 완료

    • 중요도: MEDIUM
    • 수신자: INVENTORY_MANAGER, PURCHASE_MANAGER
    • 채널: 시스템

구현 가이드

알림 이벤트 구조

interface NotificationEvent {
  type: string;
  priority: Priority;
  targetRoles: string[];
  targetStaffIds?: string[];
  content: string;
  occurredAt: Date;
  referenceInfo: {
    domain: string;
    entityType: string;
    entityId: string;
    additionalInfo?: Record<string, any>;
  };
}

알림 처리 프로세스

  1. 이벤트 수신

    • 도메인에서 발행한 NotificationEvent 수신
    • 이벤트 유효성 검증
  2. 수신자 확인

    • Staff 도메인에서 대상 수신자 조회
    • 수신자별 알림 설정 확인
  3. 알림 생성

    • 수신자별 알림 메시지 생성
    • 채널별 포맷 적용
  4. 알림 발송

    • 채널별 발송 처리
    • 발송 이력 기록
  5. 후속 처리

    • 발송 실패 시 재시도
    • 중요 알림 수신 확인 체크

재발송 정책

  • CRITICAL: 1시간 간격, 최대 24회
  • HIGH: 3시간 간격, 최대 8회
  • 수신 확인 시 재발송 중단

모니터링

  1. 알림 발송 현황

    • 유형별 발송 건수
    • 채널별 발송 건수
    • 실패율
  2. 수신 확인 현황

    • 중요 알림 수신 확인율
    • 미확인 알림 현황
  3. 성능 지표

    • 알림 발송 소요 시간
    • 채널별 발송 성공률

데이터 정책

  • 알림 이력: 1년 보관
  • 발송 이력: 6개월 보관
  • 수신 확인 이력: 6개월 보관