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