Front-end/Vue.js(Nuxt.js)

Push 알림 - FCM(firebase cloud message)

prden 2022. 11. 5. 09:06
https://kerobero.tistory.com/38

FCM이란?

FCM(Firebase Cloud Messaging)이란 메세지를 안정적으로 클라이언트 인스턴스에게 전송할 수 있는 교차 플랫폼 메시징 솔루션이다. 애플리이션 서버에서 직접 전송되는 것이 아닌, FCM backend를 거쳐 클라이언트에 전송됨.
이렇게 FCM backend를 중간에 두는 이유는?

1. 교차 플랫폼 메시징 서비스이기 때문에 메세징을 클라이언트의 플랫폼(Web, IOS, Android) 환경 별로 개발할 필요가 없어지므로 플랫폼에 종속되지 않고 메세지를 전송할 수 있다.

2. 만약 클라우드 메세징 서버가 없이 애플리케이션 서버 -> 클라이언트로 메세지를 전송하는 구현에서 클라이언트가 계속해서 서버에 접속해 있어야 하기 때문에 발생하는 디바이스의 전력 사용과 네트워크 효율 문제를 어느정도 해결해 줄 수 있다

작동원리

우선 FCM의 작동에는 두 가지 주요 구성요소가 필요하다.

  1. Firebase용 Cloud Functions 또는 앱 서버와 같이 메시지를 작성, 타겟팅, 전송할 수 있는 신뢰할 수 있는 환경 ( backend api 서버)
  2. 해당 플랫폼별 전송 서비스를 통해 메시지를 수신하는 iOS, Android 또는 웹(자바스크립트) 클라이언트 앱 (프론트 서버ex 안드로이드, ios, 웹서버)

1번 요소는 메세지를 작성하고 FCM backend에 전송할 애플리케이션 서버를 의미하며, 2번 요소는 FCM backend로부터 메세지를 수신할 클라이언트의 앱을 의미한다.
우선 클라이언트가 FCM 서버에서 디바이스 별 고유하게 발급되는 FCM 토큰을 발급받는다. 서버는 클라이언트로부터 해당 토큰을 전달받고 저장한다. (ex) 회원가입 시) 이후 특정 상황에 메세지에 토큰을 담아서 FCM backend에 전송하면 메세지를 수신한 FCM backend는 토큰을 발급받은 클라이언트 앱(ex) 네이티브 앱)에 메세지를 전송하는 것이다.
https://kerobero.tistory.com/38

Spring Boot 프로젝트에서 FCM을 이용한 웹 푸시 구현하기

현재 진행중인 프로젝트 Shoe-Auction에 웹 푸시를 이용하여 본인이 등록한 거래가 성사되었을 때 알림을 받을 수 있는 기능을 구현하였다. 메세지 전송 플랫폼으로는 FCM을 사용하였다. FCM에 대한

kerobero.tistory.com