Firebase 클라우드 메시징
Firebase Cloud Messaging| 개발자 | 파이어베이스 |
|---|---|
| 프로그래밍 언어 | - |
| 응용프로그램 | 알림서비스 |
| 상황 | 오프라인[citation needed] |
| 면허증. | 접근 |
| 웹사이트 | firebase |
파이어베이스 클라우드 메시징(Firebase Cloud Messaging, FCM)은 안드로이드, iOS 및 웹 애플리케이션의 메시지 및 알림을 위한 크로스 플랫폼 클라우드 서비스로, 2023년 5월 현재 무료로 사용할 수 있습니다.[1] Firebase Cloud Messaging을 통해 타사 애플리케이션 개발자는 FCM에서 호스팅하는 서버에서 플랫폼의 사용자 또는 최종 사용자에게 알림 또는 메시지를 보낼 수 있습니다.
이 서비스는 구글의 자회사인 파이어베이스에서 제공합니다. 2014년 10월 21일, 파이어베이스는 구글에 미공개 금액으로 인수되었다고 발표했습니다.[2] 공식 구글 클라우드 메시징 웹사이트는 FCM(Firebase Cloud Messaging)을 GCM의 새로운 버전으로 지목합니다.[3] 파이어베이스는 사용자가 모바일 및 웹 애플리케이션을 개발할 수 있도록 지원하는 모바일 플랫폼입니다. Firebase Cloud Messaging은 Firebase 플랫폼의 일부인 많은 제품 중 하나입니다. 플랫폼에서 사용자는 웹 및 모바일 애플리케이션 모두에서 다양한 Firebase 기능을 통합 및 결합할 수 있습니다.
역사
FCM(Firebase Cloud Messaging)은 백엔드 개발 또는 서비스형 백엔드(BaaS)를 자동화하는 클라우드 서비스 모델인 Firebase 플랫폼의 일부입니다. 2014년 파이어베이스 회사가 구글에 인수된 후 일부 파이어베이스 플랫폼 제품 또는 기술이 구글의 기존 서비스와 통합되었습니다. 2016년 구글의 모바일 알림 서비스인 구글 클라우드 메시징(GCM)이 FCM으로 대체되었습니다. 2018년 4월 10일, 구글에 의해 GCM이 제거되었고, 2019년 5월 29일, GCM 서버와 클라이언트 API가 감가상각되었습니다.[4] FCM이 GCM의 대체품이 되었습니다. 하지만 FCM은 기존의 구글 소프트웨어 개발 키트(SDK)와 호환됩니다.[5]
Firebase Cloud Messaging은 사용자가 비용 없이 메시지를 전달할 수 있는 교차 플랫폼 메시징 서비스입니다. FCM은 안드로이드, iOS를 포함한 다양한 플랫폼과 호환됩니다.[6] Google은 2016년 10월 17일에 모바일 웹 애플리케이션을 포함한 웹 애플리케이션에 대한 지원을 시작했습니다.[7] FCM에서 타사 애플리케이션 개발자는 애플리케이션 프로그래밍 인터페이스(API)를 통해 푸시 알림 및 메시지를 최종 사용자에게 전송할 수 있습니다.[8] 사용자가 푸시 알림 수신 동의를 활성화한 후, 사용자는 동기화를 위한 실시간 정보 또는 데이터를 수신할 수 있습니다.
발전
FCM은 GCM의 핵심 인프라를 계승하지만 클라이언트 측의 개발을 단순화합니다. GCM과 FCM은 암호화, 푸시 알림 및 메시징, 네이티브 안드로이드 및 iOS SDK 지원을 제공합니다. 둘 다 클라이언트 애플리케이션과 신뢰할 수 있는 환경 사이에 제3자 엔티티가 필요하므로 모바일 단말과 애플리케이션 서버 간의 통신 경로에 지연이 발생할 수 있습니다.[8] FCM은 GCM 프로토콜과 동일한 서버 프로토콜 HTTP 및 XMPP를 지원합니다.
개발자는 클라이언트 응용프로그램에 개별 등록을 작성하거나 로그인을 재시도하는 구독을 작성할 필요가 없습니다.[4] FCM과 GCM은 동일한 명령어를 통해 메시지를 처리하지만, 메시지는 GCM 연결 서버 대신 FCM 서버를 통해 전달됩니다. FCM 소프트웨어 개발 키트(SDK)는 단축된 클라이언트 개발 프로세스를 위해 개별 등록 또는 구독 재시도 로직 작성을 제외합니다. FCM SDK는 Firebase Analytics의 통찰력을 바탕으로 개발자가 웹 콘솔에서 서버 없는 Firebase Notifications를 사용할 수 있도록 하는 새로운 알림 솔루션을 제공합니다. FCM을 사용하면 무제한 업스트림 및 다운스트림 메시지를 전송할 수 있습니다.[6]
주요 기능
Firebase Cloud Messaging에는 크게 세 가지 기능이 있습니다. 첫 번째 기능은 FCM을 통해 사용자가 애플리케이션 코드에 의해 해독할 수 있는 알림 메시지나 데이터 메시지를 수신할 수 있다는 것입니다. 두 번째 기능은 메시지 타겟팅입니다. 메시지는 FCM 플랫폼에서 개별 장치, 특정 주제 도메인에 가입된 특정 장치 그룹 또는 장치에 이르기까지 다양한 방법을 통해 클라이언트 응용 프로그램으로 전송할 수 있습니다. 세 번째 핵심 기능은 클라이언트 애플리케이션에서 서버로의 연결 채널입니다. FCM을 사용하면 FCM 채널을 통해 선택한 장치 또는 클라이언트 앱에서 다양한 유형의 메시지를 보낼 수 있습니다.[9]
기술적 세부사항
Firebase Cloud Messaging은 특정 Firebase 지원 앱을 설치한 장치에 알림과 메시지를 보냅니다. 애플리케이션에 FCM에 대한 지원을 추가하려면 안드로이드 스튜디오 프로젝트에 대한 지원을 추가하고, 등록 토큰을 획득하며, 메시지 알림을 식별하기 위한 핸들러를 구현하는 등 여러 단계가 필요합니다.[10] 메시지 알림은 Firebase 콘솔을 통해 사용자 분할 옵션을 선택하여 전송할 수 있습니다.
FCM 아키텍처
FCM Architecture에는 FCM 연결 서버, HTTP 또는 XMPP와 클라우드 기능을 기반으로 하는 애플리케이션 서버가 있는 Trusted 환경, 그리고 Client 애플리케이션의 세 가지 구성 요소가 포함됩니다. 메시지를 주고받으려면 메시지를 구축, 지시 및 전송하기 위한 보안 환경이나 서버, 메시지를 수신하기 위한 iOS, Android 또는 웹 클라이언트 애플리케이션이 필요합니다.[11] 개발자가 FCM과 함께 보낼 수 있는 메시지는 알림 메시지와 데이터 메시지 두 가지입니다. 알림 메시지는 FCM에 의해 단말기에 표시되는 메시지이며, FCM SDK에 의해 자동으로 관리됩니다. 데이터 메시지는 클라이언트 어플리케이션에 의해 처리됩니다.[12] 따라서 개발자가 FCM으로 클라이언트 응용프로그램에 대한 알림 표시를 처리하도록 요구할 때 알림 메시지가 사용됩니다. 데이터 메시지는 개발자가 클라이언트 응용 프로그램에서 메시지를 처리하도록 요구할 때 사용됩니다.

