seong_hye, the developer

Swift) APNs에 대해 알아보기 & 설정 방법 알아보기 본문

IOS

Swift) APNs에 대해 알아보기 & 설정 방법 알아보기

seong_hye 2022. 10. 23.

 


📘 APNs

Apple Push Notification service의 약자

iOS, macOS, watchOS, tvOS 앱에 **푸시 알림(Push Notification)**을 전송할 수 있도록

Apple이 제공하는 공식 알림 전송 서비스

 

APNs = Apple 기기에 원격 푸시 알림을 전달하는 중앙 서버 시스템


🔹 APNs의 역할

"end-to-end"

데이터를 송신자(앱 서버)에서 시작하여 수신자(사용자 디바이스)까지 안전하게 전달하는 전체 과정
앱 서버가 보낸 메시지를 iPhone, iPad, Mac 등에 안정적이고 보안적으로 전달하는 중간 다리 역할


🔹 APNs이 필요한 이유

역할 설명
메시지 전달 앱 서버가 직접 디바이스와 통신하지 않고 APNs를 통해 전달
보안 유지 토큰 기반 인증 및 암호화
앱 상태에 상관없이 전달 앱이 꺼져 있어도 푸시를 보내줌
배터리 효율 Apple이 통합적으로 푸시 트래픽을 관리

🔹 APNs을 사용하기 위해 필요한 것들

항목 설명
Apple Developer 계정 APNs 사용을 위한 인증 필요
APNs 인증 키 (.p8) 서버 인증용
앱에서 알림 권한 요청 사용자가 수신 허용해야 함
deviceToken APNs가 디바이스를 식별할 수 있는 키
서버 구성 Firebase, Node.js, Python 등 어떤 서버든 가능

🔹 흐름도

[앱 서버] > [APNs] > [사용자 디바이스]

 

1. 앱을 APNs에 등록하고 deviceToken을 받음

2. 앱은 이 토콘을 자신의 서버에 전달

3. 서버는 알림 내용을 준비해서 APNs에 요청

4. APNs는 해당 토큰에 연결된 디바이스에 알림 전달

5. 알림은 iOS 시스템 UI에 표시되거나 앱 내부에서 처리됨 

 

✅ 전달되는 JSON 데이터의 형태 ( 서버 -> APNs)

{
	"aps": {
    	"alert": {
        	"title": "새로운 메시지",
            "body": "test용 메시지입니다."
        },
        "sound": "default",
        "badge": 1
    }
}

 


🔹 APNs를 사용하는 푸시 알림

- 일반 알림 : 알림 센터에 표시되는 배너, 사운드 등

- Slient Notification : 사용자에게 안 보이고, 백그라운드에서만 수행됨

- VolP 알림 : 통화알림 등에 사용 ~> 현재는 제한적

 


 

Comments