FastAPI와 Firebase를 연동하여 푸시 알림 서비스 구현하기

서론

푸시 알림은 모바일 애플리케이션에서 중요한 역할을 하는 기능입니다. 사용자에게 실시간으로 알림을 보내고, 활발한 소통을 유지하는 데 도움을 줍니다. 이번 블로그에서는 FastAPI와 Firebase를 연동하여 푸시 알림 서비스를 구현하는 방법에 대해 알아보겠습니다.

Firebase 설정

푸시 알림을 구현하기 전에 Firebase 프로젝트를 설정해야 합니다. Firebase 콘솔에 접속하여 프로젝트를 생성하고, 클라우드 메시징(FCM)을 활성화해야 합니다. FCM에서는 API 키를 얻을 수 있으며, 이 API 키는 FastAPI와 통신할 때 사용됩니다.

FastAPI 프로젝트 설정

FastAPI를 사용하여 푸시 알림 서비스를 구현하기 위해, FastAPI 프로젝트를 먼저 설정해야 합니다. 다음 명령어를 사용하여 FastAPI를 설치합니다:

pip install fastapi

FastAPI는 Python의 비동기 웹 프레임워크로, 빠른 속도와 간결한 문법을 제공합니다. 이제 FastAPI 프로젝트를 생성하고 필요한 패키지를 설치합니다:

mkdir fastapi-push-notifications
cd fastapi-push-notifications
pip install firebase-admin

Firebase SDK 설치

Firebase SDK를 사용하여 FastAPI와 Firebase를 연동합니다. firebase-admin 패키지를 설치하여 Firebase SDK를 사용할 수 있습니다. 다음 명령어를 사용하여 패키지를 설치합니다:

pip install firebase-admin

Firebase 알림 보내기

이제 FastAPI와 Firebase를 연동하여 푸시 알림을 보내는 코드를 작성해보겠습니다. main.py 파일을 생성하고 다음 코드를 추가합니다:

from fastapi import FastAPI
import firebase_admin
from firebase_admin import credentials, messaging

app = FastAPI()

# Firebase SDK 초기화
cred = credentials.Certificate("path/to/serviceAccountKey.json")
firebase_admin.initialize_app(cred)

@app.post("/send_notification/{device_token}")
async def send_notification(device_token: str, message: str):
    # 푸시 알림 보낼 내용 설정
    notification = messaging.Notification(title="새로운 알림", body=message)

    # 푸시 메시지 설정
    message = messaging.Message(
        data={"key": "value"},
        token=device_token,
        notification=notification,
    )

    # 푸시 알림 전송
    response = messaging.send(message)
    return {"success": True, "response": response}

위의 코드에서 path/to/serviceAccountKey.json을 Firebase 콘솔에서 다운로드한 서비스 계정 키 파일의 경로로 변경해야 합니다. 이 파일은 Firebase 액세스 권한을 제공하고, FastAPI와 Firebase를 연결합니다.

푸시 알림을 보내려면 /send_notification/{device_token} 엔드포인트로 POST 요청을 보내야 합니다. 요청 본문에는 device_token (디바이스 토큰)과 message (알림 내용)을 JSON 형식으로 전달해야 합니다. 푸시 알림이 성공적으로 보내지면 응답으로 {"success": True, "response": response}를 받게 됩니다.

결론

FastAPI와 Firebase를 연동하여 푸시 알림 서비스를 구현하는 방법에 대해 알아보았습니다. FastAPI의 간결한 문법과 Firebase의 강력한 기능을 함께 활용하여 효율적이고 실시간성 있는 푸시 알림 서비스를 구현할 수 있습니다. 이를 이용하여 모바일 애플리케이션 사용자들에게 실시간 정보를 전달할 수 있습니다.

#FastAPI #Firebase