[firebase] 앱 알림 구축

2025. 8. 23. 14:06·기타

 

 

firebase 흐름도

 

요약

  • 앱이 FCM Device Token 발급 → 서버에 전달
  • 서버(Spring) → Firebase FCM 서버로 메시지 전송
  • FCM 서버 → OS 푸시 게이트웨이(APNs/Android)
  • OS → 디바이스 → 앱 표시

 

모바일 알림 컨텍스트

  1. 앱이 실행될 때
    • Android: Google Play Services(FCM SDK) 통해 Device Token을 발급합니다.
    • iOS: Apple APNs 통해 Device Token 발급합니다 → FCM SDK가 이를 변환해 Firebase Token 생성합니다.
    • 앱이 이 토큰을 백엔드 서버에 전송 및 저장합니다.
  2. 서버에서 푸시 발송
    • Spring 서버에서 Firebase Admin SDK 사용 → FCM 서버에 푸시 요청을 합니다(send(message)).
    • 메시지에 대상 토큰/토픽/조건과 내용(제목, 본문, 데이터) 전달합니다.
  3. FCM 서버 역할
    • 토큰을 보고 “이 기기(iOS/Android)는 어디에 연결되어 있는지” 파악합니다.
    • Android → Google Play Services → Android OS Notification Manager
    • iOS → APNs(Apple Push Notification service) 를 통해 Apple 서버에 전달합니다.
  4. OS 푸시 게이트웨이
    • iOS: Apple APNs
    • Android: Google Play Services + OS 알림 시스템
      → 이 레이어에서 기기와의 연결을 유지하고, 배터리 소모 최소화 합니다.
  5. 디바이스 수신
    • 앱이 백그라운드/종료 상태면 OS가 알림센터에 자동 표시.
    • 앱이 포그라운드면 SDK 콜백(onMessageReceived, didReceiveRemoteNotification 등)으로 이벤트만 주어집니다

"항상 열려있는 연결"

  • 모든 스마트폰은 OS 수준에서 푸시 전용 연결 채널을 유지합니다.
    • Android: Google Play Services가 FCM 서버와 지속적으로 연결합니다 (HTTP/2, XMPP, QUIC).
    • iOS: iOS 자체가 APNs 서버와 연결을 유지합니다.
  • 그래서 앱이 실행 중이 아니더라도, OS가 대리로 메시지를 받고 저장했다가 알림센터에 표시합니다.

덕분에 앱이 꺼져 있어도 푸시 알림이 도착할 수 있게 됩니다.

 

'기타' 카테고리의 다른 글

금융 산업 이해하기 - 은행은 무슨 일을 할까 (1)  (3) 2026.03.04
[인프라] AWS 백엔드 아키텍처  (4) 2025.09.03
메모 도구 정리 obsidian vs edrawmind  (2) 2025.08.01
[단위테스트] 원칙과 패턴 (9장) - 목 처리에 대한 모범 사례  (0) 2025.04.22
[단위테스트] 원칙과 패턴 (8장) - 통합 테스트를 하는 이유  (0) 2025.04.21
'기타' 카테고리의 다른 글
  • 금융 산업 이해하기 - 은행은 무슨 일을 할까 (1)
  • [인프라] AWS 백엔드 아키텍처
  • 메모 도구 정리 obsidian vs edrawmind
  • [단위테스트] 원칙과 패턴 (9장) - 목 처리에 대한 모범 사례
ksngh
ksngh
웹 백엔드 개발 블로그입니다. https://github.com/ksngh
  • ksngh
    featherdale
    ksngh
  • 전체
    오늘
    어제
    • 분류 전체보기 (68)
      • 데이터베이스 (10)
      • spring (11)
      • redis (7)
      • ELK (11)
      • 회고 (6)
      • 기타 (13)
        • java (2)
        • 디자인패턴 (2)
        • 영어 (1)
        • 자바스크립트 (1)
        • graphQL (2)
        • 블록체인 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    core
    대용량 데이터 베이스
    연말 회고
    회고
    Elastic Search
    PostgreSQL
    단위 테스트
    데이터베이스
    NORI
    조인의 종류
    대용량데이터베이스
    graphql
    Mock
    디자인패턴
    단위테스트
    NoriTokenizer
    spring
    elastic search in action
    Redis
    Spy
    엘라스틱서치
    레디스
    Text to SQL
    Spring Core
    엘라스틱 서치
    자료구조
    nori tokenizer
    엘라스틱 서치 인 액션
    gof
    Elasticsearch
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
ksngh
[firebase] 앱 알림 구축
상단으로

티스토리툴바