Essay/기술 회고

FCM을 이용해서 알림 기능을 구현할 때 고려해야 하는 이슈

개발자 이우진 2024. 6. 21. 11:50

FCM을 이용해서 습관 알림을 구현하는 방식에는 아래와 같은 이슈가 있습니다. 사이드 프로젝트로 정해진 시간에 알림을 보내는 기능을 구현하면서 생각했던 이슈를 공유합니다. 참고로 클라이언트는 PWA로 구현하고 있습니다.

이슈

  1. 기기가 인터넷에 연결되어 있지 않을 때 동작하지 않습니다
  2. 동시에 1000개의 메세지만 전송할 수 있습니다. 1000개가 넘어가면 사용자가 지정한 시간에 보낼 수 없습니다.
    https://stackoverflow.com/questions/42927065/limit-of-bulk-firebase-cloud-messaging#comment83876716_42928210

해결법

  1. 구글에서는 캘린더 앱과 같은 예시에서는 로컬 알림을 스케줄링 할 것을 권장합니다.
    https://firebase.google.com/docs/cloud-messaging/scale-fcm
    • 그러나 이 방법은 PWA로 구현이 가능할 지 의문이 듭니다
  2. 아직 유저 수 scale이 동시에 1000개를 보낼 정도로 도달하지 않았으니 일단 진행하고, 추후 알림 기능부터 네이티브로 점진적으로 마이그레이션하는 방법이 있습니다. 이 때 점진적으로 마이그레이션하기 위해서 WebView를 활용할 수 있습니다.

(2-참고) PWA에서 로컬 알림 예약하는 법

아래와 같은 이슈가 있습니다.

  1. Notification Triggers - 개발 중단
  2. Periodic Background Sync API - 실험 기능. 정해진 시간에 전송하는 것을 보장 못 함
    https://stackoverflow.com/questions/70611006/can-a-pwa-schedule-notifications-when-closed