[영상후기] [10분 테코톡] 칼리의 FCM의 작동 흐름

박철현·2026년 6월 14일

영상후기

목록 보기
161/162

movie

1. FCM 이란?

  • Firebase Cloud Messaging : Firebase에서 제공하는 푸시 알림 서비스

    • Firebase : 구글에서 만든 백엔드 서비스 플랫폼
      • Authentication, Cloud Storage 등 다양한 서비스 제공
  • FCM의 하는일 : 중앙에서 메세지를 받아 연결된 디바이스에게 푸시 알림 제공하는 역할

2. 왜 FCM 인가?

  • Android : FCM이 푸시 알림의 필수 요소

    • Amazon SNS, One Signal 같은 다른 푸시알림 서비스 -> 안드로이드로 보낼때 결국 FCM을 거쳐서 전송함
  • IOS : 플랫폼 통합 지원

    • IOS는 APNS라는 자체 푸시 알림 서비스 사용함
    • FCM이 APNS까지 통합 지원
  • 즉 FCM하나로 두 플랫폼 모두 커버 -> 푸시 알림의 사실상 표준

3. FCM은 어떻게 작동하는가?

핵심 작동 주최

  • 백엔드 서버
  • FCM 서버
  • 기기

순서

1. 백엔드 서버 -> FCM 서버로 HTTP 요청을 보냄
2. FCM -> 토큰에 해당하는 기기에 알림 전달
3. onReceived와 같은 메서드에서 받아서 처리하는 구조

기기 식별자 : token

  • FCM은 각 기기마다 고유한 token 발행 -> 기기 식별 가능
1. 앱 설치 시 FCM이 고유한 token 발급
2. FCM 서버 DB에 token 저장
3. FCM이 DB에서 token을 찾아 해당 기기로 전달
  - 수많은 기기 중 정확한 기기에만 푸시 알림을 전송할 수 있음

Token 방식 vs Topic 방식

Token 방식Topic 방식
전달 대상 한명전달 대상 여러명
서버는 FCM에게 토큰 값을 전달한다서버는 FCM에게 Topic 이름을 전달한다

예시1 : Token 방식

  • 배민 배달 시작
1. 각 기기의 토큰이 배달의 민족 서버 DB에 저장되어있음
2. 각 유저마다 다른 알림 필요
  - 특정 토큰과 알림 내용을 FCM에게 전달 (userA : 조리시작 / userB : 배달시작 / ...)
  - FCM이 DB에서 해당 토큰을 찾아 기기로 전송 (개별 전송 token 방식)

예시2 : Topic 방식

  • 배민 : 혜택 알림 토글
    • 사용자가 키면 혜택 정보를 받음
  • FCM 서버 DB 확인 시 특정 topic을 구독하는지 관리하기 위한 topicList 라는 컬럼 존재
    1. 사용자가 혜택 알림 toggle 킴
    2. 앱에서 FCM 서버로 topic 구독 요청을 보냄 (promotion 같은)
    3. FCM Server는 이 정보를 DB에 저장함
    4. 해당 기기의 topicList에 promotion 토픽 추가됨
idtokentopicList
11Ps...promotion
22xY.....
  • 백엔드 서버 -> promotion 이라는 topic 이름만 FCM에 전달 -> FCM은 DB를 조회해서 promotion topic을 구독하고 있는 기기들에게 한번에 전송
    • 배민에서 타임세일 알림을 FCM 서버로 특정 토픽으로 전송
  • 즉 Topic 방식은 개별 토큰 지정 없이 그룹 전송하는 것

코드 차이

  • Token을 넘겨주느냐 혹은 Topic을 넘겨주느냐의 차이

  • 나머지 처리는 FCM이 알아서

  • Token 방식

firebaseMessaging.send(...)
.setToken(request.token())
.build());
  • Topic 방식
firebaseMessaging.send(...)
.setTopic(request.topic())
.build());

다음으로

FCM MultiCast를 활용하여 개선 방식

profile
비슷한 어려움을 겪는 누군가에게 도움이 되길

0개의 댓글