티스토리 뷰

 

====== 업데이트 ======

 

2018년 초 국내 폰에 적용되기 시작한 안드로이드 8.0 오레오의 백그라운드 제한으로 백그라운드에서의 통신이 불가해졌다.  이로인해 자체서버로 푸시알림을 발신하는 프라이빗 푸시가 불가해졌으며 유실없는 실시간 푸시 지원이 불가해졌다. 2018년 이후 프라이빗 푸시 시장 자체가 소멸한 상태다.

 

영업, 마케팅을 고려하지 않고도 프라이빗 푸시 방식으로 '세계 유일 유실없는 실시간 푸시알림'을 캐치프레이즈로 제품을 출시하자마자 대형 금융권을 중심으로 제품문의가 쇄도하는 시점에 맨붕을 경험하였고 문의고객에게는 본의 아니게 불신을 주게 되었다. 무엇보다 프라이빗 푸시 방식을 기존 푸시 솔루션처럼 퍼블릭 푸시 방식으로 전환하여 힘들게 B2B 시장에 진입해야하는 처지가 되었다.

 

그러나 프라이빗 푸시를 개발하면서 축적된 고속 메시지 처리 원천기술을 바탕으로 타 푸시 솔루션에서 제공하기 어려운  아래의 푸시알림 품질을 제공한다.

1.  실시간으로 정확한 푸시알림 전달, 사용자 수신확인 정보 제공 가능

  - 래셔널아울 서버는 메시지 전달 트래킹 정보를 고속으로 처리하여 실시간으로 정확한 정보 제공 가능

2. 메시지 전달 상황 실시간 모니터링 / 실시간 트래킹 콜백 API 제공

3. 초당 1만 건 푸시 메시지 발신 성능

 

또한 이와 관련한  원천 기술  특허를 2건 취득하였다.

 

 

====== 원문 ======

 

 

푸시 메시지가 뭐야?

 

현재 푸시 서비스는 대부분의 모바일앱에서 알림 용도로 이용되고 있다.  

 

푸시 알림은 스마트폰 이용자에게 앱에서 무언가 사건이 발생했음을 알리는 용도로 이용된다. 대부분의 앱에서는 해당 푸시가 늦게 오던 유실되던 크게 문제가 되지 않은 경우가 많다.

 

그러나 보안 서비스, 헬스 서비스, 금융 서비스, 긴급 재난 서비스 등 유실이 되어서도 늦게 전달되어서도 안되는 모바일 서비스도 존재한다. 

 

유실없는 실시간 푸시 서비스가 필요해

 

본인이 2012년 경 모바일 보안 서비스 개발에 참여했었는데 주요 요구사항이 고객이 폰 분실신고를 하면 빠른 시간 이내 폰에 락을 걸어야 하는 것이었다. 이를 위해서는 유실없는 실시간 푸시 서비스가 필요했다.  

 

그러나 당시 퍼블릭 푸시의 유실율은 30%~40%로 악명이 높았고 유실을 보완하기 위해서는 SMS를 이용하였지만 유실율과 전송속도의 문제를 해결하기에는 역부족이었다. 

 

그럼 시간이 흘러 2018년 3월 현재에는 유실없는 실시간 푸시 서비스가 존재할까? 

 

답변에 앞서 현재 서비스되는 푸시 서비스와 유사 메시징 서비스를 한번 살펴보자.

단, IOS 단말의 경우 APNS이외에 다른 선택의 여지가 없고 또 서비스 품질이 안드로이드에 비해 안정적이어서 논외로 한다.

 

퍼블릭 푸시(public push)

 

구글의 GCM(Google Cloud Messaging)과 FCM(Firebase Cloud Messaging) 애플의 APNS(Apple Push Notification Service)로 대표되는 무료 푸시 알림을 일컫는다.

 

가장 큰 장점은 무료라는 점이다.

 

현재 성능적인 면인 유실율과 전송속도도 많이 좋아져서 일반 모바일 앱에서 푸시 알림으로 이용하는데 큰 불편함이 없다. 

 

시간이 흐르면서 전송율 뿐 아니라 전송속도도 많이 향상되어 유실, 지연에 대한 이슈도 많이 사라진 상태이다.

 

그러나 전송률이 얼마나 되는지 전송속도가 얼마나 되는지 어디에도 통계 정보를 제공하지 않고 전송속도도 편차가 심한 편이다. 다만 온라인을 통해 개발자들의 의견을 종합해 보면 FCM의 경우 전송률이 90%는 확실히 넘을 것 같다는 추정을 할 뿐이다.

 

 

유료 푸시

 

유료 푸시 서비스는 말 그대로 돈을 받고 제공하는 푸시 서비스다. 

 

 

퍼블릭 푸시 기반

 

유료 푸시 서비스 중 대부분은 GCM, FCM 그리고 APNS의 퍼블릭 푸시를 이용한다.

 

즉, 유료 푸시로 메시지를 보내면 그 메시지를 다시 GCM, FCM, APNS로 다시 보내는 방식이다. 

 

