파이어베이스 클라우드 메시징

https://firebase.google.com/products/cloud-messaging/ **파이어베이스 클라우드 메시징**(**FCM**)은 이전에 구글 클라우드 메시징(GCM)으로 알려졌던 안드로이드, iOS, 그리고 웹 애플리케이션을 위한 메시지 및 알림을 위한 크로스 플랫폼 클라우드 서비스로, 2025년 4월 현재 무료로 사용할 수 있다.access-date=2025-04-20 파이어베이스 클라우드 메시징은 서드파티 애플리케이션 개발자가 FCM이 호스팅하는 서버에서 플랫폼 사용자 또는 최종 사용자에게 알림이나 메시지를 보낼 수 있도록 한다. 이 서비스는 구글의 자회사인 파이어베이스에서 제공된다. 2014년 10월 21일, 파이어베이스는 구글에 인수되었으며 금액은 공개되지 않았다.access-date=October 21, 2014 공식 구글 클라우드 메시징 웹사이트는 파이어베이스 클라우드 메시징(FCM)을 GCM의 새 버전으로 지칭한다.url=https://developers.google.com/cloud-messaging/ 파이어베이스는 사용자가 모바일 및 웹 애플리케이션을 개발하는 데 도움이 되는 모바일 플랫폼이다. 파이어베이스 클라우드 메시징은 파이어베이스 플랫폼의 많은 제품 중 하나이다. 이 플랫폼에서 사용자는 웹 및 모바일 애플리케이션 모두에서 다양한 파이어베이스 기능을 통합하고 결합할 수 있다.
# 역사
파이어베이스 클라우드 메시징(FCM)은 백엔드 개발을 자동화하는 클라우드 서비스 모델 또는 BaaS(Backend-as-a-service)인 파이어베이스 플랫폼의 일부이다. 2014년 파이어베이스 회사가 구글에 인수된 후, 일부 파이어베이스 플랫폼 제품 또는 기술은 구글의 기존 서비스와 통합되었다. 구글의 모바일 알림 서비스인 구글 클라우드 메시징(GCM)은 2016년 FCM으로 대체되었다. 2018년 4월 10일, GCM은 구글에 의해 제거되었고 2019년 5월 29일, GCM 서버 및 클라이언트 API는 사용 중단되었다.Kantamani, S. (2020). Firebase Cloud Messaging. Retrieved 7 September 2020, from https://medium.com/developermind/using-firebase-cloud-messaging-for-remote-notifications-in-ios-d35de1dc67b2 FCM은 GCM의 대체재가 되었다. 그러나 FCM은 기존 구글 소프트웨어 개발 키트(SDK)와 호환된다.language=en 파이어베이스 클라우드 메시징은 사용자가 무료로 메시지를 전달할 수 있는 크로스 플랫폼 메시징 서비스이다. FCM은 안드로이드 및 iOS를 포함한 다양한 플랫폼과 호환된다.Moroney, L. (2017). Firebase Cloud Messaging. In The Definitive Guide to Firebase (pp. 163-188). Apress, Berkeley, CA. 구글은 2016년 10월 17일에 모바일 웹 애플리케이션을 포함한 웹 애플리케이션 지원을 시작했다.Novet, J. (2016). Google launches Firebase Cloud Messaging for the web. Retrieved 7 October 2020, from https://venturebeat.com/2016/10/17/google-launches-firebase-cloud-messaging-for-the-web/ FCM에서 서드파티 애플리케이션 개발자는 API(애플리케이션 프로그래밍 인터페이스)를 통해 최종 사용자에게 푸시 알림 및 메시지를 보낼 수 있다.Albertengo, G., Debele, F. G., Hassan, W., & Stramandino, D. (2020). On the performance of web services, google cloud messaging and firebase cloud messaging. Digital Communications and Networks, 6(1), 31-37. 사용자가 푸시 알림 수신 동의를 활성화하면 사용자는 실시간 정보 또는 데이터를 동기화하기 위해 수신할 수 있다.
# 개발
FCM은 GCM의 핵심 인프라를 계승하지만, 클라이언트 측 개발을 단순화한다. GCM과 FCM은 암호화, 푸시 알림 및 메시징, 기본 안드로이드 및 iOS SDK 지원을 제공한다. 둘 다 클라이언트 애플리케이션과 신뢰할 수 있는 환경 사이에 서드파티 개체가 필요하며, 이는 모바일 단말기와 애플리케이션 서버 간의 통신 경로에서 지연을 유발할 수 있다. FCM은 GCM 프로토콜과 동일한 서버 프로토콜 HTTP 및 XMPP를 지원한다. 개발자는 클라이언트 애플리케이션에서 개별 등록 또는 구독 재시도 로그인을 작성할 필요가 없다. FCM과 GCM은 동일한 명령을 통해 메시지를 처리하지만, GCM 연결 서버 대신 FCM 서버를 통해 메시지가 전달된다. FCM 소프트웨어 개발 키트(SDK)는 클라이언트 개발 프로세스를 단축하기 위해 개별 등록 또는 구독 재시도 로직 작성을 제외한다. FCM SDK는 개발자가 파이어베이스 애널리틱스 통찰력을 기반으로 서버리스 파이어베이스 알림을 웹 콘솔에서 사용할 수 있도록 하는 새로운 알림 솔루션을 제공한다. FCM은 무제한 업스트림 및 다운스트림 메시지 전송을 가능하게 한다.
# 주요 기능
파이어베이스 클라우드 메시징은 세 가지 주요 기능을 가지고 있다. 첫 번째 기능은 FCM이 사용자가 애플리케이션 코드로 해독할 수 있는 알림 메시지 또는 데이터 메시지를 수신할 수 있도록 한다는 것이다. 두 번째 기능은 메시지 타겟팅이다. 메시지는 FCM 플랫폼에서 개별 장치, 지정된 장치 그룹 또는 특정 토픽 도메인에 가입한 장치에 이르기까지 다양한 방법을 통해 클라이언트 애플리케이션으로 전송될 수 있다. 세 번째 주요 기능은 클라이언트 애플리케이션에서 서버로의 연결 채널이다. FCM은 선택된 장치 또는 클라이언트 앱에서 FCM 채널을 통해 다양한 유형의 메시지를 보낼 수 있도록 한다.language=en
# 기술적 세부사항
파이어베이스 클라우드 메시징은 특정 파이어베이스 지원 앱이 설치된 장치에 알림 및 메시지를 보낸다. 애플리케이션에 FCM 지원을 추가하려면 여러 단계가 필요하다: 안드로이드 스튜디오 프로젝트에 지원을 추가하고, 등록 토큰을 획득하며, 메시지 알림을 식별하기 위한 핸들러를 구현해야 한다.Yilmaz, Y. S., Aydin, B. I., & Demirbas, M. (2014, December). Google cloud messaging (GCM): An evaluation. In 2014 IEEE Global Communications Conference (pp. 2807-2812). IEEE. 메시지 알림은 사용자 세분화 옵션을 선택하여 파이어베이스 콘솔을 통해 전송할 수 있다.
## FCM 아키텍처
FCM 아키텍처는 세 가지 구성 요소로 구성된다: FCM 연결 서버, HTTP 또는 XMPP 기반 애플리케이션 서버 및 클라우드 기능을 갖춘 신뢰할 수 있는 환경, 그리고 클라이언트 애플리케이션. 메시지를 보내고 받으려면 메시지를 구축, 지시 및 전송할 보안 환경 또는 서버와 메시지를 수신할 iOS, 안드로이드 또는 웹 클라이언트 애플리케이션이 필요하다.Mokar, M. A., Fageeri, S. O., & Fattoh, S. E. (2019, September). Using Firebase Cloud Messaging to Control Mobile Applications. In 2019 International Conference on Computer, Control, Electrical, and Electronics Engineering (ICCCEEE) (pp. 1-5). IEEE 개발자가 FCM으로 보낼 수 있는 메시지 유형은 알림 메시지와 데이터 메시지 두 가지이다. 알림 메시지는 FCM에 의해 장치에 표시되며 FCM SDK에 의해 자동으로 관리된다. 데이터 메시지는 클라이언트 애플리케이션에서 처리된다.language=en 따라서 개발자가 클라이언트 애플리케이션에 대한 알림 표시를 FCM이 처리하도록 요구할 때 알림 메시지가 사용된다. 데이터 메시지는 개발자가 클라이언트 애플리케이션에서 메시지를 처리하도록 요구할 때 사용된다. 파이어베이스 클라우드 메시징 아키텍처 FCM은 세 가지 방법으로 애플리케이션에 대상 메시지를 전달할 수 있다: 단일 장치, 장치 그룹 또는 주제를 구독한 장치. 개발자는 '알림 작성기'에서 선택한 사용자 그룹에 대상 메시지를 구축하고 보낸다. FCM으로 전송된 메시지는 사용자 전환 및 참여를 추적하기 위해 구글 애널리틱스와 통합된다.language=en
## 구현
구현 프로세스에는 두 가지 주요 구성 요소가 있다. 첫째, 메시지 트랜잭션을 용이하게 하기 위해 FCM 또는 다른 애플리케이션 서버에 메시지를 보내고 받을 수 있는 보안 환경이 필요하다. 둘째, iOS, 안드로이드 또는 웹(자바스크립트)과 같이 선택한 플랫폼 서비스와 호환되는 클라이언트 애플리케이션이 필요하다. FCM의 구현 경로는 결정된 플랫폼에 대해 지정된 지침에 따라 FCM SDK 설정을 시작한다. 설정 후, 클라이언트 애플리케이션을 개발해야 한다. 클라이언트 앱에 메시지 처리, 토픽 구독 로직 및 기타 필요한 기능을 추가한다. 이 단계에서 알림 작성기에서 테스트 메시지를 보낼 수도 있다. 애플리케이션 서버는 전송 로직을 구축하기 위해 다음으로 개발된다. 기본 서버 환경은 코드 없이 생성된다.
## 아키텍처 흐름
장치를 등록하고 FCM으로부터 메시지를 수신할 수 있도록 설정하는 것이 먼저 필요하다. 클라이언트 애플리케이션 인스턴스는 등록되고 고유 식별자를 제공할 FCM 연결 서버에 의해 발급된 등록 토큰 또는 FCM 토큰이 할당된다. 그러면 앱 인스턴스는 다운스트림 메시지를 보내고 받을 수 있다. 다운스트림 메시징은 애플리케이션 서버에서 클라이언트 애플리케이션으로 푸시 알림을 보내는 것을 의미한다. 이 과정은 네 단계로 구성된다. 첫째, 알림 작성기 또는 다른 보안 환경에서 메시지가 생성된 후, 메시지 요청이 FCM 백엔드로 전송된다. 둘째, FCM 백엔드는 메시지 요청을 수신하고 수락하며, 지정된 각 주제에 대한 메시지를 준비하고, 메시지 ID와 같은 메시지 메타데이터를 생성하여 플랫폼별 전송 계층으로 보낸다. 셋째, 메시지는 플랫폼별 전송 계층을 통해 온라인 장치로 전송된다. 플랫폼 수준 전송 계층은 메시지를 특정 장치로 라우팅하고, 메시지 전달을 처리하며, 플랫폼에 특정 구성을 적용하는 역할을 한다. 넷째, 클라이언트 애플리케이션은 장치를 통해 알림 또는 메시지를 수신한다.language=en
# 추가 기능 및 도구

