일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 슬랙 파일업로드
- Core/Context
- 슬랙 파일업로드 제한
- 머신러닝
- 웹보안
- 카프카
- bag of words
- 스케일 큐브
- 스카우터
- firebase
- 이미지 푸시
- Slack File Upload
- n-gram
- 카프카 성능
- 팀 발달 모델
- 파이어베이스
- 알림무시
- Tuckman
- 자연어처리 #konlpy #형태소분석
- kafka
- Slack Limit
- Scouter
- FCM
- Spark
- 해킹
- 코어/컨텍스트
- Scale Cube
- 슬랙
- Rate Limit
- Slack Rate Limit
- Today
- Total
플랫폼 개발팀 기술 블로그
[FCM] #1. 소개 및 메시지 본문
[FCM] #2. Firebase 프로젝트 생성 및 Android 앱 FCM 설정
FCM은 Firebase 클라우스 메시징의 약자이고, 무료로 메시지를 안정적으로 전송할 수 있는 교차 플래폼 메시징 솔루션이다.
IOS, Android, Web등 기존에 메시지를 발송하려면 APNS, GCM 등 각각 환경별로 개발해야하는 불편함이 있었다.
FCM을 이용하면 이러한 부분을 한번에 처리할 수 있다.
구글에서는 FCM에 적극적으로 투자하고 있고, 앞으로 새로운 기능들은 모두 FCM을 통해 지원할 예정이다.
GCM 서비스는 기존 Legacy 앱에 대한 지원 이유로 현재 버전으로만 유지하고 있다.
주요 기능
메세지 타입
타입 | 알림 가능 여부 | 알림 저장 개수 | 알림 처리 방법 |
알림 메세지 | O | 여러 알림을 저장하나 OS 환경마다 다름 | 앱이 백그라운드 일 때 |
데이터 메세지 | O | 1개의 알림만 저장 | 앱이 포그라운드 일 때 |
보통은 알림 및 데이터 메세지를 같이 혼용하여 사용한다.
예를 들어 휴대폰 푸시 알림은 알림 메세지, 알림을 클릭하였을 때 앱 내 특정 페이지로 이동이나, 어떠한 액션은 데이터 메세지를 통해서 이뤄진다.
타겟팅
전송 방식 | 대상 수 | 설명 |
단일 기기 | 1개 | 하나의 기기 (앱 기준) |
기기 그룹 | 20개 | 알림 키에 허용되는 그룹 |
주제 구독 | 1000개 | 등록 토큰에 구독된 기기 |
클라이언트 앱에서 메세지 전송
작동 원리
크게 송신자, FCM, 수신자로 구분된다.
송신자는 주로 앱서버나 백오피스 정도의 GUI 콘솔이 되고, 수신자는 우리가 흔히 쓰는 ios나 android 기기이다.
구현 방법
방법 | 설명 |
FCM SDK 설정 | - OS별로 FCM 설정 |
클라이언트 앱 개발 | - 클라이언트 앱에 Firebase 메시지를 수신할 수 있도록 처리 - 메시지 처리 / 주제 구독 로직 |
앱 서버 개발 | - SDK, http, http v1 중 선정하여 메시지 작성 및 FCM에 발송 처리 - 업스트림 메시징은 XMPP 프로토콜을 사용해야 함 - XMPP(Extensible Messaging and Presence Protocol)는 XML에 기반한 메시지 지향 미들웨어용 통신 프로토콜 |
메시지 정보
FCM은 공통 메시지 옵션 외에 IOS 및 Android 별로 배지, 사운드, 아이콘 등 다양한 메시지 옵션을 제공한다.
Firebase 콘솔에서 테스트 형태로 메시지 전송 가능하다.
메시지 유형
유형 | 설명 | Key-Value 구조 | 예시 (Http V1 Api 기준) |
알림 메시지 | - 알림 표시 메시지 - FCM SDK에서 자동 처리됨 - 데이터 메시지 포함 가능 | - 미리 정의됨 | { "message":{ "token":"bk3RNwTe3H0:CI2k_...", "notification":{ "title":"Portugal vs. Denmark", "body":"great match!" } } } |
데이터 메시지 | - 클라이언트 앱에서 처리 - 앱 서버와 커스텀 키 설정 | - 정의 해야함 | { "message":{ "token":"bk3RNwTe3H0:CI2k_HHwgI...", "data":{ "Nick" : "Mario", "body" : "great match!", "Room" : "PortugalVSDenmark" } } } |
앱 상태에 따른 처리
백그라운드 | 알림 메시지가 알림 목록으로 전송 |
포그라운드 | 콜백이 메시지를 처리 |
클라이언트 앱 OS 별 콜백 처리
IOS | didReceiveRemoteNotification: |
Android | onMessageReceived() |
Web 및 자바스크립트 | onMessage() |
미리 정의된 키의 전체 목록 참조 문서
'Article' 카테고리의 다른 글
JAVA APM Scouter 활용 - 2부 스카우터 기능 활용 및 페이퍼 플러그인 (0) | 2019.01.31 |
---|---|
[FCM] #2. Firebase 프로젝트 생성 및 Android 앱 FCM 설정 (0) | 2019.01.31 |
MariaDB : Xtrabackup 편 (0) | 2019.01.25 |
JAVA APM Scouter 활용 - 1부 APM 선정과 스카우터의 지표 소개 (4) | 2019.01.24 |
SpringBoot2 OAuth2 구현과 LDAP 연동 (0) | 2019.01.17 |