### 🌿 브랜치 타입 feat ### 📝 작업 요약 - 리액트 네이티브 앱에서 푸시 알림이 누락되거나 지연될 수 있는 상황을 고려해, 백엔드에서 알림 내역을 안정적으로 보관하고 앱이 동기화할 수 있는 알림 API를 구현한다. - 단순히 푸시 발송 성공 여부에 의존하지 않고, 서버 보관함 기반의 알림 목록 조회, 미읽음 수 조회, 읽음 처리, 디바이스 토큰 관리, 발송/실패 이력 추적을 포함한다. ### ✅ 작업 항목 - [x] 알림 도메인 모델 설계 - [x] 알림 유형, 제목, 내용, payload, 수신자, 읽음 여부, 생성/읽음 시각 정의 - [x] 디바이스 푸시 토큰 등록/갱신/삭제 API 구현 - [x] 알림 목록 조회 API 구현 - [x] 커서 기반 페이지네이션, 미읽음 필터, 최신순 정렬 적용 - [x] 미읽음 알림 수 조회 API 구현 - [x] 단건/일괄 읽음 처리 API 구현 - [x] 푸시 수신 누락에 대비한 서버 보관함 기반 동기화 정책 반영 - [x] 알림 생성/발송/실패 이력 로깅 기준 검토 - [x] 중복 알림 생성 방지 기준 검토 - [x] Swagger 문서 작성 - [x] 에러 코드 정의 - [x] 테스트 코드 작성 ### 🚩 완료 조건 - 앱이 푸시 알림을 받지 못해도 알림 목록 조회를 통해 누락된 알림을 확인할 수 있다. - 사용자 기준으로 알림 읽음 상태와 미읽음 수가 일관되게 관리된다. - 디바이스 토큰 등록, 갱신, 삭제 상황에서 API가 예외 없이 동작한다. - 푸시 발송 실패 또는 토큰 만료 상황을 추적할 수 있다. - 주요 성공/실패 케이스에 대한 테스트가 포함된다. - Swagger 문서에서 프론트가 필요한 요청/응답 필드를 확인할 수 있다.
🌿 브랜치 타입
feat
📝 작업 요약
✅ 작업 항목
🚩 완료 조건