알림 허브 개요

업데이트 날짜: 2015년 6월

Azure 알림 허브는 원하는 백 엔드(클라우드 또는 온-프레미스)에서 원하는 모바일 플랫폼으로 모바일 푸시 알림을 보낼 수 있는 사용하기 쉬운 인프라를 제공합니다.

알림 허브를 사용하면 다양한 PNS(플랫폼 알림 시스템)의 세부 정보를 추상화하여 개인 설정된 플랫폼 간 푸시 알림을 손쉽게 보낼 수 있습니다. 단일 API 호출을 통해 모든 장치에서 개별 사용자 또는 수백 만 명의 사용자가 포함된 전체 대상 그룹 세그먼트를 대상으로 지정할 수 있습니다.

알림 허브는 엔터프라이즈 시나리오와 소비자 시나리오에 모두 사용할 수 있습니다. 예를 들면 다음과 같습니다.

  • 짧은 대기 시간으로 수백만 명에게 최신 알림을 보냅니다. 알림 허브는 모든 Windows 및 Windows Phone 장치에 미리 설치되어 있는 Bing 응용 프로그램을 구동합니다.

  • 사용자 세그먼트에 위치 기반 쿠폰을 보냅니다.

  • 스포츠/금융/게임 응용 프로그램에 대한 이벤트 알림을 사용자 또는 그룹에 보냅니다.

  • 새 메시지/메일 및 판매 안내와 같은 엔터프라이즈 이벤트를 사용자에게 알립니다.

  • Multi-Factor Authentication에 필요한 일회용 암호를 보냅니다.

푸시 알림이란 무엇인가요?

스마트폰과 태블릿에서는 이벤트가 발생한 경우 사용자에게 "알릴" 수 있습니다. Windows 스토어 및 Windows Phone 응용 프로그램에서는 알림이 알림(화면 맨 위에 나타나는 모덜리스 창) 또는 시작 화면의 타일 업데이트가 됩니다. 마찬가지로 Android 및 Apple iOS 장치에서는 알림이 화면 맨 위에서 쉽게 액세스할 수 있는 알림 패널에 그룹화되어 나타납니다.

푸시 알림을 사용하면 장치의 앱이 활성 상태가 아닌 경우에도 앱 백 엔드에서 새 정보를 모바일 장치에 표시할 수 있습니다.

푸시 알림은 PNS(플랫폼 알림 시스템)라는 플랫폼별 인프라를 통해 제공됩니다. PNS는 간단한 기능을 제공(즉, 브로드캐스트 또는 개인 설정을 지원하지 않음)하고 플랫폼별 PNS에는 공통 인터페이스가 없습니다. 예를 들어 Windows 스토어 앱으로 알림을 보내려면 개발자가 WNS(Windows 알림 서비스)에 연결해야 합니다. iOS 장치로 알림을 보내려면 동일한 개발자가 APNS(Apple 푸시 알림 서비스)에 연결하고 두 번째로 메시지를 보냅니다. 프로세스는 Windows Phone 8 및 Android 앱과 유사합니다.

상위 수준에서는 모든 플랫폼 알림 시스템이 동일한 패턴을 따릅니다.

  1. 클라이언트 응용 프로그램에서 PNS에 연결하여 해당 핸들을 검색합니다. 핸들 형식은 시스템에 따라 달라집니다. WNS의 경우 URI 또는 "알림 채널"이고, APNS의 경우 토큰입니다.

  2. 클라이언트 응용 프로그램은 나중에 사용하기 위해 이 핸들을 앱 백 엔드에 저장합니다. WNS의 경우 백 엔드는 일반적으로 클라우드 서비스이고, Apple의 경우는 시스템을 공급자라고 합니다.

  3. 푸시 알림을 보내려면 앱 백 엔드에서 핸들을 사용하여 PNS에 연결하고 특정 클라이언트 응용 프로그램의 인스턴스를 대상으로 합니다.

  4. PNS는 핸들에 지정된 장치로 알림을 전달합니다.

알림 허브

