Setting Up a Remote Notification Server

Panther·2021년 8월 17일
0

https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server

"Generate notifications and push them to user devices."

노티피케이션을 생성하고 사용자 기기로 푸시합니다.

Overview

앱을 사용하고 있는 기기에 작은 양의 데이터를 푸시하기 위해 원격 노티피케이션(푸시 노티피케이션이라고도 알려진)을 사용하시기 바랍니다. 앱이 실행중이지 않을 때에도 데이터를 푸시할 수 있습니다. 앱은 사용자에게 중요한 정보를 제공하기 위해 노티피케이션을 사용합니다. 예를 들어 메시지 서비스는 새 메시지가 도착했을 때 원격 노티피케이션을 보냅니다.

원격 노티피케이션의 전송은 몇 가지 핵심 요소에 관련이 잇습니다.

  • 앱 제공자의 서버, 즉 제공자 서버입니다.
  • 애플 푸시 노티피케이션 서비스(APNs)입니다.
  • 사용자의 기기입니다.
  • 사용자의 기기에서 실행하는 앱입니다.

원격 노티피케이션은 앱 자공자의 서버에서 시작합니다. 사용자에게 어떤 노티피케이션을 보냊리, 언제 보낼지를 결정할 수 있습니다. 노티피케이션을 보낼 때가 되면, 노티피케이션과 사용자의 기기에 대한 고유한 아이덴티파이어를 포함하는 요청을 생성합니다. 이후 사용자이 기기에서 노티키페이션의 전달을 처리하는 APNs에 요청을 전달합니다. 노티피케이션이 받아들여지만 사용자의 기기 운영체제는 모든 사용자 상호작용을 처리하고 앱에 노티피케이션을 전달합니다.

제공자 서버(혹은 서버)를 설정해야 할 필요가 있으며, 사용자의 기기에서 노티피케이션을 처리하기 위해 앱을 설정할 필요가 있습니다. 애플은 그 사이에서 모든 것을 관리하며, 사용자에게 노티피케이션을 보여주는 것까지 포함합니다. 서버와 소통할 수 있으며 필수적인 정보를 제공할 수 있는 앱도 필요합니다. 원격 노티피케이션의 처리 방법에 대한 내용은 Registering Your App with APNs를 보시기 바랍니다.

Registering Your App with APNs
https://developer.apple.com/documentation/usernotifications/registering_your_app_with_apns
https://velog.io/@panther222128/Registering-Your-App-with-APNs

Build Custom Infrastructure for Notifications

원격 노티피케이션 서버 설정은 몇 가지 핵심 작업을 구성합니다. 이 작업을 어떻게 구현하는지는 인프라에 따라 달라집니다. 스스로에게 적합한 기술을 사용하시기 바랍니다.

  • 사용자 기기에서 실행하는 앱의 인스턴스로부터 기기 토큰을 받기 위한 코드를 작성해야 하며, 코드는 이 토큰을 사용자의 계정에 연결시키는 내용도 포함되어야 합니다. Registering Your App with APNs를 보시기 바랍니다.
  • 사용자에게 언제 노티피케이션을 보낼지 결정해야 하며, 노티피케이션 페이로드 생성을 위한 코드를 작성해야 합니다. Generating a Remote Notification을 보시기 바랍니다.
  • HTTP/2 및 TLS를 사용해서 APNs 연결을 관리해야 합니다. Sending Notification Requests to APNs를 보시기 바랍니다.
  • 페이로드를 포함하는 POST 요청 생성을 위한 코드를 작성해야 하며, HTTP/2 연결에 대해 요청을 보내는 코드 작성도 필요합니다. Sending Notification Requests to APNs를 보시기 바랍니다.
  • 토큰 기반 권한에 대해서 주기적으로 토큰을 재생성해야 합니다. Establishing a Token-Based Connection to APNs를 보시기 바랍니다.

Registering Your App with APNs
https://developer.apple.com/documentation/usernotifications/registering_your_app_with_apns
https://velog.io/@panther222128/Registering-Your-App-with-APNs

Generating a Remote Notification
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification
https://velog.io/@panther222128/Generating-a-Remote-Notification

Sending Notification Requests to APNs
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns
https://velog.io/@panther222128/Sending-Notification-Requests-to-APNs

Establishing a Token-Based Connection to APNs
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/establishing_a_token-based_connection_to_apns
https://velog.io/@panther222128/Establishing-a-Token-Based-Connection-to-APNs

Establish a Trusted Connection to APNs

제공자 서버와 APNs의 커뮤니케이션은 보안 연결에서 발생해야 합니다. 해당 연결 생성은 각 서버에 대해 GeoTrust Global CA root certificate (until March 29, 2021) 및 AAA Certificate Services root certificate (starting March 29, 2021) 설치를 요구합니다.