## 애널리틱스
파이어베이스는 최종 고객의 '광고 클릭' 및 '애플리케이션 사용'에 대한 통찰력을 얻을 수 있도록 무료 및 무제한 애널리틱스 도구를 제공한다. 다른 파이어베이스 기능과 함께 파이어베이스 애널리틱스는 사용자가 클릭률부터 앱 충돌에 이르는 다양한 기능을 탐색하고 사용할 수 있도록 한다.Sharma, R. (2020). What is GCM and FCM? (Differences and Limitations). Retrieved 2 October 2020, from https://www.izooto.com/blog/everything-that-you-need-to-know-about-firebase-cloud-messaging-platform
## 파이어베이스 원격 구성
클라우드에 있는 간단한 키-값 저장소로, 사용자가 애플리케이션에서 읽을 수 있는 수정 사항을 구현할 수 있도록 한다. 파이어베이스 원격 구성은 기본 기능 외에 잠재 고객 빌더도 포함하여 사용자가 맞춤 잠재 고객을 생성하고 A/B 테스트를 수행하는 데 도움이 된다.
## 크로스 플랫폼 지원
iOS, 안드로이드, 자바스크립트 및 C++용 단일 SDK에 패키징된 API는 FCM이 제공하는 크로스 플랫폼 지원과 함께 개발자가 인프라 수정 없이 다양한 플랫폼으로 확장할 수 있도록 한다.
## 웹 푸시 지원
개발자는 표준 IETF 웹 푸시 API를 구현하고 웹 브라우저를 대상으로 할 수 있다. 크롬에서 개발자는 안드로이드의 크롬 또는 Mac, Windows 및 Linux의 크롬 페이지로 메시지를 보낼 수 있다. 웹 푸시 지원을 위한 추가 기능에는 토픽 메시징과 토픽 조합으로 메시지를 보낼 수 있는 기능이 포함된다.
## 토픽 메시징
개발자는 단일 메시지를 여러 장치로 보낼 수 있다. 스포츠 이벤트, 아티스트, 음악 장르와 같은 공통 관심사 주제를 가진 사용자에게 알림을 보내는 방법이다. 개발자는 FCM에 메시지를 게시해야 하며, 이 메시지는 선택한 주제를 구독한 장치에 자동으로 전달된다. 단일 주제 또는 여러 주제의 구독자 수는 애플리케이션에서 제한되지 않는다.
## 토픽 조합 메시징
사용자가 다른 주제를 구독하는 경우, 동일한 메시지가 다른 주제에 게시되고 사용자가 중복 메시지를 받는 것을 방지하기 위해 개발자는 업데이트된 API를 사용할 수 있다. 개발자는 FCM이 조건 기준을 충족하는 사용자에게만 메시지를 전달하도록 특정 조건을 설정할 수 있다.
## 메시지 전달 보고서
메시지 전달 보고서(MDR)는 FCM의 보고 도구에 의해 생성되며, 개발자가 메시지 전달에 대한 분석 통찰력을 얻을 수 있도록 한다. MDR에서 개발자는 다른 FCM SDK(안드로이드, iOS)에 대한 메시지 데이터를 통해 특정 사용자에게 전송된 메시지의 도달 범위를 평가할 수 있다.language=en
## 알림 퍼널 분석
알림 퍼널 분석(NFA)은 FCM 플랫폼에 내장되어 있다. 이 도구를 사용하여 개발자는 특정 알림에 대한 응답 데이터를 통해 사용자 행동 및 추세를 확인할 수 있다. 분석할 수 있는 알림 데이터 유형은 "전송된 알림", "열린 알림" 및 고유 사용자 수이다. NFA에서 분석 보고서를 가져올 수 있다. 개발자는 알림 퍼널을 사용자 정의하고 구축할 수도 있다.
# 주요 문제

