feat: DataRetentionWorker 구현 (#152) #153

Merged
seonkyu.kim merged 1 commits from feature/#152-data-retention into develop 2026-02-11 01:34:33 +00:00
Owner

📋 작업 요약

  • 매일 04:00 KST에 보관 주기가 지난 로그 데이터를 물리 삭제하는 BackgroundService Worker 구현
  • PushSendLog/PushOpenLog(90일), WebhookLog(30일), SystemLog(180일) 보관 주기 적용

Closes #152

🛠️ 작업 내용 (Changes)

  • SPMS.Infrastructure/Workers/DataRetentionWorker.cs — BackgroundService 구현 (KST 04:00 스케줄, 테이블별 보관 주기 삭제)
  • SPMS.Infrastructure/DependencyInjection.cs — AddHostedService 등록

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

  • 4개 테이블 보관 정책을 컴파일 타임 상수 배열로 관리
  • 배치 단위 10000건씩 raw SQL DELETE (트랜잭션 없음, DB 부하 분산)
  • SystemLog에 전체 정리 완료 기록 (삭제 건수 포함)
  • 테이블명/컬럼명은 상수이므로 SQL 인젝션 위험 없음

체크리스트 (Self Checklist)

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

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

Build succeeded.
    0 Warning(s)
    0 Error(s)
## 📋 작업 요약 - 매일 04:00 KST에 보관 주기가 지난 로그 데이터를 물리 삭제하는 BackgroundService Worker 구현 - PushSendLog/PushOpenLog(90일), WebhookLog(30일), SystemLog(180일) 보관 주기 적용 ## 🔗 관련 이슈 (Related Issues) Closes #152 ## 🛠️ 작업 내용 (Changes) - [x] `SPMS.Infrastructure/Workers/DataRetentionWorker.cs` — BackgroundService 구현 (KST 04:00 스케줄, 테이블별 보관 주기 삭제) - [x] `SPMS.Infrastructure/DependencyInjection.cs` — AddHostedService 등록 ## 📢 리뷰어 참고 사항 (To Reviewers) - 4개 테이블 보관 정책을 컴파일 타임 상수 배열로 관리 - 배치 단위 10000건씩 raw SQL DELETE (트랜잭션 없음, DB 부하 분산) - SystemLog에 전체 정리 완료 기록 (삭제 건수 포함) - 테이블명/컬럼명은 상수이므로 SQL 인젝션 위험 없음 ## ✅ 체크리스트 (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 1 commit 2026-02-11 01:32:19 +00:00
- 매일 04:00 KST 스케줄 실행
- PushSendLog/PushOpenLog: 90일 보관, WebhookLog: 30일, SystemLog: 180일
- 배치 단위 10000건씩 삭제 (트랜잭션 없음)
- SystemLog에 정리 완료 로그 기록
- DI에 AddHostedService 등록

Closes #152
seonkyu.kim added the
Priority
Medium
Status
In Progress
Type
Feature
labels 2026-02-11 01:33:15 +00:00
seonkyu.kim added this to the Phase 3-2: 통계 & Webhook & 배치 milestone 2026-02-11 01:33:22 +00:00
seonkyu.kim self-assigned this 2026-02-11 01:33:42 +00:00
seonkyu.kim requested review from Owners 2026-02-11 01:34:16 +00:00
seonkyu.kim merged commit fec1bf289f into develop 2026-02-11 01:34:33 +00:00
seonkyu.kim deleted branch feature/#152-data-retention 2026-02-11 01:35:22 +00:00
seonkyu.kim added
Status
Done
and removed
Status
In Progress
labels 2026-02-11 01:35:43 +00:00
Sign in to join this conversation.
No description provided.