웹 개발은 크게 프론트엔드와 백엔드로 나뉩니다. 프론트엔드는 사용자 인터페이스(UI)를 구성하고, 백엔드는 데이터 처리와 저장을 담당합니다. 이번 글에서는 Firebase를 Python 환경에서 사용하여 백엔드를 간편하게 구축하는 방법을 소개하겠습니다.
Firebase란?
Firebase는 구글이 제공하는 클라우드 기반 백엔드 서비스입니다. 주로 인증, 데이터베이스, 스토리지, 푸시 알림 등을 손쉽게 구현할 수 있는 다양한 도구를 포함하고 있습니다. Firebase를 사용하면 복잡한 서버 설정 없이 빠르게 애플리케이션의 백엔드를 구축할 수 있으며, 특히 실시간 데이터 처리에 유리합니다.
Python에서 Firebase Admin SDK 사용하기
Firebase는 Python에서도 사용할 수 있는 SDK를 제공합니다. 이를 통해 서버 측에서 Firebase의 다양한 기능을 쉽게 활용할 수 있습니다. Python Firebase Admin SDK는 특히 서버에서 백엔드 작업을 수행할 때 많이 사용됩니다.
1. Firebase 프로젝트 생성
- Firebase 콘솔 접속
Firebase 웹사이트(https://firebase.google.com/)에 접속하여 로그인한 후, Firebase 콘솔로 이동합니다. - 새 프로젝트 생성
'프로젝트 추가'를 클릭하고 프로젝트 이름을 입력한 후, Google Analytics 설정 여부를 선택하여 프로젝트를 생성합니다. - 서비스 계정 키 다운로드
Firebase Admin SDK를 사용하기 위해 서비스 계정 키가 필요합니다. Firebase 콘솔에서 '프로젝트 설정'에 들어가 '서비스 계정' 탭에서 새 키를 생성하고 다운로드합니다.
2. Firebase Admin SDK 설치
Firebase Admin SDK는 Python 환경에서도 사용할 수 있으며, 이를 통해 백엔드에서 Firebase 기능을 제어할 수 있습니다. 설치는 pip 명령어를 사용합니다.
pip install firebase-admin
Firebase SDK(Software Development Kit)는 Firebase의 다양한 기능을 애플리케이션에서 쉽게 사용할 수 있도록 도와주는 도구 모음입니다. 이를 통해 개발자는 Firebase의 데이터베이스, 인증, 클라우드 스토리지, 푸시 알림 등의 기능을 직접 구현하지 않고, SDK를 통해 간단한 코드로 사용할 수 있습니다. 각 플랫폼(Android, iOS, 웹 등)에 맞는 SDK가 제공되며, 이를 사용하여 Firebase의 기능을 손쉽게 애플리케이션에 통합할 수 있습니다.
3. Firebase 초기화
Firebase Admin SDK를 사용하기 위해서는 서비스 계정 키를 통해 초기화를 해야 합니다. 다음은 Python에서 Firebase를 초기화하는 기본 코드입니다.
import firebase_admin
from firebase_admin import credentials
# 서비스 계정 키 경로 설정
cred = credentials.Certificate('path/to/serviceAccountKey.json')
# Firebase 앱 초기화
firebase_admin.initialize_app(cred)
참고로 `serviceAccountKey.json`는 Firebase 프로젝트에서 `프로젝트 설정 - 서비스 계정 - Firebase Admin SDK`의 원하는 언어를 선택한 뒤 `새 비공개 키 생성`을 누르면 됩니다.

4. Firestore 데이터베이스 사용
Firebase의 NoSQL 데이터베이스인 Firestore를 Python에서 사용하는 방법을 알아보겠습니다. Firestore 클라이언트를 생성한 후, 데이터를 읽고 쓰는 기본적인 작업을 할 수 있습니다.
연결
`firestore.client()`를 사용하여 Firestore 데이터베이스와 연결된 클라이언트를 생성합니다. 이 클라이언트를 통해 Firestore에서 데이터를 추가, 읽기, 업데이트, 삭제할 수 있습니다.
from firebase_admin import firestore
# Firestore 클라이언트 생성
db = firestore.client()
추가
`db.collection(u'users').document(u'alovelace')` 부분에서 `users`라는 이름의 컬렉션과 `alovelace`라는 문서를 지정합니다.
- 컬렉션: Firestore에서 데이터를 그룹으로 관리하는 방법. 예를 들어 users는 사용자 데이터를 모아놓는 그룹입니다.
- 문서: 컬렉션 내의 개별 데이터 항목을 말하며, 고유한 ID를 가집니다. 이 코드에서는 alovelace라는 ID를 가진 문서입니다.
`.set()` 메서드는 문서에 데이터를 저장합니다. 이 코드에서는 `first`, `last`, `born`이라는 세 개의 필드를 가진 데이터를 저장합니다. Ada Lovelace라는 사용자의 이름과 출생 연도를 추가하는 예시입니다.
# 데이터 추가
doc_ref = db.collection(u'users').document(u'alovelace')
doc_ref.set({
u'first': u'Ada',
u'last': u'Lovelace',
u'born': 1815
})
읽기
`doc_ref.get()`는 Firestore에서 `alovelace` 문서를 가져옵니다. `if doc.exists:`를 통해 문서가 존재하는지 확인합니다. 문서가 존재하면 `doc.to_dict()`를 사용하여 데이터를 사전 형태로 변환해 출력합니다. 앞서 저장한 자료와 같은 자료가 출력 될 것입니다.
# 데이터 읽기
doc = doc_ref.get()
if doc.exists:
print(f'Document data: {doc.to_dict()}')
else:
print('No such document!')
다음 단계
이번 글에서는 Firebase 프로젝트 생성 및 Python에서 Firebase Admin SDK를 이용한 초기 설정을 다루었습니다. 다음 글에서는 Firebase Authentication을 이용해 사용자 인증 기능을 구현하는 방법을 살펴보겠습니다.