본문 바로가기

Firebase

FCM 간단한 동작 원리 및 기본 설정

1. 개요

구구모 프로젝트에서 댓글 알림 구현을 담당하게 되었다. 처음에 sse를 사용하다 FCM으로 기술을 변경하였는데, 이 역시 알아야 사용할 수 있으니, 그에 대한 기초적인 부분을 작성해보고자 한다.

2. 작동 원리

https://firebase.google.com/docs/cloud-messaging/fcm-architecture?hl=ko&_gl=1*gkjdvc*_up*MQ..*_ga*MTI5Njk0ODA0My4xNzIxMTQ4NTI4*_ga_CW55HF8NVT*MTcyMTE0ODUyOC4xLjAuMTcyMTE0ODUyOC4wLjAuMA..

 

FCM 아키텍처 개요  |  Firebase 클라우드 메시징

Google I/O 2023에서 Firebase의 주요 소식을 확인하세요. 자세히 알아보기 의견 보내기 FCM 아키텍처 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. FCM은 메

firebase.google.com

 

위 공식 문서를 참고하였다. 사진의 동작은 파이어베이스에서 다 해준다. 그렇다면 서버 측에서 구현해야 할 것들은 무엇일까?

기본적인 동작 순서는 다음과 같다.

  1. 클라이언트는 파이어베이스에서 토큰을 받아온다.
  2. 클라이언트는 로그인 시 서버에 토큰을 보내고, 서버는 이를 저장한다.
  3. 클라이언트에서 서버에 알림 관련 요청을 보낸다(구구모의 경우 댓글 작성)
  4. 서버는 2에서 저장했던 토큰을 가지고 파이어베이스에 알림 전송 요청을 날린다.
  5. 파이어베이스는 요청을 수행하여 클라이언트에 알림을 전송한다.

이에 따라 서버측에서는 2, 3의 동작만 구현하면 된다.

 

3. 기본 설정

FCM을 사용하기 위해서는 사전 설정이 필요하다. 서버단 구현에 필요한 사전 설정을 알아보자.

우선 파이어베이스 콘솔에 접속한다. 접속하기 위해서는 구글 계정이 필요하다.

프로젝트 추가를 누르면 위와 같은 화면이 나온다. 이름을 지정해주자.

다음은 Google 애널리틱스 설정이다. 선택사항인데, 본 프로젝트에서는 설정하지 않기로 했다.

파이어베이스 프로젝트가 생성된 것을 확인할 수 있다.

 

3-1 serviceAccountKey.json

파이어베이스 기능을 사용하기 위해서는 비밀 키를 발급받아야 한다.

우측 위 설정에서 프로젝트 설정을 클릭한다.

서비스 계정 탭을 클릭하면 계정 키를 발급받을 수 있다. 이 프로젝트는 자바를 사용하므로 이를 발급받는다.

@Configuration
public class FirebaseConfig {

    @PostConstruct
    public void init() throws IOException {
        InputStream serviceAccount = new ClassPathResource("firebase/serviceAccountKey.json").getInputStream();
            FirebaseOptions options = FirebaseOptions.builder()
                    .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                    .build();
            FirebaseApp.initializeApp(options);
        }
}

위 사진에서 제시하는 방법으로 비공개 키를 사용하여 파이어베이스를 실행할 수 있다.