Skip to content

fix: 디스코드 미설정 시 알림 무전달 — 이메일 폴백 트리거 + 문서 사실화 - #415

Merged
easygap merged 1 commit into
mainfrom
fix/notifier-disabled-discord-fallback
Jun 11, 2026
Merged

fix: 디스코드 미설정 시 알림 무전달 — 이메일 폴백 트리거 + 문서 사실화#415
easygap merged 1 commit into
mainfrom
fix/notifier-disabled-discord-fallback

Conversation

@easygap

@easygap easygap commented Jun 10, 2026

Copy link
Copy Markdown
Owner

문제 (운영 가시성 — 알림 체인 감사에서 발견)

DiscordBot은 비활성(웹훅 미설정) 시 콘솔 폴백하며 True를 반환한다(기존 통일 결정). Notifier가 그 True를 '발송 성공'으로 믿어 이메일 폴백을 건너뛰었다 — 웹훅 미설정 + SMTP 설정 환경에서 일반 알림이 콘솔에만 남고 어떤 채널로도 전달되지 않았다. 무인 운영(스케줄러·live)에서 콘솔은 아무도 보지 않는다.

수정

_discord_deliverable()(enabled + webhook_url)로 '실제 채널 전달 가능'을 구분:

  • 비활성 → 콘솔 기록 유지 + 이메일 폴백 트리거
  • 설정상 비활성은 장애가 아님 → 실패 카운트 비증가(양채널 사망 경보 오탐 방지)
  • 활성 상태의 실제 실패/예외 → 기존대로 카운트·폴백

문서 사실화

PROJECT_GUIDE가 "1차 디스코드 → 2차 텔레그램 → 3차 이메일" 3중 이중화로 기술했으나 코드에 텔레그램은 없다(2중) — 미구현 기능을 있는 것처럼 적는 것이 더 위험하므로 사실대로 정정.

검증

신규 테스트 6건 + 기존 더블에 실 인터페이스(enabled/webhook_url) 보강(활성-실패 vs 비활성-폴백 구분) — 전체 1496 passed

알림 체인 감사에서 발견: DiscordBot은 비활성(웹훅 미설정) 시 콘솔에 출력하고
True를 반환하는데, Notifier가 그 True를 '발송 성공'으로 믿어 이메일 폴백을
건너뛰었다. 웹훅 미설정 + SMTP 설정 환경에서 일반 알림이 콘솔에만 남아 어떤
채널로도 전달되지 않았다 — 무인 운영(스케줄러)에서 콘솔은 아무도 보지 않는다.

_discord_deliverable()로 '실제 채널 전달 가능'(enabled + webhook_url)을 구분:
- 비활성이면 콘솔 기록은 유지하되 '전달 안 됨'으로 취급해 이메일 폴백 트리거
- 설정상 비활성은 장애가 아니므로 실패 카운트 비증가(양채널 사망 경보 오탐 방지)
- 활성 상태의 실제 실패/예외는 기존대로 카운트·폴백

문서 정정: PROJECT_GUIDE가 '2차 텔레그램' 3중 이중화로 기술했으나 코드에
텔레그램은 미구현(디스코드→이메일 2중) — 문서가 코드보다 앞서 있던 것을 사실대로.

기존 테스트 더블(_FailingDiscord)에 enabled/webhook_url 속성 보강(실 인터페이스
반영 — '활성 상태의 발송 실패'와 '비활성 콘솔 폴백' 구분). 신규 테스트 6건
(비활성→이메일 폴백/카운트 비증가/활성 성공 시 이메일 생략/실패 폴백/critical
동시/embed 경로). 전체 1496 passed.
@easygap
easygap merged commit 9ff1700 into main Jun 11, 2026
1 check passed
easygap added a commit that referenced this pull request Jul 6, 2026
…llback

fix: 디스코드 미설정 시 알림 무전달 — 이메일 폴백 트리거 + 문서 사실화
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant