마스킹 복구 — 가능 / 불가능 정리
beta · 이메일 복구 8,852(74%) 완료 · 발송 0통 · 2026-06-04
✓ 가능한 부분
| 항목 | 방법 | 상태 |
|---|---|---|
| 이메일 원본 복구 (74%) | T1 sibling 승격 + T2/T2b discovery 백필 | 완료 8,852 |
| 구조적 재오염 차단 | DB CHECK 제약 (%***% 거부) | 완료 |
| 시퀀스 일시정지/재개 | UPDATE sequences SET status (순수 SQL, 부작용 0) | 가능 |
| 스킵 재발송 | DB 누적·타임존 재스케줄 → loader가 BullMQ 자동 전파 | 가능 |
| 재활성화 (stopped→active) | status 변경 + 누적 재스케줄 | 가능 |
| completed 재enroll (침묵실패 32) | 신규 enrollment 생성 | 가능 |
| 컴플라이언스 안전망 | 워커가 수신거부·반송·GDPR·DNC·재검증 자동 차단 | 자동 |
| 롤백 | 백업/스냅샷 테이블로 원복 | 가능 |
| 단계적·배치 적용 + 모니터 | 워크스페이스/캠페인 단위 분할 | 가능 |
✕ 불가능한 부분 (또는 제약)
| 항목 | 이유 | 대안 |
|---|---|---|
| 마스킹 잔량 2,971 복구 | 원본이 어디에도 없음(CSS 쓰레기/부재). 임의 생성 금지 | 재-enrich(도메인 재탐색) |
| 이미 발송된 메일 회수 | 외부 발송은 불가역 | 소량 게이트로 예방 |
기존 reEnrollFailedEnrollments 직접 사용 | cadence 버그 (now+delay 평면 → 하루 7통 폭탄) | 누적 재스케줄 스크립트 |
| enrollment-level 정지를 raw SQL로 | 앱은 잡취소+pending skip 부작용 동반 | sequence-level만 사용 |
| BullMQ에 직접 잡 넣기 | loader 우회 = 정합성 깨짐 | DB(SSOT) 수정 → loader 전파 |
| 즉시(1분) 발송 보장 | backpressure (due 39k, loader 500/tick) → 적재 지연 | 큐 순번 대기, 정밀제어 X |
| T2/T2b 백필 100% 정확 | 휴리스틱 매칭(도메인+첫글자+회사명) → 소량 오발송 가능 | 발송 전 샘플 검수 |
| 근본 코드 가드(isMaskedEmail) | 코드 수정 = PR 필요 (스크립트 불가) | DB CHECK가 임시 대체 중 |
핵심 요약
데이터 복구·재오염 차단·재발송 메커니즘은 모두 가능 — 이미 74% 복구 + CHECK 적용.
불가능/제약의 본질 3가지: ① 원본 없는 2,971건(재enrich 필요) ② 발송 타이밍 정밀제어 불가(backpressure) ③ 발송 후 회수 불가 → 소량 게이트·배치·검수로 관리.
하지 말아야 할 것: 기존 re-enroll 직접 사용 · enrollment-level raw 정지 · BullMQ 직접 enqueue · 시퀀스 무단 활성화.