알림 허브 개요

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

알림 허브를 사용하면 다양한 PNS(플랫폼 알림 시스템)의 세부 정보를 추상화하여 개인 설정된 플랫폼 간 푸시 알림을 손쉽게 보낼 수 있습니다. 한 번의 API 호출로 어떤 디바이스에서나 개별 사용자 또는 수백만 명의 사용자가 포함된 전체 고객 세그먼트를 대상으로 지정할 수 있습니다.

엔터프라이즈 시나리오 및 소비자 시나리오 모두에서 Notification Hubs를 사용할 수 있습니다. 예를 들어:

  • 수백만 명에게 대기 시간이 짧은 속보 알림을 보냅니다. Notification Hubs는 모든 Windows 및 Windows Phone 디바이스에 미리 설치되어 있는 Bing 애플리케이션을 구동합니다.

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

  • 사용자 또는 그룹에 스포츠/금융/게임 애플리케이션에 대한 이벤트 알림을 보냅니다.

  • 새 메시지/전자 메일과 같은 엔터프라이즈 이벤트를 사용자 및 잠재 고객에게 알립니다.

  • 다단계 인증에 필요한 일회용 암호를 보냅니다.

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

스마트폰과 태블릿에서는 이벤트가 발생한 경우 사용자에게 "알릴" 수 있습니다. 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가 핸들에 의해 지정된 디바이스로 알림을 전달합니다.

Notification Hubs

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

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

  • 크기 조정. 이 인프라를 확장하는 것은 두 가지 측면에서 이루어집니다.

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

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

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

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

Notification Hubs 사용

Notification Hubs는 한 가지 주요 복잡성을 제거합니다. 푸시 알림의 문제를 관리할 필요가 없습니다. 푸시 알림 문제를 관리할 필요 없이 알림 허브를 사용할 수 있습니다. Notification Hubs는 완전한 다중 플랫폼, 규모 확장 푸시 알림 인프라를 사용하여 앱 백 엔드에서 실행되는 푸시 관련 코드를 상당히 줄여 줍니다. Notification Hubs는 푸시 인프라의 모든 기능을 구현합니다. 아래 그림에 표시된 것처럼 디바이스는 PNS 핸들을 등록하는 것만 담당하며, 백 엔드는 사용자 또는 관심 그룹으로 플랫폼 독립적 메시지를 보내는 것을 담당합니다.

Notification Hubs

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

  • 다중 플랫폼:

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

    • 플랫폼별 프로토콜이 없습니다. 애플리케이션은 Notification Hubs하고만 통신합니다.

    • 디바이스 핸들을 관리합니다. Notification Hubs는 PNS의 핸들 레지스트리 및 피드백을 유지 관리합니다.

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

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

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

    • 브로드캐스트: 한 번의 API 호출을 통해 수백만 대의 디바이스로 거의 동시에 브로드캐스트할 수 있습니다.

    • 유니캐스트/멀티캐스트: 모든 디바이스를 포함하여 개별 사용자를 나타내는 태그로 푸시 또는 더 넓은 그룹; 예를 들어 별도의 폼 팩터(태블릿 및 휴대폰)를 들 수 있습니다.

    • 구분: 태그 식으로 정의된 복잡한 세그먼트로 푸시합니다(예: 양키스 다음 뉴욕의 디바이스).

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

  • 보안. SAS(Shared Access Secret) 또는 페더레이션 인증입니다.

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

요약

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

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

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

추가 리소스

고객이 Notification Hubs를 사용하는 방법

Notification Hubs 자습서 및 가이드

알림 허브 시작 자습서

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

Microsoft.WindowsAzure.Messaging.NotificationHub

Microsoft.ServiceBus.Notifications