미니 프로젝트 - FCM 초기 세팅

Zyoon·2025년 7월 31일

미니프로젝트

목록 보기
28/35
post-thumbnail

📘Spring Boot 에서 FCM 기능 활용을 위한 초기세팅


스프링 부트 프로젝트에 FCM 연동하기

FCM(Firebase Cloud Messaging)은 모바일 기기에 푸시 알림을 전송할 때 사용하는 서비스다.

스프링 부트 백엔드에서 FCM을 통해 알림을 보내기 위해 기본 설정을 진행한다.

  1. Gradle 의존성 추가
  2. Firebase 콘솔 설정 및 서비스 계정 키 발급
  3. firebase-service-account.json 등록
  4. FCM 초기화 설정

의존성 추가

dependencies {
  // Firebase (버전 변경 유의)
  implementation 'com.google.firebase:firebase-admin:9.5.0'
}

Firebase 콘솔 설정 및 서비스 계정 키 발급

프로젝트 생성

Firebase | Google's Mobile and Web App Development Platform

먼저 Firebase 에서 프로젝트 하나를 만들어준다.


firebase-service-account.json 발급

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"
}

FCM 초기화 설정

위의 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 토큰을 이용해 실제 알림을 전송하거나,
토큰을 저장하고 관리하는 기능을 추가하면 된다.

profile
기어 올라가는 개발

0개의 댓글