푸시 서버 동작 원리(push server)

gth1123·2022년 5월 10일
0

오늘 회사에서 flutter 앱 개발 이야기를 하다가 궁금한점이 생겼다
HTTP는 요청이 있어야 응답을 보내주는데
모바일의 푸시서버는 어떻게 푸시메세지를 서버에서 먼저 보낼 수 있을까?

푸시 기법(Push technology)

  • 위키백과에선 이런 기법을 푸시 기법이라고 한다
  • email도 push 서버 방식으로 동작하는 것 방식이다(SMTP)
    • 하지만 최종적으로 이메일서버에서 사용자에게 전달되는 것은 pull 방식이다(POP3, IMAP)
  • 내가 궁금했던 Push notification은 2009년 애플에 의해 소개되었고, 2010년 구글에 의해 출시되었다(GCM -> FCM)
  • XMPP 또는 HTTP 프로토콜을 이용한다
  • 구글 FCM에서 이용하는 HTTP Web Push protocol - RFC8030

푸시 알람 구현 과정

  1. 먼저 앱을 설치하고 실행하면 이 app은 푸시알림을 보내기 위한 device token을 포함해 해당 user의 정보를 서버로 보낸다.

  2. 서버에서는 받아온 데이터를 저장하고, FCM에 해당 기기에 대한 토큰을 저장한다.

  3. 당근마켓에서 어떤 상품을 등록하는 것처럼 사용자의 이벤트가 발생하여 서버로 보내진다.

  4. 해당 서버는 그 이벤트를 가지고 어떤 디바이스들에게 푸시 알림을 보낼지 필터링해서 FCM에 넘긴다.

  5. FCM은 미리 저장해놓은 기기 토큰 중에서 요청받은 토큰이 무엇인지 판단하고 APNs를 통해 각각의 기기에 푸시 알림을 보낸다.

결론

나중에 RFC8030 프로토콜을 자세히 읽어봐야겠다
그리고 모바일 개발 또는 푸시 서버를 개발할 때 좀 더 자세히 알아보자

참고

profile
움직이는 만큼 행복해진다

0개의 댓글