Azure Notification Hubs 는 모든 백 엔드(클라우드 또는 온-프레미스)에서 모든 플랫폼(iOS, Android, Windows 등)에 알림을 보낼 수 있는 사용하기 쉽고 확장된 푸시 엔진을 제공합니다. Notification Hubs는 엔터프라이즈 및 소비자 시나리오 모두에서 작동합니다. 다음은 몇 가지 예제 시나리오입니다.
- 짧은 대기 시간으로 수백만에 속보 알림을 보냅니다.
- 관심 있는 사용자 세그먼트에 위치 기반 쿠폰을 보냅니다.
- 미디어/스포츠/금융/게임 애플리케이션에 대한 사용자 또는 그룹에 이벤트 관련 알림을 보냅니다.
- 홍보 콘텐츠를 애플리케이션에 푸시하여 고객을 참여시키고 마케팅합니다.
- 사용자에게 새 메시지 및 작업 항목과 같은 엔터프라이즈 이벤트를 알립니다.
- 다단계 인증을 위한 코드를 보냅니다.
비고
Firebase Cloud Messaging 사용 중지 및 마이그레이션 단계에 대한 자세한 내용은 Google Firebase Cloud Messaging 마이그레이션을 참조하세요.
푸시 알림이란?
푸시 알림은 일반적으로 모바일 디바이스의 팝업 또는 대화 상자에서 모바일 앱 사용자에게 특정 원하는 정보를 알리는 앱-사용자 간 통신의 한 형태입니다. 사용자는 일반적으로 메시지를 보거나 해제하도록 선택합니다. 전자를 선택하면 알림을 전달한 모바일 애플리케이션이 열립니다. 일부 알림은 조용하게, 즉 앱이 처리하고 무엇을 할지 결정할 수 있도록 백그라운드에서 전달됩니다.
푸시 알림은 앱 참여 및 사용량이 증가하는 소비자 앱과 up-to-date 비즈니스 정보를 전달하는 엔터프라이즈 앱에 매우 중요합니다. 모바일 디바이스에 에너지 효율이 뛰어나고, 알림 보낸 사람에게 유연하며, 해당 애플리케이션이 활성화되지 않은 경우 사용할 수 있기 때문에 앱-사용자 간 통신이 가장 좋습니다.
비고
Azure Notification Hubs는 VOIP(Voice Over Internet Protocol) 푸시 알림을 공식적으로 지원하지 않습니다. 그러나 이 문서에서는 Azure Notification Hubs를 통해 APNS VOIP 알림을 사용하는 방법을 설명 합니다.
인기 있는 몇 가지 플랫폼에 대한 푸시 알림에 대한 자세한 내용은 다음 항목을 참조하세요.
푸시 알림은 어떻게 작동합니까?
푸시 알림은 PNS( 플랫폼 알림 시스템 )라는 플랫폼별 인프라를 통해 전달됩니다. 제공된 핸들을 사용하여 디바이스에 메시지를 전달하는 기본 푸시 기능을 제공하며 공통 인터페이스가 없습니다. Android, iOS 및 Windows 버전의 앱에서 모든 고객에게 알림을 보내려면 개발자는 APNS(Apple Push Notification Service), FCM(Firebase Cloud Messaging) 및 WNS(Windows Notification Service)와 별도로 작업해야 합니다.
높은 수준에서 푸시가 작동하는 방법은 다음과 같습니다.
- 애플리케이션은 알림을 수신하려고 하므로 앱이 실행 중인 대상 플랫폼의 PNS에 연결하고 고유하고 임시 푸시 핸들을 요청합니다. 핸들 형식은 시스템에 따라 달라집니다(예: APNS가 토큰을 사용하는 동안 WNS는 URI를 사용).
- 클라이언트 앱은 이 핸들을 앱 백 엔드 또는 공급자에 저장합니다.
- 푸시 알림을 보내기 위해 앱 백 엔드는 핸들을 사용하여 PNS에 연결하여 특정 클라이언트 앱을 대상으로 합니다.
- PNS는 핸들에 지정된 디바이스에 알림을 전달합니다.
푸시 알림의 과제
PNS는 강력합니다. 그러나 분할된 사용자에게 푸시 알림을 브로드캐스트하는 것과 같은 일반적인 푸시 알림 시나리오를 구현하기 위해 앱 개발자에게 많은 작업을 맡깁니다.
푸시 알림을 보내려면 애플리케이션의 주요 비즈니스 논리와 관련이 없는 복잡한 인프라가 필요합니다. 인프라 문제 중 일부는 다음과 같습니다.
-
플랫폼 종속성
- 백 엔드에는 PNS가 통합되지 않으므로 다양한 플랫폼의 디바이스에 알림을 보내기 위해 복잡하고 유지 관리하기 어려운 플랫폼 종속 논리가 필요합니다.
-
스케일
- PNS 지침에 따라 모든 앱 시작 시 디바이스 토큰을 새로 고쳐야 합니다. 백엔드는 토큰 up-to를 최신 상태로 유지하기 위해 많은 양의 트래픽과 데이터베이스 접근을 처리합니다. 디바이스 수가 수백, 수천 또는 수백만 대까지 증가하면 이 인프라를 만들고 유지 관리하는 데 드는 비용이 엄청납니다.
- 대부분의 PNS는 여러 디바이스로의 브로드캐스트를 지원하지 않습니다. 백만 개의 디바이스에 대한 간단한 브로드캐스트는 PNS에 백만 건의 호출을 생성합니다. 짧은 대기 시간으로 이 양의 트래픽 크기를 조정하는 것은 매우 중요합니다.
-
라우팅
- PNS는 디바이스에 메시지를 보내는 방법을 제공하지만 대부분의 앱 알림은 사용자 또는 관심 그룹을 대상으로 합니다. 백 엔드는 디바이스를 관심 그룹, 사용자, 속성 등과 연결하기 위해 레지스트리를 유지 관리해야 합니다. 이러한 오버헤드로 인해 앱의 시장 및 유지 관리 비용이 추가됩니다.
Azure Notification Hubs를 사용하는 이유는 무엇인가요?
Notification Hubs는 앱 백 엔드에서 직접 푸시 알림을 보내는 것과 관련된 모든 복잡성을 제거합니다. 다중 플랫폼의 확장된 푸시 알림 인프라는 푸시 관련 코딩을 줄이고 백 엔드를 간소화합니다. Notification Hubs를 사용하면 디바이스는 허브에 PNS 핸들을 등록할 책임이 있으며 백 엔드는 다음 그림과 같이 사용자 또는 관심 그룹에 메시지를 보냅니다.
Notification Hubs는 다음과 같은 장점이 있는 즉시 사용할 수 있는 푸시 엔진입니다.
-
플랫폼 간
- 모든 주요 푸시 플랫폼에 대한 지원.
- 플랫폼별 작업 없이 플랫폼별 또는 플랫폼 독립적 형식으로 모든 플랫폼에 푸시할 수 있는 공통 인터페이스입니다.
- 한 곳에서 디바이스 핸들 관리
-
백엔드 간 통합
- 클라우드 또는 온-프레미스.
- .NET, Node.js, Java, Python 등
-
다양한 배달 패턴 집합
- 하나 이상의 플랫폼으로 브로드캐스트: 단일 API 호출을 사용하여 플랫폼 간에 수백만 개의 디바이스에 즉시 브로드캐스트할 수 있습니다.
- 디바이스로 푸시: 개별 디바이스에 대한 알림을 대상으로 지정할 수 있습니다.
- 사용자에게 푸시: 태그 및 템플릿을 사용하면 사용자에 대한 모든 플랫폼 간 디바이스에 연결할 수 있습니다.
- 동적 태그로 세그먼트에 푸시: 태그 기능을 사용하면 필요에 따라 디바이스를 세분화하고 푸시할 수 있습니다. 이를 통해 특정 세그먼트로 보내거나 세그먼트 간의 조건식(예: 활성 상태이면서 시애틀에 거주하며, 새 사용자는 아닌 경우)를 표현하여 보낼 수 있습니다. 게시-구독으로 제한되는 대신 언제 어디서나 디바이스 태그를 업데이트할 수 있습니다.
- 지역화된 푸시: 템플릿 기능은 백 엔드 코드에 영향을 주지 않고 지역화를 달성하는 데 도움이 됩니다.
- 자동 푸시: 디바이스에 자동 알림을 보내고 특정 끌어오기 또는 작업을 완료하도록 트리거하여 푸시 투 풀 패턴을 사용하도록 설정할 수 있습니다.
- 예약된 푸시: 언제든지 알림을 보내도록 예약할 수 있습니다.
- 직접 푸시: Notification Hubs 서비스에 디바이스 등록을 건너뛰고 디바이스 핸들 목록에 직접 일괄 푸시할 수 있습니다.
- 개인 설정된 푸시: 디바이스 푸시 변수를 사용하면 사용자 지정된 키-값 쌍을 사용하여 디바이스별 개인 설정된 푸시 알림을 보낼 수 있습니다.
-
확장성
- 다시 설계하거나 디바이스 분할을 수행하지 않고 수백만 개의 디바이스에 빠른 메시지를 보냅니다.
-
보안
- SAS(공유 액세스 비밀) 또는 페더레이션 인증
다음 단계
자습서: 모바일 애플리케이션에 알림 푸시를 수행하여 알림 허브 만들기 및 사용을 시작합니다.