안드로이드, iOS 푸시 기능 구현
푸시?
위키피디아에서 말하는 푸시는 인터넷 상에서 어떤 전송 요청이 중앙 서버에서 시작되는 정보 전달 방식이라 설명하고 있다. 푸시는 전송 요청이 클라이언트에서 시작되는 풀 기법과 대비되는 개념이라 할 수 있다. 푸시 기법은 클라이언트가 어떠한 이벤트를 실행 함에 따라 서버단에서 그 이벤트에 대한 정보 등을 자동으로 제공해주는 서비스라고 할 수 있으며, 풀 기법은 이와 반대로 사용자가 직접 필요한 정보를 서버쪽에 요청하여 해당하는 정보 등을 제공받는 형식이라고 말할 수 있다.
안드로이드와 iOS 모두 푸시 기능을 제공하고 있다.
각각 APNs, GCM, FCM을 사용하여 해당기능을 지원하는데, 세가지 기능 모두 푸시 서버를 구성하여야 한다.
APNs?
Apple Push Notification Service의 약자로 애플의 푸시 알림 서비스를 뜻하고, GCM과 비슷한 맥락으로 개발자가 제작한 응용프로그램이 새 데이터가 도착하면 데이터를 모니터링하면서 보안 채널을 통해 APNs와 공급자를 연결하여 대상 장치에 알림을 보내는 서비스이다. GCM의 동작 방식과 비슷하게 프로바이더에서 APNs로 알림에 대한 요청을 하게 되면 APNs의 등록 된 토큰을 통해 해당 애플기기에 푸시 알림메세지를 전달하는 방식으로 동작하게 된다.
GCM?
※ 공식 가이드 : https://firebase.google.com/docs/cloud-messaging/
위키피디아에서 말하는 푸시는 인터넷 상에서 어떤 전송 요청이 중앙 서버에서 시작되는 정보 전달 방식이라 설명하고 있다. 푸시는 전송 요청이 클라이언트에서 시작되는 풀 기법과 대비되는 개념이라 할 수 있다. 푸시 기법은 클라이언트가 어떠한 이벤트를 실행 함에 따라 서버단에서 그 이벤트에 대한 정보 등을 자동으로 제공해주는 서비스라고 할 수 있으며, 풀 기법은 이와 반대로 사용자가 직접 필요한 정보를 서버쪽에 요청하여 해당하는 정보 등을 제공받는 형식이라고 말할 수 있다.
안드로이드와 iOS 모두 푸시 기능을 제공하고 있다.
각각 APNs, GCM, FCM을 사용하여 해당기능을 지원하는데, 세가지 기능 모두 푸시 서버를 구성하여야 한다.
APNs?
Apple Push Notification Service의 약자로 애플의 푸시 알림 서비스를 뜻하고, GCM과 비슷한 맥락으로 개발자가 제작한 응용프로그램이 새 데이터가 도착하면 데이터를 모니터링하면서 보안 채널을 통해 APNs와 공급자를 연결하여 대상 장치에 알림을 보내는 서비스이다. GCM의 동작 방식과 비슷하게 프로바이더에서 APNs로 알림에 대한 요청을 하게 되면 APNs의 등록 된 토큰을 통해 해당 애플기기에 푸시 알림메세지를 전달하는 방식으로 동작하게 된다.
※ 구성 방법 참조 : http://throughkim.kr/2016/12/27/ios-notification/
GCM?
Google Cloud Messaging의 약자로 개발자에게 서버에서 안드로이드 디바이스의 어플리케이션으로 데이터를 전송하는 것을 도와주는 서비스. 기존에는 C2DM이었으나 서비스를 종료하고 GCM으로 변경되었다.
C2DM → GCM → FCM?
FireBase Cloud Messaging의 약자로 FCM은 GCM에 비하여 사용되는 클래스의 갯수도 적고, 적용법도 쉬워서 FCM으로 시작하거나, FCM으로 업그레이드 하는 개발자가 늘어나고 있다. 그리고 FCM는 공식적으로 안드로이드와 iOS 양대 운영체제를 지원하고 있다. iOS 디바이스에 대한 지원은 FCM 연결 서버가 APNS(Apple Push Notification Service)를 경유하는 방식으로 이루어 진다. 하지만 개발과정과 배포시점에서 사용하는 인증서(APNs SSL Certificates)가 다르고 소스와 설정이 변경되는 점이 번거로운 편이다
※ 구성 방법 참조 : http://webagency.ogoga.com/act-article/article=52
근데 생각해 보니 푸시를 사용할 필요가 없네?
현재 개발하는 서비스는 꼭 푸시 형식을 취하는 것이 아니라 특정 시간에만 반응하는 Notification을 사용해서 구성해도 기능을 구현할 수 있다. iOS의 경우 Unity 자체에서 로컬 알람 기능을 제공해주며, 안드로이드는 직접 구현할 수도 있지만, asset 스토에서 플러그인을 붙여서 사용하는게 간편하다.
※ 구성 방법 참조 #1 : http://bhattakash.com/how-to-send-local-push-notification-in-unity-3d/
※ 구성 방법 참조 #2 : https://m.blog.naver.com/simtt/220851899973
댓글
댓글 쓰기