티스토리 뷰

728x90

오늘은 Remote Notification을 구현하면서 알게된 APNs에 대해 정리해 보려고 합니다.


APNs ? 

 

Apple Push Notification service의 약자로, APN이라고도 부릅니다.

 

원격알림을 사용할 때 반드시 APNs를 거쳐야하며, 푸시 서버와 기기 사이의 중개자 역할을 합니다.

 

아래와 같이 말이죠.

아니 그냥 서버에서 알림 보내면 되지않나 

왜 한단계 거쳐서 가는거지? 

 

라고 생각을 했었는데 이유는 아래와 같습니다.

 


APNs 의 역할

 

1. 알림 전달

  • (기기 전원 Off) 서버(Provider)에서 보낸 알림을 APNs에서 보관 → (기기 전원 On) APNs에서 보관하고 있던 알림을 기기로 전달.
  • (기기 전원 Off) APNs에 알림이 많이 쌓여있는 상태 → (기기 전원 On) APNs에서 가장 최근의 알림을 기기로 전달.
      예외) 너무 오랫동안 기기가 off일 경우 APNs에서는 자동으로 쌓여있는 알림을 삭제합니다.

2. 보안

  • 푸시 서버에서 APNs에 암호화하여 알림을 보내게 되는데, 암호화 하는 이유는 APNs만 암호화된 내용을 해독할 수 있고 
    외부에서의 알림 가로챔과 수정을 방지하기 위함 입니다.

 


APNs 의 동작순서

 

출처: https://docs.microsoft.com/ko-kr/xamarin/ios/platform/user-notifications/deprecated/remote-notifications-in-ios#registering-with-apns

위는 1, 2, 3을 이해하기 쉽게 표현한 사진 입니다.

 

1. AppAPNs디바이스 토큰 값을 요청 합니다.

2. APNs에서 수 많은 기기 중에 내 기기를 식별하기 위해 디바이스 토큰 값을 보내 줍니다.

 

3. 기기에서 APNs에서 받은 디바이스 토큰값을 서버로 보내줍니다.

 

4. 서버에서 알림 데이터, 디바이스토큰을 APNs에 보냅니다.

 

5. APNs가 디바이스 토큰을 확인한 후, 전달받은 알림을 기기로 보내줍니다. 


오늘 APNs 에 대해서 간단한 역할과 동작방식에 대해서 알아보았는데요. 

무작정 찾아서 기능 구현을 하는것보다 흐름을 이해하면서 적용하니 

이해가 잘되었던것 같습니다. 

 

참고

1. https://babbab2.tistory.com/58

728x90