푸시 도달률이 100%가 아닌 이유와 대응 전략
푸시 알림을 보냈는데 사용자가 받지 못했다는 문의를 받아본 적이 있을 것이다. 실제로 푸시 알림의 도달률은 다양한 요인으로 인해 100%를 보장할 수 없다. 이 섹션에서는 그 원인들을 자세히 살펴보고 대응 방안을 정리해본다.
1. 기기 상태에 따른 제한
전원 꺼짐/비행기 모드
- 당연하지만 기기가 꺼져있거나 비행기 모드일 때는 푸시를 받을 수 없음
- FCM/APNS는 일정 기간(FCM 28일, APNS 8일) 메시지를 보관했다가 재전송 시도
배터리 절전 모드
- Android Doze 모드: 화면이 꺼지고 일정 시간 움직임이 없으면 네트워크 활동 제한
- iOS 저전력 모드: 백그라운드 앱 활동 제한으로 푸시 지연 가능
- 제조사별 절전 모드: 삼성, 샤오미, 화웨이 등은 더 공격적인 절전 정책 적용
메모리/저장공간 부족
- 저장공간이 부족하면 OS가 푸시 서비스를 제한할 수 있음
- 메모리 부족 시 백그라운드 프로세스가 종료되어 푸시 수신 불가
2. 네트워크 환경 문제
네트워크 불안정
- 지하철, 엘리베이터 등 음영 지역
- 와이파이 <-> 셀룰러 전환 시 일시적 연결 끊김
- 해외 로밍 중 데이터 차단 상태
방화벽/프록시 제한
- 기업 네트워크에서 FCM/APNS 포트 차단 (FCM: 5228-5230, APNS: 5223, 443)
- 일부 국가의 인터넷 검열 (중국의 FCM 차단 등)
- 공용 와이파이의 포트 제한
네트워크 지연/타임아웃
- 높은 레이턴시 환경에서 연결 타임아웃
- 패킷 로스가 심한 환경
3. OS 정책 및 제한
iOS 제한사항
- 하루 푸시 개수 제한은 없지만, 과도한 푸시는 차단될 수 있음
- Silent Push는 시간당 2-3개로 제한
- 앱이 사용자에 의해 강제 종료되면 Silent Push 수신 불가
- 백그라운드 리프레시 비활성화 시 일부 푸시 타입 제한
Android 제한사항
- Android 8.0+: 채널별 알림 설정으로 세분화된 제어
- 제조사별 커스텀 OS의 추가 제한 (MIUI, OneUI 등)
- 앱이 장시간 사용되지 않으면 자동으로 백그라운드 제한
- High Priority 메시지 남용 시 제한 가능
4. 푸시 서비스 자체의 제한
FCM 제한
- Collapsible 메시지는 최대 4개까지만 대기
- 토픽 구독은 앱 인스턴스당 2000개 제한
- 메시지 수명(TTL) 최대 28일
- 일시적인 서비스 장애나 점검
APNS 제한
- 페이로드 크기 4KB 제한 (VoIP는 5KB)
- 잘못된 토큰으로 반복 전송 시 차단 가능
- 인증서/키 만료 시 전송 실패
5. 앱/사용자 설정
사용자가 직접 차단
- 앱 설정에서 알림 끄기
- OS 설정에서 앱 알림 차단
- 방해금지 모드 설정
토큰 관련 문제
- 토큰 갱신 실패로 잘못된 토큰 사용
- 앱 재설치 후 토큰 미갱신
- 다중 기기 사용 시 이전 기기 토큰으로 전송
실무 대응 전략
1. 재전송 정책 수립
- Critical 알림: 3회까지 재전송 (간격: 1분, 5분, 30분)
- 일반 알림: 1회만 전송, 실패 시 앱 내 알림으로 대체
- 마케팅 알림: 재전송하지 않음
2. 대체 전달 수단 마련
- 푸시 실패 시 SMS 발송 (중요 알림만)
- 앱 실행 시 놓친 알림 확인 API
- 이메일 알림 병행
3. 모니터링 및 분석
- 푸시 전송 성공률 대시보드 구축
- 실패 원인별 분류 및 통계
- 디바이스별/OS버전별 도달률 분석
- A/B 테스트로 최적 발송 시간대 파악
4. 토큰 관리 강화
- 앱 실행 시마다 토큰 유효성 체크
- 토큰 갱신 시 서버에 즉시 업데이트
- 실패한 토큰 자동 정리 (3회 실패 시 삭제)
- 마지막 성공 시간 기록
5. 사용자 교육
- 온보딩 시 알림 허용 유도
- 알림 설정 방법 안내 (앱 내 가이드)
- 절전 모드 예외 설정 안내
6. 기술적 보완
- 중요 알림은 앱 내 배지/인박스로도 표시
- WebSocket 등 대체 실시간 통신 채널 구축
- 주기적인 Polling으로 놓친 알림 확인
도달률 개선 체크리스트
기억해야 할 것은, 푸시는 “best effort” 서비스라는 점이다. 100% 도달을 보장할 수 없으므로, 정말 중요한 알림이라면 반드시 대체 수단을 마련해두어야 한다.