feat: DeadTokenCleanupWorker 구현 (#150) #151

Merged
seonkyu.kim merged 1 commits from feature/#150-dead-token-cleanup into develop 2026-02-11 01:27:48 +00:00
Owner

📋 작업 요약

  • 매주 일요일 03:00 KST에 비활성 Device 토큰을 물리 삭제하는 BackgroundService Worker 구현
  • 배치 삭제(1000건) + 안전장치(50% 초과 시 중단) 적용

Closes #150

🛠️ 작업 내용 (Changes)

  • SPMS.Infrastructure/Workers/DeadTokenCleanupWorker.cs — BackgroundService 구현 (KST 일요일 03:00 스케줄, 배치 삭제, 안전장치)
  • SPMS.Infrastructure/DependencyInjection.cs — AddHostedService 등록

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

  • 삭제 대상: is_active=false AND updated_at < 7일 전 Device
  • 배치 단위 1000건씩 raw SQL DELETE (트랜잭션 없음, DB 부하 분산)
  • 전체 Device의 50% 초과 시 삭제 중단 + 경고 로그 (안전장치)
  • SystemLog에 정리 완료/안전장치 발동 기록
  • Redis 토큰 캐시 무효화는 #15 구현 후 연동 예정

체크리스트 (Self Checklist)

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

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

Build succeeded.
    0 Warning(s)
    0 Error(s)
## 📋 작업 요약 - 매주 일요일 03:00 KST에 비활성 Device 토큰을 물리 삭제하는 BackgroundService Worker 구현 - 배치 삭제(1000건) + 안전장치(50% 초과 시 중단) 적용 ## 🔗 관련 이슈 (Related Issues) Closes #150 ## 🛠️ 작업 내용 (Changes) - [x] `SPMS.Infrastructure/Workers/DeadTokenCleanupWorker.cs` — BackgroundService 구현 (KST 일요일 03:00 스케줄, 배치 삭제, 안전장치) - [x] `SPMS.Infrastructure/DependencyInjection.cs` — AddHostedService 등록 ## 📢 리뷰어 참고 사항 (To Reviewers) - 삭제 대상: `is_active=false` AND `updated_at < 7일 전` Device - 배치 단위 1000건씩 raw SQL DELETE (트랜잭션 없음, DB 부하 분산) - 전체 Device의 50% 초과 시 삭제 중단 + 경고 로그 (안전장치) - SystemLog에 정리 완료/안전장치 발동 기록 - Redis 토큰 캐시 무효화는 #15 구현 후 연동 예정 ## ✅ 체크리스트 (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:26:30 +00:00
- 매주 일요일 03:00 KST 스케줄 실행
- is_active=false, updated_at 7일 이전 Device 물리 삭제
- 배치 단위 1000건씩 삭제 (트랜잭션 없음)
- 안전장치: 전체의 50% 초과 시 삭제 중단 + 경고 로그
- SystemLog에 정리 완료/안전장치 발동 로그 기록
- DI에 AddHostedService 등록

Closes #150
seonkyu.kim added the
Priority
Medium
Status
In Progress
Type
Feature
labels 2026-02-11 01:26:50 +00:00
seonkyu.kim added this to the Phase 3-2: 통계 & Webhook & 배치 milestone 2026-02-11 01:27:05 +00:00
seonkyu.kim self-assigned this 2026-02-11 01:27:14 +00:00
seonkyu.kim requested review from Owners 2026-02-11 01:27:22 +00:00
seonkyu.kim merged commit ffdc343563 into develop 2026-02-11 01:27:48 +00:00
seonkyu.kim deleted branch feature/#150-dead-token-cleanup 2026-02-11 01:28:16 +00:00
seonkyu.kim added
Status
Done
and removed
Status
In Progress
labels 2026-02-11 01:29:28 +00:00
Sign in to join this conversation.
No description provided.