## 보안 문제
FCM은 모바일 애플리케이션의 설계 및 구현 프로세스를 단축한다. 파이어베이스 콘솔의 알림 작성기를 통해 테스트 메시지를 보낼 수 있는 기능 덕분에 테스트 프로세스도 단축된다. 클라우드 기반 메시징 솔루션은 프로젝트에 구현하기 전에 완화하고 고려해야 할 보안 및 개인 정보 보호 위험도 있다. 클라우드 컴퓨팅 개발은 개방형 네트워크 구조와 공유 리소스의 탄력적 풀링을 포함하며, 이는 클라우드 보안 조치 수립의 필요성을 증가시킨다. 보안 문제는 FCM의 안드로이드 애플리케이션 패키지(APK) 파일에 저장된 서버 키의 잠재적 악용이다. 악용될 경우, 이는 파이어베이스 플랫폼의 모든 사용자에게 푸시 알림 메시지를 배포할 수 있도록 한다. GCM은 이전에 피싱 및 악성 광고 활동이 발생한 보안 취약점을 보고한 바 있다. 보안 위협에 대한 보호는 여러 단계를 포함하며 추가적인 영향을 미 미칠 수 있다. 클라우드 메시징 서비스를 비활성화하면 즉각적인 트랜잭션이 방지된다. 그러나 이는 FCM 서비스에 의존하는 차단된 장치에 설치된 다른 애플리케이션을 잠재적으로 중지시킬 수 있다.url-access=subscription 가능한 해결책은 특정 알림 채널을 차단하거나 주제에서 구독을 취소하는 것이다. 다른 해결책으로는 FCM 서비스 플랫폼을 통해 메시지화되는 악성 정보를 감지하기 위한 메시지 트래픽 알림 시스템을 설정하는 것이 있다.s2cid=15771293 이 해결책을 구현하려면 추가 단계가 필요하다. 사용자는 처음에 악성 애플리케이션이 잠재적으로 사용하는 연결 채널 또는 주제를 식별해야 한다.
## 개인 정보 보호 문제
클라우드 기반 메시징은 또한 개인 정보 보호 위험과 문제를 야기한다. 블랙햇 해커는 파이어베이스 클라우드 메시징 플랫폼의 보안을 침해하고 사용자의 애플리케이션 등록 ID 또는 기타 민감한 정보를 획득할 수 있다. 보안 침해 사례에는 사용자의 소셜 미디어 계정의 비공개 메시지가 해커의 장치로 푸시되는 경우가 포함된다. 플랫폼의 개인 정보를 보호하기 위해 사용자는 안전하지 않은 클라우드 메시징 서비스에서 제공하는 개방형 통신 채널 주변에 종단 간 보호 체계를 구축할 수 있다. FCM은 사용자에게 페이로드 암호화를 제공한다.