Conversation
|
Caution Review failedThe pull request is closed. WalkthroughFirebase 기반 FCM 푸시 알림 기능을 추가하고, 관찰성(observability) 인프라를 강화하며, 기존 인증/검색 로직을 개선합니다. 포괄적인 문서도 함께 업데이트됩니다. Changes
Sequence Diagram(s)sequenceDiagram
actor User as 사용자
participant Client as 클라이언트
participant FcmController as FCM Controller
participant FcmService as FcmService
participant FcmTokenRepository as FCM Token<br/>Repository
participant DB as Database
participant Firebase as Firebase Admin SDK
rect rgba(200, 150, 255, 0.5)
Note over User,Firebase: [1] FCM 토큰 등록 흐름
User->>Client: 앱 시작, FCM 토큰 받음
Client->>FcmController: POST /api/fcm/token<br/>(fcmToken, deviceType)
activate FcmController
FcmController->>FcmService: saveToken(userId, fcmToken, deviceType)
activate FcmService
FcmService->>FcmTokenRepository: 기존 토큰 조회
FcmTokenRepository->>DB: findByUserUserId(userId)
DB-->>FcmTokenRepository: 토큰 목록
FcmTokenRepository-->>FcmService: 기존 토큰 데이터
alt 동일 기기 기존 토큰 있음
FcmService->>FcmTokenRepository: 기존 토큰 삭제
FcmTokenRepository->>DB: deleteByUserUserIdAndDeviceType()
end
FcmService->>FcmTokenRepository: 새 토큰 저장
FcmTokenRepository->>DB: save(FcmTokenEntity)
DB-->>FcmTokenRepository: 저장 완료
FcmTokenRepository-->>FcmService: 저장됨
FcmService-->>FcmController: void
deactivate FcmService
FcmController-->>Client: 200 OK
deactivate FcmController
end
rect rgba(100, 200, 150, 0.5)
Note over User,Firebase: [2] 알림 발송 흐름
participant NotificationService as Notification<br/>Service
NotificationService->>FcmTokenRepository: 활성 사용자 토큰 조회
FcmTokenRepository->>DB: findByUserUserIdIn(userIds)
DB-->>FcmTokenRepository: 토큰 목록
FcmTokenRepository-->>NotificationService: 사용자별 토큰 맵
loop 각 사용자별
NotificationService->>FcmService: sendDailyNotification()<br/>(fcmToken, ...)
activate FcmService
FcmService->>Firebase: FirebaseMessaging.send(message)
Firebase-->>FcmService: 메시지 ID /<br/>FirebaseMessagingException
alt 토큰 유효
FcmService-->>NotificationService: 발송 완료
else 토큰 무효 (UNREGISTERED/INVALID)
FcmService->>FcmTokenRepository: deleteByFcmToken(fcmToken)
FcmTokenRepository->>DB: 토큰 삭제
FcmService-->>NotificationService: 토큰 정리 완료
end
deactivate FcmService
end
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~50 minutes 분석 근거:
Possibly related PRs
Suggested labels
Suggested reviewers
리뷰 의견안녕하세요! 꽤 큰 PR이네요. 전반적으로 구조가 잘 설계되었다고 생각합니다. 몇 가지 체크 포인트를 공유드립니다: ✅ 칭찬할 점
|
📍 PR 타입 (하나 이상 선택)
❗️ 관련 이슈 링크
Close #
📌 개요
🔁 변경 사항
📸 스크린샷
👀 기타 더 이야기해볼 점
✅ 체크 리스트
Summary by CodeRabbit
릴리스 노트
새로운 기능
개선사항
문서