Ch 05. 재난문자 푸시 알림 구현하기
유료 멤버십 가입 필수!!
기능 상세:
- 앱 내 코드가 아닌 원격으로 내용을 전송
- 앱에서는 발송된 원격 알림을 받아 표현
활용 기술:
- Remote Notification
- 불시에 발생한 업데이트(사용자 선별알림, 특정행동 알림, 불특정 메시지)
- 전송 방식
- Provider(Server) -> APNs -> OS -> ClientApp
- APNS(Apple Push Notification Service)
- 알림관리
- 저장 외 전달 기능을 수행하는 QOS 구성 요소 포함
- 알림을 전달 받을 대상 장치가 오프라인인 경우,
APNs는 제한된 시간동안 알림을 저장, 장치가 온라인 상태로 전환시 전달 - 기기 및 앱 별로 가장 최근의 알림만 저장
- 각 앱 서비스의 서버에서 보내는 각종 알림들을 최신 상태로 하나씩 저장,
장치가 너무 오랫동안 오프라인 상태를 유지하면 저장된 모든 알림을 삭제 - 단순히 알림을 보내고 끝내는 것이 아니라
각 기기의 상태를 확인하여 상태의 따라서 알림을 저장 후에 보내주고 최신의 알림 상태를 관리하는 등의 관리 센터 역할
- 보안관리
- 보안 문제를 해결하기 위해 자체 보안 아키텍처를 통해 원격 알림 안전하게 제어
- Connection trust(연결 신뢰)
- Provider-to-APNs connection trust
- 애플과 계약을 맺은 회사가 소유한 승인된 공급자만 APNs와 연결 및 푸시 알림 전달을 허가, 연결 신뢰 구성
- 푸시알림서버 구현을 하는 백엔드 개발자의 역할
- 공급자 서버는 APNs 간의 Connection trust가 있는지 확인하는 단계 수행
- token-based
- valid authentication key certificate
- certificate-based
- SSL certificate
- token-based
- APNs-to-device connection trust
- 승인된 장치(apple)만 APNs에 연결해서 알림을 받음
- APNs는 각 장치와 connection trust를 자동으로 적용해서 안정성 보장
- Provider-to-APNs connection trust
- Device token trust
- 각 원격 알림에서 end-to-end 작동
- 알림이 Provider와 Device 두 가지 지점 사이에서만 라우팅
- Device Token
- 애플이 특정 장치에 특정 앱에 할당한 고유 식별자를 포함하는 NSData Instance
- 누군가가 탈취하더라도 내용을 알 수 없음, 오직 APNs만 장치 토큰의 내용을 해독가능
- APNs는 여러가지 상황에서 Device token을 새로 발급할 수 있음(앱 재설치, 백업, 운영체제 재설치)
- 디바이스와 앱의 상태가 변경 되었을 때 새로 발급을 해서 항상 고유한 상태를 바라보게 함
- 알림관리
- Firebase Cloud Messaging(FCM)
- 클라우드 메시징 역할
- APNs의 보안 요건을 갖춘 서버를 직접 구축하기 힘들 때,
- ios 클라이언트 개발자로서 서비스와 ios앱 자체에만 집중하고 싶을 때,
- 손 쉽게 원격 알림을 보낼 수 있게 도와주는 도구(Provider 역할)
- 주요 역할
- 원격 알림 메시지 전송
- 사용자에게 표시되는 알림 메시지를 실시간 또는 예약 전송
- 다양한 메시지 타겟팅
- 단일 기기, 기기 그룹, 주제를 구독한 기기
- 발송 메시지 저장, 관리
- 알림 내용, 상태, 플랫폼, 최종 전송 시간, 열람율 관리
- 원격 알림 메시지 전송
- 클라우드 메시징 역할