이 흐름을 구현하는 데 필요한 인프라는 매우 복잡하며 앱의 기본 비즈니스 논리와 대부분 관련이 없습니다. 주문형 푸시 인프라를 작성할 때의 몇 가지 문제는 다음과 같습니다.

  • 플랫폼 종속성. 다른 플랫폼의 장치로 알림을 보내려면 백 엔드에서 여러 인터페이스를 코딩해야 합니다. 하위 수준 정보가 다를 뿐만 아니라 알림(타일, 알림 또는 배지)의 표현도 플랫폼에 따라 달라집니다. 이러한 차이로 인해 복잡하고 유지 관리하기 어려운 백 엔드 코드가 생성됩니다.

  • 크기 조정. 이 인프라의 크기 조정에는 다음과 같은 두 가지 측면이 있습니다.

    • PNS 지침에 따라 장치 토큰은 앱이 시작될 때마다 새로 고쳐야 합니다. 따라서 단지 장치 토큰을 최신 상태로 유지하기 위해 많은 양의 트래픽과 이에 따른 데이터베이스 액세스가 발생합니다. 장치 수가 증가(백만 개까지 가능)하면 이 인프라를 만들고 유지 관리하는 비용이 늘어납니다.

    • 대부분의 PNS는 여러 장치로 브로드캐스트를 지원하지 않습니다. 따라서 백만 개의 장치로 브로드캐스트하면 PNS를 수백만 번 호출하게 됩니다. 일반적으로 앱 개발자는 총 대기 시간을 낮게 유지하려고 하므로 이러한 요청의 크기를 조정할 수 있는 기능은 매우 중요합니다. 예를 들어 메시지를 마지막으로 받은 장치가 알림이 전송되고 30분 후에 알림을 받아서는 안 됩니다. 그러면 대부분의 경우 푸시 알림을 사용하는 목적이 의미가 없어지기 때문입니다.

  • 라우팅. PNS는 장치로 메시지를 보내는 방법을 제공합니다. 그러나 대부분의 앱에서 알림은 사용자 및/또는 관심 그룹(예: 특정 고객 계정에 할당된 모든 직원)을 대상으로 합니다. 따라서 알림을 올바른 장치로 라우팅하려면 앱 백 엔드는 관심 그룹을 장치 토큰에 연결하는 레지스트리를 유지 관리해야 합니다. 이 오버헤드는 응용 프로그램의 총 출시 시간 및 유지 관리 비용에 추가됩니다.

  • 모니터링 및 원격 분석. 수백만 개 알림의 결과 추적 및 집계는 중요하며, 일반적으로 푸시 알림을 사용하는 솔루션의 중요한 구성 요소입니다.

알림 허브 사용

알림 허브를 사용하면 주요 복잡성 하나가 제거됩니다. 즉, 푸시 알림의 문제를 관리할 필요가 없습니다. 대신 알림 허브를 사용할 수 있습니다. 알림 허브는 확장된 전체 다중 플랫폼 푸시 알림 인프라를 사용하므로 앱 백 엔드에서 실행되는 푸시 관련 코드가 현저하게 줄어듭니다. 알림 허브는 푸시 인프라의 모든 기능을 구현합니다. 다음 그림과 같이 장치는 PNS 핸들 등록만 담당하고 백 엔드는 플랫폼 독립적인 메시지를 사용자나 관심 그룹에 보내는 기능을 담당합니다.

알림 허브

알림 허브는 푸시 인프라에 다음과 같은 장점을 제공합니다.

  • 다중 플랫폼:

    • 주요 모바일 플랫폼(Windows/Windows Phone, iOS, Android)을 모두 지원합니다.

    • 플랫폼별 프로토콜이 없습니다. 응용 프로그램은 알림 허브와 통신만 합니다.

    • 장치 핸들 관리. 알림 허브는 PNS에서 핸들 레지스트리와 피드백을 유지 관리합니다.

  • 모든 백 엔드에서 작동. 클라우드 또는 온-프레미스, .NET, PHP, Java, 노드 등에서 작동합니다.

  • 크기 조정. 알림 허브는 재설계하거나 분할할 필요 없이 수백만 개의 장치로 확장됩니다. 모든 지역에서 사용할 수 있습니다.

  • 풍부한 배달 패턴 집합. 논리 사용자나 관심 그룹을 나타내는 태그와 장치를 연결합니다.

    • 브로드캐스트: 단일 API 호출을 통해 수백만 개의 장치로 거의 동시에 브로드캐스트할 수 있습니다.

    • 유니캐스트/멀티캐스트: 모든 장치를 포함한 개별 사용자나 별도의 폼 팩터(태블릿 및 휴대폰)와 같은 더 광범위한 그룹을 나타내는 태그로 푸시합니다.

    • 구분: 태그 식에 정의된 복잡한 세그먼트로 푸시합니다(예: Yankees 다음에 오는 New York의 장치).

  • 개인 설정. 각 장치에는 하나 이상의 템플릿이 있어 백 엔드 코드에 영향을 주지 않고 장치별로 지역화 및 개인 설정을 수행할 수 있습니다.

  • 보안. SAS(공유 액세스 암호) 또는 페더레이션 인증을 사용합니다.

  • 다양한 원격 분석. 포털에서 프로그래밍 방식으로 사용할 수 있습니다.

요약

  • 푸시 알림은 소비자 앱에 대한 사용자 참여와 엔터프라이즈 앱의 유용성을 향상시키면서 최신 응용 프로그램의 중요한 부분이 되었습니다.

  • 알림 허브는 사용하기 쉽고 확장된 다중 플랫폼 푸시 인프라를 제공하여 앱 백 엔드 코드의 코딩 및 유지 관리 작업을 현저하게 줄입니다.

  • 모든 백 엔드(클라우드 또는 온-프레미스)에서 알림 허브를 사용하여 모든 주요 모바일 플랫폼(Windows/Windows Phone, iOS, Android)으로 푸시 알림을 보낼 수 있습니다.

추가 리소스

고객이 알림 허브를 사용하는 방법

알림 허브 자습서 및 가이드

알림 허브 시작 자습서

알림 허브에 대한 .NET 관리되는 API 참조는 여기에서 확인할 수 있습니다.

Microsoft.WindowsAzure.Messaging.NotificationHub

Microsoft.ServiceBus.Notifications