FCM 아키텍처 개요

FCM은 메시지를 작성, 전송, 수신하는 다음 구성요소 집합을 사용합니다.

  1. 메시지 요청을 작성하거나 구현하는 도구: 알림 작성기는 알림 요청을 만들기 위한 GUI 기반 옵션을 제공합니다. 모든 메시지 유형을 완벽하게 자동화하고 지원하려면 Firebase Admin SDK 또는 FCM 서버 프로토콜을 지원하는 신뢰할 수 있는 서버 환경에서 메시지 요청을 구현해야 합니다. 이 환경은 Firebase용 Cloud Functions, App Engine 또는 자체 앱 서버일 수 있습니다.

    이 페이지에 설명된 세 가지 아키텍처 레이어의 다이어그램

  2. FCM 백엔드: 메시지 요청을 수락하는 등 여러 기능을 수행하는 FCM 백엔드는 주제를 통해 메시지 팬아웃을 수행하고 메시지 ID와 같은 메시지 메타데이터를 생성합니다.

  3. 플랫폼 수준 전송 레이어: 기기로 타겟팅된 메시지를 라우팅하고, 메시지 전송을 처리하고, 필요한 경우 플랫폼별 구성을 적용합니다. 이 전송 레이어에는 다음이 포함됩니다.

    • Google Play 서비스를 사용하는 Android 기기용 Android 전송 레이어(ATL)
    • Apple 기기용 Apple 푸시 알림 서비스(APN)
    • 웹 앱용 웹 푸시 프로토콜

  4. 사용자 기기의 FCM SDK: 알림이 표시되거나 앱의 포그라운드/백그라운드 상태 및 관련 애플리케이션 로직에 따라 메시지가 처리됩니다.

수명 주기 흐름

  • FCM에서 메시지를 수신하도록 기기를 등록합니다. 클라이언트 앱의 인스턴스가 메시지를 수신하도록 등록하여 앱 인스턴스를 고유하게 식별하는 등록 토큰을 받습니다.
  • 다운스트림 메시지 전송 및 수신
    • 메시지를 보냅니다. 앱 서버가 클라이언트 앱에 메시지를 보냅니다.
      1. 메시지는 알림 작성기 또는 신뢰할 수 있는 환경에서 작성되며 메시지 요청이 FCM 백엔드로 전송됩니다.
      2. FCM 백엔드는 메시지 요청을 수신하고 메시지 ID와 기타 메타데이터를 생성하여 플랫폼별 전송 레이어로 보냅니다.
      3. 기기가 온라인 상태이면 메시지가 플랫폼별 전송 레이어를 통해 기기로 전송됩니다.
      4. 기기에서 클라이언트 앱이 메시지 또는 알림을 수신합니다.