해외에서는 Urban Airship, PushWoosh 서비스가 대표적이고 국내는 휴머스온이 대표적인 서비스이다. 2010년초 많은 서비스들이 생겨났지만 퍼블릭 푸시 중 FCM의 등장으로 퍼블릭 푸시의 품질이 향상되면서 다소 시장이 쇠퇴하는 추세다.

 

퍼블릭 푸시를 이용하지 왜 유료 푸시를 이용하나?라는 의문이 들것이다.

 

크게 두 가지 편의성을 제공하기 때문이다.

 

쉬운 푸시 설정

 

퍼블릭 푸시를 이용하면 단말에 따라 APNS 설정, GCM 설정등이 번거롭다. 유료 푸시는 그 과정을 단순화해서 내부적으로 복잡한 절차를 대신한다.

 

그리고 퍼블릭 푸시의 업그레드시 경우에 따라 재설정해야 동작하는 경우가 있는데 이것을 대신하기 때문에 서비스 운영시 신경을 덜 써도 된다.

 

그러나 무료 푸시 중 FCM이 안드로이드와 IOS 모두 지원하게 되고 설정도 비교적 간단하게 되어 편의성 측면의 장점이 퇴색되는 분위기다.

 

전송률 향상

 

이것이 유료 푸시를 이용하는 가장 큰 이유이다. 

 

메시지를 1차적으로 퍼블릭 푸시를 이용해 전달하고 미전달시 퍼블릭 푸시로 반복해서 전달하거나 SMS, MMS를 통해 전달하는 방식을 취한다. SMS/MMS를 이용하는 방식은 문자 가격이 1건당 10원이어서 많은 단말로 발신시에는 비용문제도 고려해야 한다.

 

 

자체 푸시 서버를 이용한 방식

 

아예 퍼블릭 푸시 서비스를 이용하지 않고 자체 푸시 서버를 통해 서비스하는 방식이다.  

 

MQTT

 

MQTT라는 대표적인 메시징 프로토콜은 오픈 소스로도 많은 제품이 나왔고 2010년 전후로 이를 이용하여 유료 메시징 서비스를 시도한 곳도 다수 존재했으나 실제 상용화로 이어진 경우는 극히 적다.

 

대표적으로 IBM은 2000년초 서버시장에서 웹스피어MQ라는 이름으로 메시징 솔루션을 제공하다가 2010년경 스마트폰의 보급으로 단말에 까지 확대하여 제품을 제공하고 있다. 그 외에도 몇 개의 업체들이 존재하나 시장에서 영향력은 감소하는 추세이다.

 

특징은 전송률은 퍼블릭 푸시에 비해서 좋으나 전송속도는 10초 내외로 다소 느리다. 

그리고 IBM의 경우 비싼 가격으로 악명이 높다..

 

자체 프로토콜 

 

대표적인 메시징 프로토콜인 XMPP와 MQTT는 퍼블릭 푸시 및 유료 푸시 서비스에서 많이 이용되고 있다. 

 

자체 프로토콜의 장점은 자유도가 높아 잘만 만들면 최고의 품질을 제공하는 메시징 서비스를 만들수 있다는 것이고 단점은 그 반대의 경우라 하겠다.

한마디로 high risk high return 이다.

 

래셔널아울 서비스가 자체 프로토콜로 개발한 케이스다.  

 

그리고 메시징 서비스 중 해외에 자체 프로토콜 기반 메시징 서비스가 존재하는 것으로 알고 있으나 실시간 푸시를 지원하지는 않는다.

 

 

웹소켓 기반 실시간 메시징 서비스

 

2014년 HTML5과 HTML5 내 표준 기술로 웹소켓이 등장하면서 웹소켓을 이용한 메시징 서비스가 등장하기 시작했다.

 

현재 해외에 10여개 제품이 서비스되고 있다. 아래는 2016년 기준 서비스 목록인데 현재는 가격이 다소 변경되었다. 그리고 2018년 몇몇 신생 서비스들이 추가된 상황이다.

 

 

 

해당 서비스들은 0.5초 내외의 실시간 메시지 전달이 가능하다. 바로 실시간 메시징 서비스(Real time Messaging Service)라는 용어를 탄생하게 한 그래서 래셔널아울에게는 선배들인 셈이다.

 

또 이들의 특징은 메시징 모델이 pub/sub 모델이다는 점이다. 메시징 모델에 대해서는 다음에 한번 다뤄볼만한 주제이다. 

 

이들 서비스들은 푸시 메시지를 지원하지만 퍼블릭 푸시를 이용한다.

 

즉, 단말앱이 포그라운드(Foreground)일 경우 웹소켓을 통한 실시간 데이터를 전달하고 백그라운드(Background)일 경우 퍼블릭 푸시를 이용해서 푸시 메시지를 전달한다. 따라서 푸시 메시지의 품질은 퍼블릭 푸시의 한계를 벗어나지 못한다.

 

그래서... 결론이 뭐야?

 

