[BE-11] 정리 후보 탐지 스케줄러 (FR-14, P2)
작업 내용 (설계 의도)
변경 사항
90일 무변경 ACTIVE RELEASE 플래그를 정리 후보로 탐지·통지(FR-14, P2). 근거 TDD: ../TDD.md Observability. 노출 카운트(FR-13) 지표는 BE-06(EvaluatorImpl)에서 이미 집계 — 본 티켓은 정리 탐지만.
FeatureFlagCleanupScheduler(presentation,@Scheduled일 1회):findAllActive중 type=RELEASE이고 updated_at이 90일 이전인 플래그를 후보로 식별 → 옵저버빌리티 대시보드 또는 ⑥ 지능형 장애 알림 채널(source=feature-flag)로 통지. UseCase 경유.DetectStaleFeatureFlagsUseCase(application) → DomainService 조회 위임(신규 조회 메서드 필요 시 추가).- 임계값(90일)은 상수/설정으로. 통지는 결과 미추적(fire-and-forget) 로그·메트릭.
- 독립 파일이므로 wave 4 병렬 배치 가능.
의존
- BE-02 (findAllActive), BE-04 (DomainService 조회) — 조회 메서드 재사용
다이어그램
클래스 의존
flowchart LR Scheduler["FeatureFlagCleanupScheduler"] --> UC["DetectStaleFeatureFlagsUseCase"] UC --> DS["FeatureFlagDomainService"] DS --> Repo["FeatureFlagRepository"]
테스트 케이스
- 90일 이전 updated_at의 ACTIVE RELEASE 플래그가 후보로 식별된다
- 90일 이내 변경된 RELEASE 플래그는 후보에서 제외된다
- OPERATIONAL/EXPERIMENT/ENTITLEMENT는 정리 후보 대상이 아니다
- ARCHIVED 플래그는 대상에서 제외된다
- 후보가 0건이면 통지를 발생시키지 않는다