내용 FCM API를 사용해 프로그래밍 방식으로 Request Send를 build 하는 경우, 시간이 지남에 따라, 오래된 registration token이 있는 비 활성기기에 메시지를 보내 리소스를 낭비할 수 있다. 이러한 상황은, Firebase에 보고된 메시지 전송 데이터 또는 BigQuery로 내보낸 데이터에 영향을 미쳐, 전송률이 급격하게 감소할 수 있다. 이러한 점을 막기 위해 효율적인 메시지 타겟팅과 유효한 전송보고를 위해서 취할 수 있는 조치에 대한 것이다. Basic Best practices 프로그래밍 방식으로 Request send를 build하기위해, 따라야하는 Fundamental practices는 다음과 같다 1. 서버에 Registration Token 저장 → 서버의 중..
작성 내용 1편에서 FCM에 대한 기초 개념과 그 구조, 메시지의 종류에 대해 알아봤다. 이 때, 메시지의 종류에 따라 전달하는 것이 다르다는 것을 확인 할 수 있었다. 이는 메시지 종류에 따라 달라지는 것으로, 이번에는 메시지 종류가 아닌 전달하는 플랫폼에 따라 달라지는 것을 확인하고자 한다. 이번 게시글은 FCM의 전반적인 부분을 다루기 때문에 안드로이드가 중심이라 보기에는 어렵지만, 원활한 개발을 위해선 알아두어서 좋을 것이라 판단하였기 때문에 공식문서에 있는 것은 제대로 정리하고자 한다. 플랫폼간 Message Customizing Firebase Admin SDK및 FCM v1 HTTP Protocol사용시, 메시지 Request에서 메시지 객체에서 사용 가능한 모든 필드를 설정할 수 있다. 이..
작성 배경 및 목적 앱 개발을 하며, 빼놓을 수 없는 것중 하나가 유저에게 알림 메시지를 보내는 것이다. 특히 다른 사람의 활동에 영향을 받는 유저간 커뮤니케이션이 가능한 앱의 경우에는 알림 기능이 사실상 앱의 목적상 필수적으로 들어가야 하는데, 규모가 큰 경우에는 어떤지는 모르겠으나, 소규모의 앱을 개발하면서 FCM이 가장 간편하고 합리적이라는 판단에 의해서 많이 사용하였었다. 현재까지는 단순히 구현에 급급했었기에 이번 기회에 FCM에 대해 기초 개념과 구조부터 차근차근 알아보고자 한다. FCM의 경우 개인적으로 공식문서가 잘 되어있다고 생각하기 때문에 이를 바탕으로 정리 할 예정이다. (공식문서 번역은 Cloud Translation API에 의해 번역되었다고 하는데, 개인적으로 영어 문서를 보는 것..
Retrofit에서의 Call Adapter 도입 배경 Retrofit 정의 Retrofit은 HTTP API에 대한 직접적인 별도 조작없이 인터페이스를 사용해 쉽게 요청을 보낼 수 있고 쉽게 응답결과를 객체(Object)로 변환해주는 라이브러리이다. 또한, 코틀린을 사용하면, API 호출시 내부적으로 요청이 이루어지기 때문에 따로 콜백을 정의할 필요없이 바로 응답객체를 받을 수 있다. 문제 상황 그러나, API 호출시 에러가 발생하거나, 기대하지 않은 응답 코드가 오는 등의 문제가 생기면 매 호출마다 try-catch 예외처리 지옥에 빠질 수있다. 우리가 원하는 것은 요청 결과를 Wrapping하여 API를 호출하는 위치에서 is Success, is Failure에 따라 동작을 변경하고자 하는것이다...