And Brain said,

FCM(Firebase Cloud Messaging) Server, 플랫폼을 가리지 않는 우체국 본문

IT/Java & Kotlin & Spring boot

FCM(Firebase Cloud Messaging) Server, 플랫폼을 가리지 않는 우체국

The Man 2022. 12. 9. 19:53
반응형

https://firebase.google.com/docs/cloud-messaging/fcm-architecture


오늘은 Firebase Cloud Messaging 이하, FCM에 대해 알아보고 FCM 서버와 간단한 Spring Boot Java API를 통해 통신하여 안드로이드 에뮬레이터에 Push 알림이 발송되는지까지 테스트해보도록 하자.

FCM?


FCM이란 무료 메시지를 보낼 수 있는 플랫폼 간 메시징 솔루션이다.

기존 메시지 전송 방식은 A가 Server를 통해 B에게 실시간으로 메시지를 전송하려면 B가 서버에 계속 접속해 있어야 했다.

이를 실제로 구현한다면, 많은 배터리와 네트워크 사용이라는 문제를 야기시켰다.

그리하여 나온것이 FCM이다.

A가 Server를 통해 B에게 실시간으로 메시지를 전송한다는 방식은 같지만 중간에 Cloud Messaging Server가 끼어든다.

A -> Server -> Cloud Messaging Server -> B

Cloud Messaging Server는 이 문제점을 해결하기 위한 서버로 이를 중간에 둠으로써, 사용자는 낮은 배터리와 네트워크 사용 만으로도 메시지를 실시간으로 송수신 처리할 수 있게 된다.



일단 Firebase의 프로젝트를 만들고


프로젝트 설정에서 새 비공개 키를 생성해주자.


만들어진 json 파일을 resources 밑에 넣어주자.


Firebase-admin과 okhttp 의존성을 추가해주자.

(오로지 전송 테스트만을 위한 코드니 참고만 바란다.)

Message 형태
Controller

 

DTO

 

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.common.net.HttpHeaders;
import lombok.RequiredArgsConstructor;
import okhttp3.*;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Component;

import java.io.IOException;
import java.util.List;

Service


Postman을 통해 body에 보내주면 백엔드는 끝.



자 이제 안드로이드 에뮬레이터를 통해 테스트해보자.

안드로이드 스튜디오를 통한 FCM 예제들을 찾아서 기본 설정들을 해주고 봐야만 한다.


이렇게 왔다면 성공이다.

Thanks for watching, Have a nice day.

 

반응형
Comments