Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- Animation
- ScrollView
- SWIFT
- Switch
- PushNotification
- struct
- protocol
- uikit
- http
- escaping
- 화면전환
- Observer
- 글또
- class
- SWIFTUI
- singleton
- calendar
- array
- Git
- IOS
- NotificationCenter
- viewlifecycle
- Refresh
- mvvm
- 고차함수
- self
- list
- error
- apns
- segue
Archives
- Today
- Total
seong_hye, the developer
Swift) APNs에 대해 알아보기 & 설정 방법 알아보기 본문
📘 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 알림 : 통화알림 등에 사용 ~> 현재는 제한적
'IOS' 카테고리의 다른 글
Swift) Library, Framework, Package에 대해 정리하기 (0) | 2022.10.24 |
---|---|
Swift) APNs 설정 방법 알아보기 (0) | 2022.10.23 |
Swift) 문법 정리 - @attribute (0) | 2022.10.22 |
Swift) Notification에 대해 알아보기 (0) | 2022.10.19 |
Swift) 문법정리 - 확장(Extension) (0) | 2022.10.18 |
Comments