📘Spring Boot 에서 FCM 기능 활용을 위한 초기세팅
FCM(Firebase Cloud Messaging)은 모바일 기기에 푸시 알림을 전송할 때 사용하는 서비스다.
스프링 부트 백엔드에서 FCM을 통해 알림을 보내기 위해 기본 설정을 진행한다.
firebase-service-account.json 등록dependencies {
// Firebase (버전 변경 유의)
implementation 'com.google.firebase:firebase-admin:9.5.0'
}
Firebase | Google's Mobile and Web App Development Platform
먼저 Firebase 에서 프로젝트 하나를 만들어준다.
fcm 연결을 위한 config 파일이 필요한데, serviceAccountKey 가 들어간 json 파일을 생성해야 한다.
만든 프로젝트 들어가서 왼쪽 위에 프로젝트 설정 > 서비스 계정에 들어간다.

자바로 할 것이므로 자바 선택 후 새 비공개 키 생성 선택 하게되면 JSON 파일을 받게된다.

이런식의 파일이 생성된다. 이름은 firebase-service-account.json 으로 해준 뒤 보관해둔다.
//firebase-service-account.json 예시
{
"type": "service_account",
"project_id": "your-project-id",
"private_key_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"private_key": "-----BEGIN PRIVATE KEY-----\nXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-----END PRIVATE KEY-----\n",
"client_email": "firebase-adminsdk-xxxxx@your-project-id.iam.gserviceaccount.com",
"client_id": "123456789012345678901",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-xxxxx%40your-project-id.iam.gserviceaccount.com",
"universe_domain": "googleapis.com"
}
위의 firebase-service-account.json 파일을 resources > firebase 폴더 안에 넣어준다.
외부 유출을 막기위해 gitignore 설정해준다.

Firebase Config 파일을 별도로 만들어 준 뒤, 해당 파일 Path 를 설정해준다.
그리고,resouces 파일 아래부터 위에서 생성한 json 파일 경로를 설정해준다.
@Configuration
public class FirebaseConfig {
@PostConstruct
public void init() {
try {
InputStream serviceAccount =
new ClassPathResource("firebase/firebase-service-account.json").getInputStream();
FirebaseOptions options = FirebaseOptions.builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.build();
if (FirebaseApp.getApps().isEmpty()) {
FirebaseApp.initializeApp(options);
}
} catch (IOException e) {
throw new RuntimeException("Firebase 초기화 실패", e);
}
}
}
여기까지 스프링 부트 프로젝트에 FCM을 연동하는 기본 설정을 완료했다.
이제 발급된 FCM 토큰을 이용해 실제 알림을 전송하거나,
토큰을 저장하고 관리하는 기능을 추가하면 된다.