미니 프로젝트 - FCM 기본 전송 기능 구현

Zyoon·2025년 7월 31일

미니프로젝트

목록 보기
30/35
post-thumbnail

📘생성된 FCM 토큰으로 실제 알림을 전송하고, 알림이 정상적으로 도착하는지 테스트


FCM 전송 테스트

앞서 FCM 초기 설정과 토큰 생성 기능을 구현했다.

이제 해당 토큰을 사용해 Postman으로 메시지를 전송하고, 실제로 WEB 환경에서 알림이 정상적으로 도착하는지 확인해본다.


초기 세팅


구현

Dto

  • FCM 메시지를 전송하기 위해 필요한 정보를 담는 DTO를 정의한다.
  • 토큰, 제목, 내용 총 세 가지 필드를 받도록 구성한다.
public class FcmMessageDto {
	private String token;
	private String title;
	private String content;
}

Controller

  • 간단한 테스트용 컨트롤러를 만든다.
  • /fcm/send경로로 POST 요청을 보내면 FCM 알림이 전송되도록 한다.
@RestController
@RequestMapping("/fcm")
@RequiredArgsConstructor
public class FcmTestController {

    private final FcmService fcmService;

    @PostMapping("/send")
    public void sendTestMessage(@RequestBody FcmMessageDto dto) {
        fcmService.sendMessageTo(dto);
    }
}

Service

  • 실제 FCM 메시지를 생성하고 전송하는 로직이다.
  • Firebase SDK의FirebaseMessaging 을 통해 전송하며, 실패 시 예외를 로그로 남긴다.
@Service
public class FcmService {

	@Override
	public void send(FcmMessageDto dto) throws Exception {
		Message message = Message.builder()
			.setToken(dto.getToken())
			.setNotification(Notification.builder()
				.setTitle(dto.getTitle()))
				.setBody(dto.getContent())
				.build())
			.build();
			
    try {
        String response = FirebaseMessaging.getInstance().send(message);
    } catch (FirebaseMessagingException e) {
        log.error("FCM 전송 실패");
    }
	
}

테스트

요청 예시

  • Postman 등으로 아래와 같은 JSON 데이터를 전송해 테스트한다.
  • 토큰에는 실제 웹에서 발급받은 FCM 토큰 값을 입력해야 한다.
  • 요청이 정상적으로 처리되면, 해당 브라우저에서 알림이 뜨는 것을 확인할 수 있다.
POST /fcm/send
Content-Type: application/json

{
  "token": "{웹에서 발급받은 FCM 토큰}"
  "title": "테스트",
  "content": "실시간 알림 테스트입니다"
}

해당 알림이 뜨면 전송 성공


마무리

간단한 테스트 컨트롤러와 서비스만으로도 FCM을 통해 웹 푸시 알림을 전송할 수 있다.

이제 실제 서비스에 맞게 토큰 관리, 예외 처리 등을 확장해나가면 된다.

profile
기어 올라가는 개발

0개의 댓글