feat: DailyStatWorker 구현 (#148) #149

Merged
seonkyu.kim merged 1 commits from feature/#148-daily-stat-worker into develop 2026-02-11 01:19:26 +00:00
Owner

📋 작업 요약

  • 매일 00:05 KST에 전날의 발송/열람 통계를 집계하는 BackgroundService Worker 구현
  • 서비스별 PushSendLog GroupBy 집계 (sent/success/fail) + PushOpenLog 열람 집계
  • DailyStat 테이블 UPSERT + SystemLog 완료 로그 기록

Closes #148

🛠️ 작업 내용 (Changes)

  • SPMS.Infrastructure/Workers/DailyStatWorker.cs — BackgroundService 구현 (KST 00:05 Cron)
  • SPMS.Domain/Interfaces/IDailyStatRepository.cs — UpsertAsync 메서드 추가
  • SPMS.Infrastructure/Persistence/Repositories/DailyStatRepository.cs — Upsert 구현 (존재 시 UPDATE, 없으면 INSERT)
  • SPMS.Infrastructure/DependencyInjection.cs — AddHostedService 등록

📢 리뷰어 참고 사항 (To Reviewers)

  • KST 기준으로 어제 날짜를 계산 후 UTC 변환하여 쿼리 (TimeZoneInfo.ConvertTimeToUtc)
  • PushSendLog + PushOpenLog를 각각 GroupBy ServiceId로 집계
  • 발송만 있고 열람이 없는 서비스, 또는 열람만 있는 서비스 모두 처리 (Union)
  • 보정용 Worker: 실시간 증분 업데이트가 누락된 건을 전수 재집계로 보정
  • 설계 문서 참조: BatchScheduler_Design.md §4

체크리스트 (Self Checklist)

  • 빌드(Build)가 성공적으로 수행되었는가?
  • 모든 단위 테스트(Unit Test)를 통과하였는가?
  • 불필요한 로그나 주석을 제거하였는가?
  • 컨벤션(Clean Architecture, Naming)을 준수하였는가?
  • 기밀 정보(비밀번호, 키 등)가 하드코딩 되어있지 않은가?

📸 스크린샷 / 테스트 로그 (Screenshots/Logs)

Build succeeded.
    0 Warning(s)
    0 Error(s)
## 📋 작업 요약 - 매일 00:05 KST에 전날의 발송/열람 통계를 집계하는 BackgroundService Worker 구현 - 서비스별 PushSendLog GroupBy 집계 (sent/success/fail) + PushOpenLog 열람 집계 - DailyStat 테이블 UPSERT + SystemLog 완료 로그 기록 ## 🔗 관련 이슈 (Related Issues) Closes #148 ## 🛠️ 작업 내용 (Changes) - [x] SPMS.Infrastructure/Workers/DailyStatWorker.cs — BackgroundService 구현 (KST 00:05 Cron) - [x] SPMS.Domain/Interfaces/IDailyStatRepository.cs — UpsertAsync 메서드 추가 - [x] SPMS.Infrastructure/Persistence/Repositories/DailyStatRepository.cs — Upsert 구현 (존재 시 UPDATE, 없으면 INSERT) - [x] SPMS.Infrastructure/DependencyInjection.cs — AddHostedService<DailyStatWorker> 등록 ## 📢 리뷰어 참고 사항 (To Reviewers) - KST 기준으로 어제 날짜를 계산 후 UTC 변환하여 쿼리 (TimeZoneInfo.ConvertTimeToUtc) - PushSendLog + PushOpenLog를 각각 GroupBy ServiceId로 집계 - 발송만 있고 열람이 없는 서비스, 또는 열람만 있는 서비스 모두 처리 (Union) - 보정용 Worker: 실시간 증분 업데이트가 누락된 건을 전수 재집계로 보정 - 설계 문서 참조: BatchScheduler_Design.md §4 ## ✅ 체크리스트 (Self Checklist) - [x] 빌드(Build)가 성공적으로 수행되었는가? - [x] 모든 단위 테스트(Unit Test)를 통과하였는가? - [x] 불필요한 로그나 주석을 제거하였는가? - [x] 컨벤션(Clean Architecture, Naming)을 준수하였는가? - [x] 기밀 정보(비밀번호, 키 등)가 하드코딩 되어있지 않은가? ## 📸 스크린샷 / 테스트 로그 (Screenshots/Logs) ``` Build succeeded. 0 Warning(s) 0 Error(s) ```
seonkyu.kim added this to the Phase 3-2: 통계 & Webhook & 배치 milestone 2026-02-11 01:17:48 +00:00
seonkyu.kim added 1 commit 2026-02-11 01:17:50 +00:00
seonkyu.kim added the
Priority
Medium
Status
In Progress
Type
Feature
labels 2026-02-11 01:18:16 +00:00
seonkyu.kim self-assigned this 2026-02-11 01:18:21 +00:00
seonkyu.kim requested review from Owners 2026-02-11 01:18:34 +00:00
seonkyu.kim merged commit 17b9f14372 into develop 2026-02-11 01:19:26 +00:00
seonkyu.kim deleted branch feature/#148-daily-stat-worker 2026-02-11 01:19:58 +00:00
seonkyu.kim added
Status
Done
and removed
Status
In Progress
labels 2026-02-11 01:20:19 +00:00
Sign in to join this conversation.
No description provided.