서버 프로그램에서 앱으로 전송하는 네트워크 트래픽을 최적화하는 것은 쉬운 일이 아닙니다. 이 문제를 해결하려면 앱에서 주기적으로 서버를 폴링하여 업데이트를 확인해야 합니다. 이 방법을 사용하면 앱에서 기기의 무선 기능을 시작할 때 새로 얻은 데이터가 없다는 응답만 받은 채 네트워크 연결 및 전력을 낭비할 수 있습니다. 새로운 데이터가 있을 때 서버가 앱에 알리는 것이 훨씬 더 효율적이지만 서버에서 수천 개의 기기로 알림을 전송하는 방법을 찾기란 결코 쉬운 일이 아니었습니다.
Firebase 클라우드 메시징(FCM) 서비스는 앱이 어디에 설치되어 있든 서버가 앱의 인스턴스에 알림을 전송할 수 있게 허용합니다. 이로써 네트워크 효율성을 높이고 전력 사용량을 줄여 이러한 통신 문제를 해결합니다.
이 강의에서는 FCM 서비스를 사용하여 서버에서 시작한 작업의 네트워크 사용과 배터리 소비를 줄이는 방법을 설명합니다.
FCM을 사용하여 서버 업데이트 전송
Firebase 클라우드 메시징(FCM)은 앱 서버에서 앱으로 간단한 메시지를 전송하는 데 사용되는 경량 메커니즘입니다. FCM을 사용하면 앱 서버가 메시지 전달 메커니즘을 이용하여 새 데이터가 있다는 것을 앱에 알립니다. 이 접근 방식에서는 새로 얻을 수 있는 데이터가 없을 때 새 데이터의 백엔드 서버에 접속하지 않으므로 앱에서 실행하는 네트워크 트래픽이 없어집니다.
FCM 사용의 한 가지 예로 회의에서 발표자 세션을 나열하는 앱을 들 수 있습니다. 서버에서 세션이 업데이트되면 서버는 업데이트가 있음을 알리는 간단한 메시지를 앱에 보냅니다. 그러면 앱은 서버에 새 데이터가 있을 때만 기기의 세션을 업데이트하도록 서버를 호출할 수 있습니다.
FCM은 앱이 서버의 변경사항을 폴링하게 하는 것보다 더 효율적입니다. FCM 서비스를 사용하면 폴링해도 업데이트가 반환되지 않는 불필요한 연결이 없어지고 기기의 무선 기능이 켜지게 할 수 있는 주기적인 네트워크 요청이 실행되지 않습니다. FCM은 여러 앱에서 사용할 수 있으므로 앱에서 이 서비스를 사용하면 기기에 필요한 총 네트워크 연결 수가 줄어들고 기기 무선 기능이 더 자주 절전 모드로 전환됩니다.