FCM은 단일 장치, 장치 그룹 또는 주제에 가입된 장치의 세 가지 방법을 통해 응용 프로그램에 대상 메시지를 전달할 수 있습니다. 개발자들은 '알림 작곡가'의 선택된 사용자 그룹에 목표 메시지를 작성하여 보냅니다. [10] FCM과 함께 전송된 메시지는 Google Analytics와 통합되어 사용자 전환 및 참여를 추적합니다.
실행
구현 프로세스에는 두 가지 주요 구성 요소가 있습니다. 첫째, FCM이나 다른 애플리케이션 서버가 메시지 거래를 용이하게 하기 위해서는 메시지를 주고받을 수 있는 안전한 환경이 필요합니다. 둘째, 선택한 플랫폼 서비스와도 호환되는 iOS, 안드로이드 또는 웹(자바스크립트) 등 가능한 종류의 클라이언트 애플리케이션이 필요합니다.
FCM에 대한 구현 경로는 결정된 플랫폼에 대해 규정된 지침에 따라 FCM SDK 설정으로 시작됩니다. 설정 후 클라이언트 응용 프로그램을 개발해야 합니다. 클라이언트 앱에서 메시지 처리, 주제 구독 로직 및 기타 필수 기능을 추가합니다. 이 단계에서 Notifications 작성자로부터 테스트 메시지를 전송할 수도 있습니다. 애플리케이션 서버는 전송 로직을 구축하기 위해 개발됩니다. 기본 서버 환경은 코드 없이 만들어집니다.[4]
건축 흐름
먼저 FCM에서 메시지 수신이 가능하도록 기기 등록 및 설정이 필요합니다. 클라이언트 응용 프로그램 인스턴스가 등록되고 등록 토큰 또는 FCM 토큰이 할당되며, 이 토큰은 응용 프로그램 인스턴스(앱 인스턴스)에 고유 식별자를 제공하는 FCM 연결 서버에서 발급됩니다. 그러면 앱 인스턴스는 다운스트림 메시지를 보내고 받을 수 있습니다. 다운스트림 메시징은 응용프로그램 서버에서 클라이언트 응용프로그램으로 푸시 알림을 보내는 것을 말합니다. 이 과정에는 4단계가 포함됩니다. 먼저 Notifications composer 또는 다른 보안 환경에서 메시지가 작성된 후 메시지에 대한 요청이 FCM 백엔드로 전송됩니다. 둘째, FCM 백엔드는 메시지 요청을 수신하고 수락하여 지정된 주제별로 메시지를 준비하고, 메시지 ID와 같은 메시지 메타데이터를 생성하여 플랫폼에 특정한 전송 계층으로 전송합니다. 셋째, 메시지는 플랫폼별 전송 계층을 통해 온라인 장치로 전송됩니다. 플랫폼 레벨 전송 계층은 메시지를 특정 디바이스로 라우팅하고, 메시지의 전달을 처리하고, 특정 구성을 플랫폼에 적용하는 역할을 합니다. 넷째, 클라이언트 응용 프로그램은 장치를 통해 알림 또는 메시지를 수신합니다.
추가 기능 및 도구
분석
Firebase는 사용자가 최종 고객의 '광고 클릭'과 '애플리케이션 사용'에 대한 통찰력을 얻을 수 있도록 자유롭고 제한 없는 분석 도구를 제공합니다. Firebase Analytics를 통해 사용자는 다른 Firebase 기능과 함께 앱 충돌에 대한 클릭률과 같은 다양한 기능을 탐색하고 사용할 수 있습니다.[15]
Firebase 원격 구성
클라우드에 저장된 간단한 키 값 저장소로 사용자가 애플리케이션에서 읽을 수 있는 수정 사항을 구현할 수 있습니다. Firebase Remote Config에는 기본 기능 외에도 사용자가 맞춤형 오디언스를 생성하고 A/B 테스트를 수행하는 데 도움이 되는 오디언스 빌더도 포함되어 있습니다.[15]
교차 플랫폼 지원
FCM에서 제공하는 크로스 플랫폼 지원과 함께 iOS, Android, JavaScript 및 C++용 단일 SDK로 패키지화된 API를 통해 개발자는 인프라 수정 없이 다양한 플랫폼으로 확장할 수 있습니다.[15]
웹 푸시 지원
개발자는 표준 IETF Web Push API를 구현할 수 있으며 웹 브라우저를 대상으로 합니다. 개발자들은 크롬에서 안드로이드나 맥, 윈도우, 리눅스의 크롬 페이지에 있는 크롬에 메시지를 보낼 수 있습니다. 웹 푸시 지원을 위해 추가된 기능에는 주제 메시지 및 주제 조합에 메시지를 보내는 기능이 포함됩니다.[15]
메시지 항목
개발자는 하나의 메시지를 여러 장치에 보낼 수 있습니다. 스포츠 이벤트, 아티스트, 음악 장르 등 공통 관심 주제를 가진 사용자에게 알림을 주는 방식입니다. 개발자는 FCM에 메시지를 게시해야 하며, 이 메시지는 선택 항목에 가입된 장치에 자동으로 전달됩니다. 단일 주제 또는 여러 주제에 대한 가입자 수는 응용 프로그램에 제한되지 않습니다.[15]
항목 조합 메시지
사용자가 다른 주제에 가입되어 있는 경우, 다른 주제에 걸쳐 동일한 메시지를 게시하고 사용자가 중복 메시지를 수신하지 못하도록 개발자는 업데이트된 API를 사용할 수 있습니다. 개발자는 FCM이 조건 기준을 충족하는 사용자에게만 메시지를 전달하도록 특정 조건을 설정할 수 있습니다.[15]
메시지 배달 보고서
메시지 전달 보고서(MDR)는 개발자가 메시지 전달에 대한 분석적 통찰력을 얻을 수 있도록 FCM의 보고 도구에 의해 생성됩니다. MDR에서 개발자는 다양한 FCM SDK(Android, iOS)에 대한 메시지 데이터를 보고 특정 사용자에게 보낸 메시지의 도달 범위를 평가할 수 있습니다.
알림 깔때기 분석
FCM 플랫폼에는 NFA(Notification Funnel Analysis)가 내장되어 있습니다. 개발자는 이 도구를 사용하여 특정 알림에 대한 응답에 대한 데이터에서 사용자 행동 및 추세를 볼 수 있습니다. 분석 가능한 알림 데이터 유형은 "보낸 알림", "열린 알림" 및 고유 사용자 수입니다. NFA에서 분석 보고서를 가져올 수 있습니다. 개발자는 또한 알림 깔때기를 사용자 정의하고 구축할 수 있습니다.
주요 관심사
보안 문제
FCM은 모바일 애플리케이션의 설계 및 구현 프로세스를 단축합니다. Firebase 콘솔의 Notification Composer를 통해 테스트 메시지를 전송할 수 있는 사용 가능한 기능으로 인해 테스트 프로세스도 단축됩니다. 클라우드 기반 메시징 솔루션에는 프로젝트에 구현하기 전에 완화 및 고려해야 하는 보안 및 개인 정보 보호 위험도 있습니다. 클라우드 컴퓨팅의 발전은 개방형 네트워크 구조와 공유 자원의 탄력적인 풀링을 포함하며, 이는 클라우드 보안 조치의 수립 필요성을 증가시킵니다.[17]
보안 문제는 FCM의 Android Application Package(APK) 파일에 저장된 서버 키의 잠재적인 악용 가능성입니다. 공격을 받으면 Firebase 플랫폼의 모든 사용자에게 푸시 알림 메시지를 배포할 수 있습니다. GCM은 이전에 피싱 및 악성 광고 활동이 발생한 보안 취약점을 보고한 바 있습니다.
보안 위협에 대한 보호는 여러 단계를 포함하며 추가적인 영향을 미칠 수 있습니다. 클라우드 메시징 서비스를 비활성화하면 즉각적인 트랜잭션을 방지할 수 있습니다. 그러나 FCM 서비스에 의존하는 차단된 장치에 설치된 다른 응용 프로그램을 중지할 수 있습니다.[17] 가능한 해결책은 특정 알림 채널을 차단하거나 주제에서 구독을 취소하는 것입니다. 다른 솔루션에는 FCM 서비스 플랫폼을 통해 메시지가 전송되는 악의적인 정보를 탐지하기 위한 메시지 트래픽 알림 시스템을 설정하는 것이 포함됩니다.[18] 이 솔루션을 구현하려면 추가 단계가 필요합니다. 사용자는 시작할 때 악성 애플리케이션이 잠재적으로 사용할 수 있는 연결 채널 또는 주제를 식별해야 합니다.
개인 정보 보호 문제
클라우드 기반 메시징은 개인 정보 보호 위험과 문제도 제기합니다. 블랙햇 해커는 Firebase Cloud Messaging 플랫폼의 보안을 침해하고 사용자의 애플리케이션의 등록 ID나 기타 중요한 정보를 획득할 수 있습니다. 보안 손상의 예로는 사용자의 소셜 미디어 계정에 있는 개인 메시지가 해커의 장치로 푸시되는 것이 있습니다.플랫폼의 개인 정보를 보호하기 위해 사용자는 클라우드 메시징 서비스에서 제공하는 개방된 통신 채널을 중심으로 엔드 투 엔드 보호 체계를 구축할 수 있습니다. FCM은 사용자에게 페이로드 암호화를 제공합니다.[17]
참고문헌
- ^ "Firebase Cloud Messaging". Google Developers. Retrieved April 4, 2021.
- ^ Tamplin, James. "Firebase is Joining Google!". Firebase, Inc. Retrieved October 21, 2014.
- ^ "Google Cloud Messaging - official website". Retrieved July 20, 2016.
- ^ a b c 칸타마니, S. (2020) 파이어베이스 클라우드 메시징. 2020년 9월 7일 https://medium.com/developermind/using-firebase-cloud-messaging-for-remote-notifications-in-ios-d35de1dc67b2 에서 검색됨
- ^ Tondolo, Musa (July 27, 2018). "Understanding Firebase: Part 1(Firebase Cloud Messaging)". Medium. Retrieved November 17, 2020.
- ^ a b Moroney, L. (2017). 파이어베이스 클라우드 메시징. 화재 기지에 대한 최종 안내서(163-188쪽). 캘리포니아 버클리의 한 언론인.
- ^ Novet, J. (2016). Google은 웹을 위한 Firebase Cloud Messaging을 시작합니다. 2020년 10월 7일 https://venturebeat.com/2016/10/17/google-launches-firebase-cloud-messaging-for-the-web/ 에서 검색됨
- ^ a b 알버텐고, G., 데벨레, F.G., 하산, W., & Stramandino, D. (2020) 웹 서비스의 성능, 구글 클라우드 메시징 및 파이어베이스 클라우드 메시징. 디지털 통신 및 네트워크, 6(1), 31-37.
- ^ "Firebase Cloud Messaging". Firebase. Retrieved November 16, 2020.
- ^ a b Yilmaz, Y.S., Aydin, B.I., & Demirbas, M. (2014, 12월) 구글 클라우드 메시징(GCM): 평가입니다. 2014년 IEEE 글로벌 커뮤니케이션 컨퍼런스(2807-2812쪽). IEEE.
- ^ Mokar, M.A., Fageeri, S.O., & Fattoh, S.E. (2019, 9월) Firebase Cloud Messaging을 사용하여 모바일 애플리케이션을 제어합니다. 2019년 국제 컴퓨터, 제어, 전기, 전자 공학 회의(ICCCEE) (1-5쪽). IEEE
- ^ "About FCM messages". Firebase. Retrieved November 17, 2020.
- ^ "Google Analytics for Firebase". Firebase. Retrieved May 15, 2023.
- ^ "FCM Architectural Overview". Firebase. Retrieved November 17, 2020.
- ^ a b c d e f 샤르마, R. (2020) GCM과 FCM이 무엇입니까? (차이점과 한계) 2020년 10월 2일 https://www.izooto.com/blog/everything-that-you-need-to-know-about-firebase-cloud-messaging-platform 에서 검색됨
- ^ a b "Understanding message delivery". Firebase. Retrieved November 17, 2020.
- ^ a b c Esposito, Christian; Palmieri, Francesco; Choo, Kim-Kwang Raymond (March 2018). "Cloud Message Queueing and Notification: Challenges and Opportunities". IEEE Cloud Computing. 5 (2): 11–16. doi:10.1109/mcc.2018.022171662. ISSN 2325-6095. S2CID 19248242.
- ^ Li, Na; Du, Yanhui; Chen, Guangxuan (December 2013). "Survey of Cloud Messaging Push Notification Service". 2013 International Conference on Information Science and Cloud Computing Companion. IEEE. pp. 273–279. doi:10.1109/iscc-c.2013.132. ISBN 978-1-4799-5245-8. S2CID 15771293.