푸시 알림
보내면 다 간다고 생각하기 쉽습니다. 중간에 빠지는 지점이 여럿입니다. 사용자가 권한을 거부했거나, 기기가 오래 꺼져 있었거나, 배터리 절약 기능이 막았거나, 중계 서버가 나중으로 미룹니다. 그래서 발송 건수와 도착 건수는 늘 다릅니다.
한 문장으로
푸시 알림은 우리 서버가 사용자 기기로 직접 보내는 것이 아니라, 애플과 구글의 중계 서버에 전달을 요청하는 것입니다.
하는 일
- 권한 요청 — 언제 물어보느냐가 수락률을 크게 바꿉니다
- 토큰 관리 — 기기마다 주소가 있고 앱을 지우거나 바꾸면 무효가 됩니다
- 중계 연결 — 애플 · 구글 서버로 보내고 결과를 받기
- 발송 기록 — 실패했을 때 흔적이 남게
- 우선순위 — 지금 깨울 것과 나중에 봐도 될 것 나누기
- 수신 거부 — 종류별로 끌 수 있게
하지 않는 일
- 문자와 알림톡 — 통신사와 메신저를 지나는 다른 경로입니다
- 이메일 — 도달 조건이 완전히 다릅니다
- 앱 안의 알림 목록 — 열었을 때 보이는 것은 푸시가 아니어도 됩니다
이웃 개념과 헷갈리는 지점
- 문자 · 알림톡통신사와 메신저를 통한 전달
- 도달률이 높고 비용이 듭니다. 푸시는 공짜에 가깝지만 안 갈 수 있습니다. 중요도에 따라 나눠 쓰는 것이 보통입니다.
- 앱 안 알림앱을 열었을 때 보이는 목록
- 푸시가 실패해도 여기에는 남습니다. 그래서 중요한 알림은 둘 다 두는 편이 안전합니다.
- 웹 푸시브라우저로 보내는 알림
- 앱 없이도 되지만 제약이 더 큽니다. 특히 아이폰에서는 조건이 까다롭습니다.
- 딥링크알림을 눌렀을 때 앱의 특정 화면으로 보내는 것
- 알림이 도착하는 것과 눌렀을 때 맞는 화면이 열리는 것은 별개입니다. 둘 다 설계해야 합니다.
언제 필요한가
이럴 때 필요합니다
- 알림을 보냈는데 안 왔다는 문의가 있을 때
- 도달률이 얼마인지 물었을 때 답할 자료가 없을 때
- 기기를 바꾼 사용자에게 알림이 안 갈 때
- 중요한 알림이 몇 시간 뒤에 도착할 때
아직 아니어도 됩니다
- 알림 보낼 일이 드물다면 문자가 더 확실하고 단순합니다
- 웹만 있고 아이폰 사용자가 많다면 제약이 커서 다른 방법이 나을 수 있습니다
- 이미 발송 실패가 기록되고 도달률을 보고 있다면 손댈 것이 적습니다
여기서부터는 갈립니다
도달률은 우리가 통제하지 못하는 부분이 큽니다. 기기 제조사가 배터리를 아끼려고 백그라운드 동작을 막는 방식이 제각각이고, 특히 국내에서 많이 쓰는 안드로이드 기기들 사이에 편차가 큽니다. 그래서 “몇 퍼센트가 도착합니다” 라고 말하기 어렵고, 실제로 보내 보고 재는 수밖에 없습니다. 중요한 알림을 푸시 하나에만 기대지 않는 설계가 그래서 필요합니다.
자주 묻는 질문
권한이 켜져 있는지, 토큰이 살아 있는지, 발송이 실제로 나갔는지 순서로 봅니다. 이 셋 중 어디서 끊겼는지 기록이 없으면 원인을 못 찾습니다. 발송 경로에 로그를 두는 것이 먼저입니다.
앱 성격과 사용자 기기 구성에 따라 편차가 커서 하나로 말하기 어렵습니다. 다만 권한 수락률이 절반을 크게 밑도는 경우가 흔하고, 거기서 이미 절반이 빠집니다.
푸시로는 보낼 수 없습니다. 앱 안 알림 목록이나 문자 같은 다른 경로가 필요합니다. 그래서 권한을 언제 물어보느냐가 중요합니다. 앱을 켜자마자 물으면 대부분 거부합니다.
푸시 자체는 대개 무료입니다. 비용은 발송을 관리하는 서비스를 쓸 때 발생하고, 사용자 수와 발송량에 따라 붙습니다. 문자나 알림톡은 건당 요금이라 성격이 다릅니다.
푸시는 앱을 설치한 사람에게만 가고 무료에 가깝지만 안 갈 수 있습니다. 문자는 번호만 있으면 가고 도달률이 높지만 건당 비용이 듭니다. 중요도로 나눠 쓰는 것이 보통입니다.
범위가 애매해도 괜찮습니다
지금 상황만 알려 주시면 필요한 범위와 대략의 규모를 짚어 드립니다.