제공자 서버가 macOS에서 실행 중이라면, GeoTrust Global CA root certificate는 기본값으로 키체인에 있습니다. 제공자 서버가 macOS 10.14 혹은 이후 버전에서 작동한다면, AAA Certificate Services root certificate는 기본값으로 키체인에 있습니다. 다른 시스템의 경우 이 인증서를 직접 설치해야 합니다. GeoTrust Root Certificates 웹사이트에서 GeoTrust Global CA root certificate를 다운로드할 수 있습니다. Sectigo KnowledgeBase 웹사이트에서 “AAACertificateServices 5/12/2020”을 다운로드할 수 있습니다.

노티피케이션을 보내려면 제공자 서버는 HTTP/2 및 TLS를 사용해서 APNs와 함께 토큰 기반 혹은 인증서 기반의 신뢰를 설정해야 합니다. 각 기술은 장점과 단점을 갖습니다. 어떤 기술인 최선인지 결정하시기 바랍니다.

  • APNs와 함께 토큰 기반 신뢰를 설정하려면 Establishing a Token-Based Connection to APNs를 보시기 바랍니다.
  • APNs와 함께 인증서 기반 신뢰를 설정하려면 Establishing a Certificate-Based Connection to APNs를 보시기 바랍니다.

Establishing a Token-Based Connection to APNs
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/establishing_a_token-based_connection_to_apns
https://velog.io/@panther222128/Establishing-a-Token-Based-Connection-to-APNs

Establishing a Certificate-Based Connection to APNs
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/establishing_a_certificate-based_connection_to_apns
https://velog.io/@panther222128/Establishing-a-Certificate-Based-Connection-to-APNs

Understand What APNs Provides

APNs는 노티피케이션 전달을 위해, 최선의 사용자 경험을 전달하기 위해 많은 노력을 기울이고 있습니다.

  • APNs는 사용자의 기기에서 인증, 암호화, 영구적 IP 연결을 관리합니다.
  • APNs는 현재 오프라인인 기기에 대한 노티피케이션을 저장할 수 있습니다. 이후 APNs는 기기가 온라인이 되면 저장된 노티피케이션을 전달합니다.
  • APNs는 같은 번들 ID로 노티피케이션을 통합할 수 있습니다.

Topics


Server Tasks

Generating a Remote Notification

JSON 페이로드로 사용자의 기기에 노티피케이션을 전송합니다.

https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification
https://velog.io/@panther222128/Generating-a-Remote-Notification

Sending Notification Requests to APNs

애플 푸시 노티피케이션 서비스(APNs)에 원격 노티피케이션 페이로드 및 기기 토큰 정보를 전송합니다.

https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns
https://velog.io/@panther222128/Sending-Notification-Requests-to-APNs

Handling Notification Responses from APNs

APNs 서버가 반환한 상태 코드에 응답합니다.

https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/handling_notification_responses_from_apns
https://velog.io/@panther222128/Handling-Notification-Responses-from-APNs

Pushing Background Updates to Your App

앱을 깨우고 백그라운드에서 업데이트하는 노티피케이션을 전달합니다.

https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/pushing_background_updates_to_your_app
https://velog.io/@panther222128/Pushing-Background-Updates-to-Your-App


Security

제공자 서버와 APNs 사이에 보안 연결을 생성합니다.

Establishing a Token-Based Connection to APNs

stateless 인증 토큰을 사용해서 애플 푸시 노티피케이션 서비스(APNs)와 커뮤니케이션을 보안상 안전하게 합니다.

https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/establishing_a_token-based_connection_to_apns
https://velog.io/@panther222128/Establishing-a-Token-Based-Connection-to-APNs

Establishing a Certificate-Based Connection to APNs

제공자 서버에 인증서 설치를 통해 애플 푸시 노티피케이션 서비스(APNs)와 커뮤니케이션을 보안상 안전하게 합니다.

https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/establishing_a_certificate-based_connection_to_apns
https://velog.io/@panther222128/Establishing-a-Certificate-Based-Connection-to-APNs


See Also


Remote Notifications

Registering Your App with APNs

애플 푸시 노티피케이션 서비스(APNs)와 커뮤니케이션하고, 앱을 식별하는 고유한 기기 토큰을 받습니다.

https://developer.apple.com/documentation/usernotifications/registering_your_app_with_apns
https://velog.io/@panther222128/Registering-Your-App-with-APNs

Sending Push Notifications Using Command-Line Tools

애플 푸시 노티피케이션 서비스(APNs)에 푸시 노티피케이션을 전송하기 위해 기본적인 macOS 커맨드 라인 툴을 사용합니다.

https://developer.apple.com/documentation/usernotifications/sending_push_notifications_using_command-line_tools
https://velog.io/@panther222128/Sending-Push-Notifications-Using-Command-Line-Tools


0개의 댓글