FCM 사용 이유
플랫폼에 종속되지 않고 push 메시지를 사용할 수 있다.
서버를 경유해서 실시간으로 push 메시지를 받으려면 사용자는 서버에 항상 접속하고 있어야 하는데
이는 사용자의 기기의 배터리 및 네트워크 리소스를 크게 낭비한다.
FCM을 사용하면 메시징 서버를 중간에 둠으로써 낮은 배터리와 적은 네트워크 사용만으로도 메시지를 실시간으로 처리할 수 있다.
또한 iOS, Andriod, Web 에 각각 push 메시지를 보내려면 각각의 환경별로 개발해야하는데 이를 하나로 통합하는 솔루션이다.
Notification Server
- 모바일 기기에서 push 알림을 전송하는 서버
- FCM 사용
Client App
- 사용자의 모바일 기기에 설치된 앱
- push 알림을 받는 역할
Provider
- Client App 을 위한 서버
- Notification Server 에 요청을 전송해 Client App에 알림을 보냄
- push server
FCM 의 전송방식
Token 방식
- 처음 app 을 시작하면 기기마다 고유의 token을 Firebase Cloud에서 할당 받음
- 기기의 token값으로 FCM에 Push 요청함
- Firebase 에서 해당 Token 에 기기에게 알림을 보냄
Topic 방식
- 모바일에서 원하는 topic을 Firebase에 등록
- 서버에서 Firebase에 해당하는 topic에 Push 전송함
- Firebase에서는 해당 topic을 등록한 기기에게 알림을 보냄
클라이언트는 token, topic 값을 계속 등록 및 갱신해야하며
서버는 해당 사용자의 token, topic을 저장해야함.
FCM 푸시 대상 종류
단일 (token)
- 특정 기기의 token 값을 사용해 해당 기기에만 알림 전송
여러개(topic)
- 특정 topic에 해당하는 여러 기기에 메시지를 보내는 방법
- 속도보단 처리량 위주로 최적화 되어 있는 기능
- Firebase Admin SDK를 사용하면 서버 측에서 기본적인 토픽 관리 작업을 수행할 수 있음
서버에 sdk 추가
https://firebase.google.com/docs/admin/setup?hl=ko
개발환경 설정
https://firebase.google.com/docs/firestore/quickstart?hl=ko#java
firebase admin java sdk github
https://github.com/firebase/firebase-admin-java?tab=readme-ov-file
'공부' 카테고리의 다른 글
[스프레드 시트] 구글 스프레드 시트에서 다른 시트에 있는 데이터를 원하는 데이터 추출하기 (모두 찾기/전체 검색) (0) | 2023.12.04 |
---|---|
[자료구조] B-Tree, B+Tree (0) | 2023.08.20 |
[웨비나] Bootiful Spring in Summer with Josh Long (0) | 2023.06.26 |
[JAVA] 오버로딩, 오버라이딩 (0) | 2022.09.13 |
웹호스팅 / 서버호스팅 / 클라우드 차이점 (0) | 2022.07.14 |