유실없는 실시간 푸시 서비스가 존재하냐? 란 물음에 답을 하기 위해 현재 시장에 서비스되고 있는 푸시 서비스와 관련 메시징 서비스를 살펴 보았다.

 

유실없는 실시간 푸시 서비스는 

첫째, 실시간 푸시 알림이 가능해야 하고

둘째, 푸시 알림이 유실이 없어야 한다.

 

 

실시간 푸시 알림

 

실시간의 기준을 어떻게 정하느냐는 일단 보류하고 위에서 언급한 서비스들의 메시지 전달 시간을 한번 살펴보자.

 

퍼블릭 푸시 기반 

 - 대부분의 유료 푸시 서비스들이 이용하는 방식

 - 빠르면 3초~4초 늦으면 수분이 소요된다. 즉, 시간 편차가 심하다.

 

MQTT프로토콜 기반의 메시징 서비스

 - 10초 내외

 

웹소켓 기반 실시간 메시징 서비스

 - 단말앱이 포그라운드일 경우에만 실시간 데이터 전달

 - 백그라운드일 경우 퍼블릭 푸시를 이용

 

실시간의 기준을 넉넉하게 1초라고 잡더라도 기존 서비스 중 어떠한 메시징 서비스도 실시간 푸시 알림은 지원하지 않는다.

 

유실없는 푸시 알림

 

해당 물음에 대한 답변은 쉽지 않다. 특히 스타트업에서 벤치마킹으로 이에 대한 답변을 한다는 것은 어쩌면 불가능에 가까울지도 모른다. 어디를 찾아봐도 이에 대한 확실한 답변이 없는데 그 원인은 다음과 같다.

 

- 인터넷에서의 서비스 홍보내용과 실제 서비스 이용시 차이가 나는 경우가 존재

- 푸시 서비스 관리자 콘솔에서 제공하는 메시지 통계와 실제 메시지 전달의 차이가 존재

- 메시지 전달을 현장에서 확인할 수 있는 단말의 제한

- 메시지 전달 현황을 트래킹할 수 있는 방법의 부재

 

그리고 인터넷에서 가장 유명한 개발자 사이트 중 한 곳에서 이에 대한 논의와 현실적인 답변을 참고하면 이해가 더 쉬울지도 모른다.

 

https://stackoverflow.com/questions/27967691/are-android-push-notifications-reliable

 

 

래셔널아울 서비스는?

 

래셔널아울 서비스는 2억건이 넘는 메시지 전송 테스트(유튜브 동영상 참고)와 TTA 성능검증에서 메시지 전송 속도와 전송률에서 공통적으로 99.99%의 전송률과 0.48초의 평균 전송 속도를 기록했다. 

 

앞서 웹소켓 기반 실시간 메시징 서비스들이 단말앱이 포그라운일 경우 0.5초 내외로 메시지를 전달하는 데 반해 래셔널아울은 백그라운드일 경우에도 0.5초 내외의 실시간 푸시 알림을 지원한다.

 

즉, 현재 유일하게 실시간 푸시 알림을 지원하는 서비스가 래셔널아울이다.

 

참고로 래셔널아울 유튜브 채널에 초기 MVP 제품 개발 후 메시지 전송 테스트를 통해 전송률과 전송속도를 시험하는 동영상이 몇편 업로드되어 있다.

 

무료 평가판 운영

 

래셔널아울 무료 평가판은 1년간 최대 500 단말의 동접을 지원한다. 따라서 유료 버전을 이용하지 않더라도 충분히 검증 후 사용할 수 있다.

 

개발 가이드와 샘플 가이드의 활용

 

개발 가이드샘플 가이드를 통해 쉽게 서비스 적용

 

기존 유명한 서비스의 경우 개발 가이드 이외에도 개발자간 커뮤니티를 통해 서비스 적용을 더 쉽게 할 수 있다. 초기 서비스 이용시 그러한 개발자 커뮤니티가 없는 환경이라 최대한 개발가이드 및 샘플 가이드에 신경을 많이 썼다. 그래도 무료 평가판 이용자 중 일부에서는 의도와 다르게 사용하는 경우가 발생하였는데 그럴 경우 support@rationalowl.com 에게 기술 지원을 요청해 주기 바란다. 

 

실시간 트래킹 방안 제공

 

래셔널아울 관리자 콘솔에서는 실시간 모니터링을 제공하여 메시지 전달을 실시간으로 트래킹할 수 있다. 

 - 메시지 전달 현황 실시간 모니터링

 - 단말앱 상태 실시간 모니터링

 - 앱서버 상태 실시간 모니터링

 

이를 통해 메시지 전달 현황뿐 아니라 미전달 메시지에 대해서 어느 단말앱이 왜 메시지를 수신하지 못했는지를 알 수 있다. 이를 통해 서비스 예측 가능성을 향상시킬 수 도 있다.

 

만약 유실없는 실시간 푸시 알림이 필요한 모바일 서비스 개발사가 있다면 세계 유일 실시간 푸시 알림을 지원하는 래셔널아울 단비와 같은 역할을 할 수 있으리라 확신한다.

 

 

 

 

 

 

댓글