OS/iOS

[iOS] APNs 설정을 통한 푸시 알림

Dev.Congsik 2024. 11. 11. 17:42
728x90

iOS 푸시 알림은 아이폰 사용자에게 중요한 정보를 앱 외부에서도 전달할 수 있도록 해 주는 시스템입니다.

푸시 알림을 구현하려면 주로 APNs(Apple Push Notification service)를 활용해야 하며, 전체 과정은 다음과 같은 주요 단계로 구성됩니다.

 

1. APNs 설정 및 인증

Apple의 APNs를 사용하기 위해서는 개발자 계정과 함께 앱의 APNs 인증서를 설정해야 합니다.

  • APNs 인증서 생성: Apple Developer Console에서 앱의 Push Notification 기능을 활성화하고 APNs 인증서를 생성합니다.
  • 인증서 또는 키 다운로드: 생성된 인증서나 키는 서버에 업로드하여 APNs에 접속할 수 있게 준비합니다.

 

2. 기기 등록 (Device Registration)

앱이 처음 실행될 때, 푸시 알림을 수신할 수 있도록 사용자의 허가를 받아야 합니다.

  • 사용자 권한 요청: UNUserNotificationCenter의 requestAuthorization 메서드를 통해 사용자에게 알림 권한을 요청합니다.
  • APNs 토큰 요청: 사용자가 푸시 알림 권한을 허용하면, APNs로부터 고유한 디바이스 토큰을 발급받습니다.
  • 디바이스 토큰 전송: 이 토큰을 서버로 전송하여 해당 기기를 식별하고, 나중에 푸시 알림을 보낼 때 사용합니다.

 

3. 푸시 알림 전송

서버에서 APNs에 푸시 알림을 요청하면, APNs는 해당 기기로 푸시 알림을 전송합니다.

  • 서버 요청: 서버는 APNs의 엔드포인트로 디바이스 토큰과 알림 메시지를 포함하여 HTTP/2 요청을 보냅니다.
  • 페이로드 구성: APNs로 보내는 페이로드에는 제목, 본문, 배지 숫자, 사운드 등의 알림 정보가 포함됩니다. 또한 알림에 필요한 카테고리액션 버튼 등을 추가로 설정할 수도 있습니다.
  • APNs 전송: APNs는 해당 페이로드를 적절하게 구성하여 디바이스로 전달합니다.

 

4. iOS 기기에서 푸시 알림 수신 및 처리

iOS 기기가 APNs로부터 푸시 알림을 수신하면, 앱이 실행 중인지에 따라 푸시 알림을 다르게 처리합니다.

  • 포그라운드에서 알림 수신: 앱이 실행 중인 경우에는 기본적으로 푸시 알림이 표시되지 않지만, UNUserNotificationCenterDelegate를 통해 직접 알림을 처리할 수 있습니다.
  • 백그라운드 또는 종료 상태에서 수신: 앱이 백그라운드에 있거나 종료된 경우, iOS가 자동으로 푸시 알림을 화면에 표시합니다.
  • 사용자 인터랙션: 사용자가 푸시 알림을 터치하거나 상호작용할 경우, 앱에서 알림과 관련된 작업을 수행할 수 있습니다.

 

추가 기능

iOS 푸시 알림에는 다양한 고급 기능이 있습니다.

  • 리치 푸시 알림: 이미지, 비디오 등 멀티미디어 콘텐츠를 추가할 수 있습니다.
  • 인앱 알림: 사용자가 앱 내부에 있을 때는 푸시 알림을 다르게 표시할 수 있습니다.
  • 푸시 알림 카테고리 및 액션: 특정 카테고리를 설정하여 사용자가 푸시 알림에서 직접 특정 액션(예: 답장하기)을 취할 수 있게 할 수 있습니다.
728x90