목표
개인 앱 프로젝트 도중 알림 기능을 구현하고자 FCM을 사용하려 하였는데, 생각보다 알림의 과정이 복잡하고 어려워서 문서를 따라하기 어려웠다. 따라서 FCM의 원리부터 하나하나 파악해 보고자 한다.
FCM 이란?
타겟 모바일에 푸시알림을 보낼 수 있도록 하는 서비스, Firebase 콘솔이나 서버에서 푸시를 보낼 수 있다.
FCM 동작 원리
앱을 위한 키를 FCM 서버를 통해 얻는 단계
- 앱이 설치되면 Firebase 서버에 키 획득을 위한 요청을 보낸다.
- Firebase 서버에서 키를 만들어 모바일에 전달한다.
- 모바일 앱에 전달된 키를 서버에 전송한다.
- 서버는 전달받은 키를 db에 저장하여 타겟 모바일의 식별자로 사용한다.
서버에서 데이터를 스마트폰에 전달하는 절차
- 서버에서 타겟 모바일에 데이터를 전달하기 위해서 DB에 있는 키를 획득한다.
- DB의 키와 전송하고자 하는 데이터를 HTTP로 Firebase 서버에 전달한다.
- Firebase 에서 키값을 식별해서 어떤 모바일 기기에서 설치된 어떤 앱인지를 식별한다.
- 식별된 모바일 기기의 앱을 실행하여 데이터를 전달한다. (해당 앱은 백그라운드에 있는 상태에서도 리스너로 이벤트를 감지한다)