Describe
학생이 푸시 알림을 받지 않도록 설정(구독 해제)해두면, 알림함 화면의 "공지" 탭에 아무 항목도 뜨지 않습니다.
원인 (클라이언트 코드 분석 결과)
"공지" 탭은 실제 공지 목록 API(GET /notices)가 아니라, 푸시 알림 피드 API(GET /notifications) 응답에서 topic == NOTICE인 항목만 걸러서 보여주는 구조입니다.
NotificationViewModel.fetchNotifications() → NotificationRepository.fetchNotifications() → GET /notifications
- 이 응답을
topic으로 필터링해서 "공지" 탭 데이터로 사용 (NotificationViewModel.kt:29-47)
GET /notifications는 서버가 사용자에게 발송한 알림 레코드 목록으로 보이며, 푸시 구독을 해제한 사용자에게는 이 레코드가 생성되지 않아(추정) 공지 탭이 비어 보이는 것으로 판단됩니다.
반면 실제 공지 전용 목록 API인 GET /notices (NoticeApiService.fetchNotices, NoticeRepository.fetchNotices)는 이미 정의되어 있지만 앱 어디에서도 호출되지 않는 미사용 상태입니다.
제안
"공지" 탭 데이터 소스를 GET /notifications 필터링 대신 GET /notices 직접 호출로 변경하면 푸시 구독 여부와 무관하게 공지가 항상 노출됩니다. 다만 GET /notices 응답에는 안읽음 여부, 본문 미리보기가 없어(FetchNoticesResponse에 content/읽음 상태 없음) UI 표시 방식 논의가 필요합니다.
Additional
No response
Describe
학생이 푸시 알림을 받지 않도록 설정(구독 해제)해두면, 알림함 화면의 "공지" 탭에 아무 항목도 뜨지 않습니다.
원인 (클라이언트 코드 분석 결과)
"공지" 탭은 실제 공지 목록 API(
GET /notices)가 아니라, 푸시 알림 피드 API(GET /notifications) 응답에서topic == NOTICE인 항목만 걸러서 보여주는 구조입니다.NotificationViewModel.fetchNotifications()→NotificationRepository.fetchNotifications()→GET /notificationstopic으로 필터링해서 "공지" 탭 데이터로 사용 (NotificationViewModel.kt:29-47)GET /notifications는 서버가 사용자에게 발송한 알림 레코드 목록으로 보이며, 푸시 구독을 해제한 사용자에게는 이 레코드가 생성되지 않아(추정) 공지 탭이 비어 보이는 것으로 판단됩니다.반면 실제 공지 전용 목록 API인
GET /notices(NoticeApiService.fetchNotices,NoticeRepository.fetchNotices)는 이미 정의되어 있지만 앱 어디에서도 호출되지 않는 미사용 상태입니다.제안
"공지" 탭 데이터 소스를
GET /notifications필터링 대신GET /notices직접 호출로 변경하면 푸시 구독 여부와 무관하게 공지가 항상 노출됩니다. 다만GET /notices응답에는 안읽음 여부, 본문 미리보기가 없어(FetchNoticesResponse에content/읽음 상태 없음) UI 표시 방식 논의가 필요합니다.Additional
No response