맥락#
프로젝트 오너는 관리자 푸시 운영, 계정별 다중 기기, 활성 기준과 휴면 처리, 필수·마케팅 알림 분리와 수신 확인을 요구했다. [1]
결정#
- 한 계정에 iOS·Android 기기를 여러 대 등록할 수 있다.
last_registered_at이 최근 30일이고 비활성화되지 않은 모든 기기를 활성으로 본다. 최근 한 대만 고르지 않는다.- 30일을 넘긴 기기는 휴면으로 집계하고 발송 대상에서 제외한다. 토큰 갱신이나 앱 재접속으로 다시 등록되면 활성으로 돌아온다.
- 알림 종류는
service,meeting,marketing이다. - 서비스·만남 알림은 마케팅 동의를 요구하지 않는다. 다만 OS 알림 권한과 활성 기기가 없으면 도달을 보장하지 않는다.
- 마케팅 알림은 기본 미동의다. 예약 시점이 아니라 실제 발송 시점의
marketing_push동의를 확인한다. - 관리자는 사용자 한 명에게 즉시 또는 예약 발송한다. 예약 대상 기기도 발송 시점에 다시 계산한다.
- 결과는 Expo 발송 티켓, 제공자 영수증, 앱
received, 사용자opened로 나눠 기록한다. 어느 한 단계도 최종 열람을 대신 증명하지 않는다. - 푸시 토큰은 비공개 데이터다. 관리자 화면에는 기기 수·플랫폼·상태만 보여 준다.
- 탈퇴 요청은 마케팅 푸시 동의를 철회한다.
회원 토픽 설정#
추가 Figma 시안에 맞춰 댓글(답글 포함)·1:1 채팅·모임 상태 푸시를 각각 설정한다. 기존 수신 동작을 보존하는 MVP 기본값은 모두 켜짐이다. 마케팅 별도 동의와 계정·안전의 필수 서비스 안내는 이 토글로 변경하지 않는다. 실제 발송과 재시도 직전에 현재 설정을 확인한다.
댓글·답글 등록, 채팅 메시지, 호스트의 확정·거절 이벤트는 알림을 생성한다. 자기 알림과 차단 관계 알림은 만들지 않는다. 비밀 댓글·채팅 본문은 알림에 넣지 않고 앱에서 확인하도록 안내한다. 토픽 푸시를 꺼도 앱 내 알림함은 남는다. 새 앱은 알림을 선택하면 해당 테이블·채팅으로 이동한다. 기존 앱의 홈·프로필 발송 URL은 호환 경로로 유지한다. 기본값·문구는 시안 적용을 위한 구현 선택이며 실제 기기 수신·빈도 만족도는 후속 검증이다. [2]
회원 이벤트의 대기 알림도 예약 작업이 처리한다. 재시도 직전 탈퇴·정지와 새 차단 관계를 확인하며 24시간 넘게 지연된 회원 이벤트 푸시는 보내지 않는다. 과거 알림을 한꺼번에 보내는 대신 앱 내 알림함의 90일 보관 기준은 유지한다. 제공자 접수와 실제 기기 수신은 별도로 검증한다. [3]
앱 내 알림함#
service,meeting,marketing세 범주 모두 앱 내 알림함에 포함한다.- 발송 시점이 된 알림은 OS 알림 권한이나 활성 기기 유무와 무관하게 알림함에 남긴다. 예약 전이거나 취소된 알림은 노출하지 않는다.
- 홈 앱바 우상단의 알림 아이콘으로 진입하며, 읽지 않은 알림이 있으면 숫자 대신 점으로 표시한다.
- 목록은 최신순 20개를 불러오고 읽지 않은 항목만 시각적으로 강조한다.
- 목록 노출만으로 읽음 처리하지 않는다. 사용자가 항목을 선택하면
read_at을 기록한 뒤 서버가 허용한 앱 내부 경로로 이동한다. - 기존 발송 URL은
/,/profile을 유지한다. 새 앱은 알림 ID로 서버에 현재 목적지를 요청하며, 본인 소유·유효 기간·현재 채팅 참여 권한을 통과한 테이블/채팅으로 이동한다. 임의 외부 URL은 받지 않는다. - 삭제된 테이블·나간 방은 안내와 홈/채팅 목록으로 복구한다. 네트워크 실패는 알림함에서 다시 시도한다. 알림 응답 중복이나 로그아웃 후 늦게 완료된 요청으로 이동하지 않는다.
- 푸시를 눌러 새 앱이 서버 목적지를 연 경우에도 알림함을 읽음 처리한다. 목록 노출·OS 수신만으로 읽음 처리하지 않는다.
- 알림은 90일 보관한다.
- 푸시
received·opened와 앱 내read_at은 서로 다른 상태다. [4]
2026-10-10 개발 구현은 PR #201과 #202에서 확인한다. 역할·기간·다른 회원 알림 침입·구버전·나간 채팅방 복구는 개발 DB 회귀로 확인했다. 실제 APNs·FCM 수신은 별도 검증이다.
현재 상태#
2026-08-24 기준 develop에는 기기 등록·휴면, 사용자별 즉시·예약 발송, 세 범주,
마케팅 동의, 제공자 영수증과 앱 수신·열람 추적, 관리자 운영 허브가 반영됐다.
운영 APNs·FCM 종단간 검증은 아직 완료 항목이 아니다.
[5]
2026-08-27 앱 내 알림함 최소 기능을 추가하기로 결정했으며 구현·개발 환경 검증은 후속 작업이다. [4]
하지 않은 선택#
- 전체 회원·조건 세그먼트 일괄 발송은 열지 않는다.
- 야간 발송 제한, 사용자별 조용한 시간과 빈도 상한은 정하지 않았다.
- 전체 읽음, 다시 읽지 않음, 사용자 삭제, 검색, 범주 필터와 실시간 구독은 초기 알림함에 넣지 않는다.
- 댓글·채팅·확정/거절 외 서비스·만남 이벤트별 문구, 조용한 시간·빈도 상한은 별도 기획이다.
재검토 조건#
- 30일 기준이 정상 보조 기기를 과도하게 휴면 처리한다.
- 다중 기기 중복 알림이 사용자의 피로를 키운다.
- 제공자 수락과 실제 앱 수신의 차이가 운영 판단을 반복적으로 왜곡한다.
- 전체·세그먼트 발송이나 법적 광고 메시지 운영 절차가 필요해진다.
관련 문서: Expo 모바일 환경, 계정 동의, 관리자 운영, 앱 내 알림함 원본, 푸시 알림, 프로젝트 오너 요구