Firebase
기본 정보
- 이름: Firebase
- 분류: BaaS(Backend as a Service)
- 개발사: Google
- 최초 공개: 2011년 (2014년 Google 인수)
- 주요 용도: 인증, 데이터베이스, 스토리지, 호스팅, 푸시 알림
- 관련 주제: #Firebase #BaaS #Backend #Google #Cloud
개요
Firebase는 Google에서 제공하는 BaaS(Backend as a Service) 플랫폼이다.
회원가입, 로그인, 데이터베이스, 파일 저장, 푸시 알림, 분석, 호스팅 등 백엔드에서 자주 필요한 기능을 직접 서버를 구축하지 않고 사용할 수 있다.
특히 MVP(최소 기능 제품), 스타트업, 모바일 앱, 개인 프로젝트 개발에서 많이 사용되며, Flutter, Android, iOS, Unity, React, Next.js 등과 쉽게 연동할 수 있다.
Firebase 구조
Client App
↓
Firebase SDK
↓
Firebase Services
├── Authentication
├── Firestore
├── Storage
├── Hosting
├── Cloud Functions
├── FCM
↓
Google Cloud
주요 특징
- 서버 구축 없이 백엔드 제공
- 실시간 데이터 동기화
- 다양한 인증 방식
- 클라우드 스토리지
- 서버리스(Serverless)
- 모바일·웹 통합 지원
- Google Cloud 기반
주요 서비스
Authentication
회원 인증 서비스
지원 방식
- 이메일/비밀번호
- Google 로그인
- Apple 로그인
- GitHub 로그인
- Facebook 로그인
- 익명 로그인
- 전화번호 인증
Firestore
NoSQL 문서(Document) 기반 데이터베이스
Collection
↓
Document
↓
Field
예시
users
↓
user001
↓
name
age
email
Realtime Database
실시간 동기화 데이터베이스
Client A
↓
Firebase
↓
Client B
↓
즉시 반영
채팅, 실시간 게임 등에 적합하다.
Cloud Storage
파일 저장 서비스
지원
- 이미지
- 동영상
- 문서
- 음성 파일
Hosting
웹사이트 배포 기능
React
↓
Firebase Hosting
↓
HTTPS
정적 웹사이트를 빠르게 배포할 수 있다.
Cloud Functions
서버리스 함수
Client
↓
Cloud Function
↓
Database
Node.js 기반으로 실행된다.
Firebase Cloud Messaging (FCM)
푸시 알림 서비스
Server
↓
FCM
↓
Android
iPhone
Web
Analytics
사용자 행동 분석
수집 예시
- 앱 실행 수
- 방문자 수
- 구매 이벤트
- 버튼 클릭
- 사용자 유지율
Firestore 예제
import {
collection,
getDocs
}
from
"firebase/firestore";
데이터 조회
const snapshot =
await getDocs(
collection(
db,
"users"
)
);
Authentication 예제
import {
signInWithEmailAndPassword
}
from
"firebase/auth";
로그인
await signInWithEmailAndPassword(
auth,
email,
password
);
Storage 예제
uploadBytes(
storageRef,
file
);
이미지를 업로드할 수 있다.
Hosting 배포
firebase deploy
Flutter와 Firebase
Flutter
↓
Firebase
↓
Authentication
Firestore
Storage
Flutter에서 가장 많이 사용하는 백엔드 중 하나이다.
Unity와 Firebase
Unity
↓
Firebase SDK
↓
Login
Cloud Save
Analytics
게임 개발에서 자주 활용된다.
React와 Firebase
React
↓
Firebase
↓
Firestore
Next.js와 Firebase
Next.js
↓
Firebase Auth
↓
Firestore
↓
Hosting
Firebase vs MySQL
| Firebase | MySQL |
|---|---|
| NoSQL | RDBMS |
| 실시간 지원 | 별도 구현 필요 |
| 서버리스 | 서버 구축 필요 |
| 빠른 개발 | 구조 설계 필요 |
| 문서(Document) 기반 | 테이블 기반 |
Firebase vs Supabase
| Firebase | Supabase |
|---|---|
| NoSQL 중심 | PostgreSQL 기반 |
| Google 생태계 | 오픈소스 |
| Firestore 사용 | SQL 사용 |
| FCM 지원 | 기본 제공 안 함 |
| Cloud Functions | Edge Functions 지원 |
대표 활용 분야
- 모바일 앱
- Flutter 프로젝트
- Unity 게임
- React 프로젝트
- 채팅 서비스
- 관리자 페이지
- 실시간 서비스
- MVP 개발
장점
- 빠른 개발
- 서버 관리 불필요
- 실시간 데이터
- 인증 기능 제공
- 높은 확장성
- Google Cloud 기반
단점
- 벤더 종속(Vendor Lock-in)
- 복잡한 SQL 조회에 불리
- 대규모 서비스에서는 비용 증가 가능
- Firestore 데이터 모델링 학습 필요
실무 메모
실무에서는 다음과 같은 방식이 권장된다.
- Firestore 보안 규칙(Security Rules) 설정
- Authentication와 Firestore 권한 연동
- 환경 변수(API Key) 분리
- Cloud Storage 업로드 제한 설정
- Cloud Functions로 민감한 로직 처리
- Analytics 이벤트 설계
- Firestore 읽기/쓰기 비용 모니터링
- 컬렉션 구조를 단순하게 설계
- 오프라인 캐시 기능 활용
- 무료 플랜 한도와 과금 정책 확인
Firebase와 함께 사용하는 기술
대표 활용 사례
- 모바일 로그인 시스템
- 채팅 앱
- 실시간 게임 랭킹
- 클라우드 저장
- 쇼핑몰 회원 관리
- AI 서비스 사용자 인증
- 포트폴리오 사이트
- MVP 서비스
관련 문서
출처
- Firebase 공식 홈페이지
- Firebase 공식 문서
- Google Cloud 문서