누군가에게 알려주기 보다는 나 스스로 정리 하며 언젠가 다시 사용할 때를 대비하는 글을 작성할것이다.
앱을 개발을 하게되면 push를 띄우게 하는 작업은 거의 모든 앱에 탑재가 되어있다.
그게 어떠한 방식을 사용하든지 말이다.
당연히 나도 사용을 했지만 100% 완벽하게 이해하고 숙지한 상태에서 했다기 보다는 구글링과 블로그를 봐가면서 Copy & Paste 로 구현을 했었다.
그럴바에는 남들의 자료보다 내 블로그에서 Copy & Paste 를 하는게 빠르고 편할것 같아서 이렇게 정리를 해보고자 한다.
Push 기능은 거진 모든 앱에 다 기본적으로 탑재가 되어있는것을 경험을 통해서 알 수 있다.
그렇다면 왜? 이 기능이 많이 사용이 되는지 그 이유에 대해서 알아볼 필요가 있다.
Push 가 언제, 왜 나타나는지를 생각해보면 그 이유를 쉽게 유추 할 수 있다.
즉, 항상 앱에서 사용자에게 중요한 무언가를 알리고 싶을때 사용한다고 보면 된다.
푸시작업을 하게 되면 1. 메세지 표시, 2. 사운드 재생, 3. 뱃지 설정 의 작업을 할 수 있다.
그렇다면 Push가 동작되는 방식을 알아봐야 하는데 2개를 생각하면 된다.
Local Push의 경우에는 앱이 직접 보내는 푸시라고 생각하면 된다.
APNs 는 서버에서 보내는 푸시라고 생각하면 된다.
(파이어 베이스의 FCM 도 결국에는 구글이 보내는 APNs이다)
APNs 의 경우에는 서버에서 보내기에 앱을 사용하지 않아도 알림을 받을 수 있다.
그러다보니 간단한 앱이 아니고서는 APNs로 대부분 구성한다.
APNs == Apple Push Notification service
서드 파티 개발자가 앱에 푸시를 보낼 수 있게 애플에서 만든 서비스이다.
여기서 서드 파티라 하면 앞서 말했던 서버를 칭한다.
|My App| <--- |APNs| <---- |Server|
서버에서 바로 앱으로 보내는 방식이 아니라 APNs가 둘 사이에 껴서 구름다리 역할을 해주는것이라고 생각하면 된다.
설명
App이 APNs에 Device Token을 요청
APNs가 App에게 Device Token 전송
App이 Server에게 Device Token 전송
당연 틀린 부분 지적은 감사하나 비난은 정중하게 사양하겠다.