모바일 Push Server의 구성

모바일 Push Server의 구성

내가 다니는 회사에서 Push Server 라고 부르는 것은 사실 Push 중계서버를 뜻한다.

Push Server 관련 플로우는 아래와 같다.

[모바일기기 -> 제품서버 -> Push 중계서버(Node.js) -> FCM 또는 APNS -> 모바일기기]

* FCM은 Firebase Cloud Messaging 의 약자다. 구글의 안드로이드용 Push 서버라고 할 수 있다. 원래 이름은 GCM (Google Cloud Messaging)이었다. 이후 구글이 파이어베이스를 인수하면서 기존 GCM 이 Deprecated[디프리케이티드]되고 FCM 으로 이름이 변경되었다. FCM 은 안드로이드, iOS, Mobile Web 등의 플랫폼들을 커버한다.

* APNS는 Apple Push Notification Service 의 약자다. 애플의 iOS용 Push 서버라고 할 수 있다.

* 이외에 private 서버가 존재한다. FCM이나 APNS가 아닌 자체 개발한 Push 서버를 뜻한다. 예를 들어 국내에는 Morpheus PUSH[모피어스 푸시]가 있다.

1. 모바일 사용자가 어떤 앱을 켜서 기능을 사용하면, 아이디 등 데이터가 제품서버를 거쳐 Push 중계서버까지 도달한다.

2. Push 중계서버는 안드로이드일 경우 FCM 으로, 아이폰일 경우 APNS 로 (1)토큰 과 (2) 메시지를 보낸다. 토큰은 MariaDB/MongoDB 등으로부터 select해온다.

3. 해당 Push 서버(FCM 또는 APNS)는 토큰을 까서 기기의 정보를 알아내고, 해당 기기로 메시지를 Notify 해준다.

물론 Notify 를 받기 위해서는 해당 앱에 Receive 관련 메서드가 구현되어 있어야 한다.