[TIL] Push Notifications Console 여행하기 - KWDC23

rbw·2023년 10월 22일
0

TIL

목록 보기
94/98

https://www.youtube.com/watch?v=LNgpmhesJ0s 요 세션을 보고 정리한 글임니다. 자세한건 이 링크 드가서 보시믄 댐니당

Push Notification 요약

APNs(Apple Push Notification service)

이 친구는 푸쉬 알림 전달을 가능하게 하는 백엔드임니다. 디바이스에서 알림에 대한 권한을 요청하고 사용자가 동의하면 얘가 토큰을 생성하고 장치에 전달함니다.

요약하면, APNs에서 받은 디바이스 토큰을 서버에게 전달하고 서버에서 알림이 일어났다는 점을 APNs에게 토큰과 함께 전송하면 APNs에서 디바이스로 알림을 전달하는 흐름임니다.

APNs를 이용하기 위해서는

  • 프로젝트에 APNs capability를 추가
  • TLS 인증서 방식 or 인증 토큰 방식을 선택함니다

Cerificate or Authentication tokens 두 가지 방식중 보통 토큰을 자주 사용하는듯함

Certificate, Authentication tokens

Certificate

  • .p12
  • 매년 갱신 필요
  • 개별적 관리 필요

Authentication tokens

  • .p8
  • 만료되지 x
  • 모든 앱에서 사용 가능

Push Notifications 테스트 방법

주로 PUSHER, FCM, AWS SNS 등을 주로 사용함니다.

FCM과 Postman으로 간편하게 테스트가 가능함니다. 하지만 얘네를 사용하지 않고 어케할가요 ?

  • http/2 프로토콜 통신
  • command-line tools(터미널)을 통해 테스트

Postman은 http1.1이므로 테스트가 안되더라 라고 하심

Push Notification Console 소개

이번 WWDC23에서 나온 기능임니다. CloudKit 콘솔 안에 내장이 되어 있슴니다.

내부에있는 로그는 30일까지 보관된다고 함니다

Send 테스트를 하려면 아래 빈칸들을 채워주면 댐니다.

  • General: name, enviroment, device token이 제공되고 있슴니다. 여기를 채워주면 댐니다.
  • Request Headers: apns-topic, apns-push-type, apns-expiration, apns-priority 항목을 채워 줌니다, 여기서 타입이 불일치하믄 오류를 반환하거나 알림을 삭제시키거나 하니까 주의해야 함니다.
    • apns-priority 값이 high이면 유저 디바이스 상태와 상관없이 즉각적으로 알림을 보내고, medium은 상태를 고려함니다. 저전력모드를 활성화한 디바이스의 경우 좀 다르겠져?
  • Payload: 기존에 잘 사용하던 JSON을 구성할 수 있슴니다. 여기서 위에 타입과 다르다면 에러를 체크해주기 때문에 사람의 실수를 방지할 수 있슴니다.
    • alert의 경우 "alert": { ... } 처럼 alert 키 값을 들고 있습니다.
      • "aps": { "alert" : { content } } 같은 형태 ~

이런 식으로 HTTP/2 프로토콜, 터미널을 사용하지 않아도 위 콘솔을 사용해서 테스트할 수 있슴니다. but 아무나 이 기능을 사용하면 문제가 될 수 있겠져.

그래서 APNs 프로덕션 환경에서는 관리자 역할을 가진 팀 구성원만 푸쉬 알림을 보낼 수 있슴니다.

개발 환경에서는 상관없이 다 보낼 수 있슴다

Delivery Log

여기서는 알림의 현황을 알 수 있슴니다. 뭔가 배송상태 같네여 저전력 모드의 경우도 체크가 가능함니다.

but 프로덕션 환경에서는 확인이 불가하므로 로컬에서 먼저 테스트할 때 용이함니다.

Tools

아래 기능들이 존재함니다

  • JWT(JSON Web Token) Validator
  • JWT Generator
  • Device Token Validator
profile
hi there 👋

0개의 댓글