feat: FCM 발송 모듈 구현 (#104) #105
No reviewers
SPMS/Owners
Labels
No Label
Priority
High
Priority
Low
Priority
Medium
Priority
Non
Priority
Urgent
Status
Available
Status
Done
Status
In Progress
Type
Bug
Type
Chore
Type
Design
Type
Documentation
Type
Feature
Type
Improvement
Type
Refactor
Type
Research
Type
Task
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: SPMS/SPMS_API#105
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "feature/#104-fcm-sender"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 작업 요약
🔗 관련 이슈 (Related Issues)
Closes #104
🛠️ 작업 내용 (Changes)
SPMS.Application/DTOs/Push/PushResultDto.cs— 발송 결과 DTO (ShouldRemoveDevice, ShouldRetry 플래그)SPMS.Application/Interfaces/IFcmSender.cs— FCM 발송 인터페이스 (SendAsync, SendBatchAsync)SPMS.Infrastructure/Push/FcmSender.cs— Firebase Admin SDK 연동 구현SPMS.Infrastructure/DependencyInjection.cs— IFcmSender DI 등록 (Singleton)SPMS.Infrastructure/SPMS.Infrastructure.csproj— FirebaseAdmin 3.4.0 패키지 추가📢 리뷰어 참고 사항 (To Reviewers)
FcmCredentialsJson(Service Account JSON)을 받아 FirebaseApp을 SHA256 해시 키로 캐싱SendBatchAsync는 내부적으로 500건씩 chunk하여SendEachForMulticastAsync호출PushResultDto에ShouldRemoveDevice/ShouldRetry플래그로 PushWorker가 후처리 판단 가능✅ 체크리스트 (Self Checklist)
📸 스크린샷 / 테스트 로그 (Screenshots/Logs)