[BE-09] 자동매매 Discord 알림 어댑터
작업 내용 (설계 의도)
변경 사항
AutoTradingAlertGateway 구현체를 만든다. 기존 DiscordMarketFlowAlertGateway·DiscordNotificationGateway 패턴을 따라 autotrading/infrastructure/notification/에 둔다.
알림 대상은 PRD “Operations” 표를 따른다 — 자동 체결·승인 대기·손절 발동·일일 한도 80% 사전 경고·한도 도달 중단·킬 스위치 작동·단계 승강급은 stock-alert, 주문 실패·상태 확인 불가·서킷 오픈은 error-alert.
메시지에 계좌번호·토큰을 넣지 않는다(PRD 보안 요구사항). 알림 실패가 집행을 막지 않도록 best-effort로 처리하되, 실패 자체는 로그로 남긴다.
의존
- BE-01 (도메인 계약 —
AutoTradingAlertGateway)
다이어그램
처리 흐름
sequenceDiagram participant Svc as AutoTradingDomainService participant Gw as DiscordAutoTradingAlertGateway participant Discord as Discord Webhook Svc->>Gw: notifyExecuted(fill) Gw->>Discord: stock-alert 전송 Gw-->>Svc: 실패해도 예외를 전파하지 않음
클래스 의존
flowchart LR Iface[AutoTradingAlertGateway] -.->|implements| Impl[DiscordAutoTradingAlertGateway] Impl --> Webhook[Discord Webhook Client]
테스트 케이스
- 체결 알림이 종목·수량·체결가·손절가를 포함해 전송된다.
- 일일 한도 80% 도달 시 사전 경고가 전송된다(경계값).
- 주문 실패 알림이
error-alert채널로 전송된다. - 계좌번호가 메시지 본문에 포함되지 않는다(보안).
- Discord 전송이 실패해도 예외를 전파하지 않는다(best-effort).