GCM에서 FCM으로 마이그레이션

less than 1 minute read

회사에서 운영하는 서비스 중 안드로이드 앱이 있는데, 이 앱에서는 아직도 GCM으로 push messege를 보내고 있다. 하지만 더이상 그럴 수 없는 상황이 되었다.

GCM을 FCM으로 이관해야 한다.

이에 간단한 보고자료를 작성했는데, 다른 분들께도 유용할까 싶어 공유한다.

  1. 현황
    • Android 앱에서 GCM으로 push messege 발송 중
    • Android Oreo 버전의 기기부터 FCM을 사용하지 않은 push messege의 수신이 제한됨
      • 원인
        • Oreo부터 백그라운드 실행 제한
        • push messege의 수신 및 notification display도 백그라운드 실행 제한에 포함
        • 단 FCM으로 수신받은 push messege는 예외
        • 공식문서: https://developer.android.com/about/versions/oreo/background.html?hl=ko
      • 결과: 앱 종료 혹은 기기 sleep mode시 push notification을 띄워주지 않음
      • 필요한 조치: push messege 발송을 GCM -> FCM으로 이관
  2. FCM과 GCM
    • FCM은 GCM의 확장판(참고: https://joshua1988.github.io/web-development/fcm-gcm-difference/)
    • FCM(https://firebase.google.com/docs/cloud-messaging/)
      • Firebase에서 제공하는 push messege 발송 서비스
      • Firebase
        • Firebase: google의 클라우드 개발 플랫폼(https://firebase.google.com/?hl=ko)
        • BaaS, FaaS 제공
  3. 개발 필요 사항
    • Android 앱
      • device id 발급 API 변경(GCM -> FCM)
      • 수신받은 push messege 핸들링
      • GCM 및 불필요한 기존 코드 삭제
    • push 발송 서버
      • 필요시 전면 재구축(Node.js가 권고사항)
      • 재구축 필요치 않을 경우
        • HTTP 엔드포인트 변경
        • auth_key 변경
        • FCM 발송 json 포맷 적용
        • 발송 결과 처리
      • 이관 참고 문서: https://developers.google.com/cloud-messaging/android/android-migrate-fcm#update_the_usage_of_gcmpubsub
  4. FCM push 발송 서버

Leave a comment