주요 내용
Firebase는 애플리케이션 개발을 위한 준비된 도구를 제공하는 Backend-as-a-Service(BaaS) 플랫폼입니다. Firebase는 개발자가 서버 인프라를 처음부터 구축해야 하는 필요성을 없애줍니다 — 분석, 데이터베이스, 인증, 푸시 알림 등이 SDK를 통해 즉시 사용 가능합니다.
Google은 2014년에 Firebase를 1억 달러에 인수하고 Google Cloud Platform과 통합했습니다. Firebase는 20개 이상의 제품을 제공하며 프로젝트 요구 사항에 따라 결합할 수 있습니다. 대부분의 서비스에는 넉넉한 무료 한도(Spark Plan)가 있으며, 성장을 위해 종량제 요금제(Blaze Plan)도 이용 가능합니다.
Firebase 통합은 Firebase Console에서 프로젝트를 만들고 구성 파일(iOS의 경우 GoogleService-Info.plist, Android의 경우 google-services.json)을 추가하는 것으로 시작됩니다. Firebase는 iOS, Android, Flutter, React Native, Unity 및 웹 애플리케이션을 지원하여 모든 플랫폼을 위한 범용 솔루션입니다.
Firebase Analytics는 사용자 행동에 대한 데이터를 수집하는 무료 분석 도구입니다. Firebase Analytics는 전체 플랫폼의 핵심입니다 — 분석 데이터는 타겟팅 및 개인화를 위해 다른 모든 Firebase 서비스에서 사용됩니다.
Firebase Crashlytics는 앱 충돌을 추적하는 가장 인기 있는 도구입니다. Crashlytics는 앱이 충돌할 때마다 스택 추적, 로그 및 기기 데이터를 자동으로 수집합니다. 보고서는 오류 유형별로 그룹화되어 가장 중요한 문제를 신속하게 식별할 수 있습니다.
Crashlytics는 사용자 정의 로그, 키 및 비치명적 예외를 지원합니다. 비치명적 예외를 사용하면 앱을 중단시키지 않고 처리된 오류를 추적할 수 있습니다 — 예를 들어, 실패한 API 요청이나 비즈니스 로직의 예외 등입니다.
Firebase Performance는 앱 성능을 모니터링하는 도구입니다. Performance는 시작 시간, 네트워크 지연 시간, 화면 렌더링 및 HTTP 요청을 추적합니다. 앱을 느리게 하고 사용자 경험을 저하시키는 병목 현상을 식별합니다.
Firebase Analytics와 Crashlytics의 통합은 무엇이 충돌했는지뿐만 아니라 충돌 전에 사용자가 어떤 작업을 수행했는지도 확인할 수 있는 고유한 기능을 제공합니다. IT Sectr는 프로덕션에서 빠른 버그 진단을 위해 이 조합을 사용합니다 — 감지에서 수정까지의 시간이 3~4배 단축됩니다.
Firebase는 두 개의 NoSQL 데이터베이스와 파일용 클라우드 스토리지를 제공합니다. Firestore와 Realtime Database 중 선택은 사용 사례에 따라 다릅니다 — 두 데이터베이스 모두 실시간으로 데이터를 동기화하지만 아키텍처가 다릅니다.
| 특성 | Cloud Firestore | Realtime Database |
|---|---|---|
| 데이터 모델 | 컬렉션 및 문서(JSON 객체) | 단일 대형 JSON 트리 |
| 쿼리 | 복합, 인덱스, 정렬, 필터링 | 단순, 단일 노드에서 정렬 |
| 확장 | 자동, 멀티 리전 | 단일 리전, 대역폭 제한 |
| 가격 | 읽기/쓰기/삭제 볼륨 | 트래픽 및 스토리지 볼륨 |
| 오프라인 모드 | 지원(디스크 캐시) | 지원(메모리 캐시) |
| 최적 사용 | 채팅, 소셜 네트워크, 복잡한 쿼리 | 채팅, 게임, 간단한 동기화 |
Cloud Storage는 파일(이미지, 비디오, 오디오)을 위한 스토리지입니다. Firebase Storage는 자동으로 페타바이트까지 확장되며 연결 중단 시 재개 기능으로 안정적인 업로드를 제공합니다. 보안 액세스를 위해 Firebase Auth와 통합됩니다.
유연한 쿼리와 확장성 덕분에 새 프로젝트에는 Firestore가 권장됩니다. Realtime Database는 소량의 데이터가 있는 간단한 채팅 및 게임에 적합합니다. IT Sectr는 일반적으로 Firestore를 기본 데이터베이스로 사용하고 Realtime Database는 실시간 협업에만 사용합니다.
Firebase Authentication은 사용자 인증을 위한 준비된 솔루션입니다. Firebase Auth는 이메일/비밀번호, Google, Apple, Facebook, Twitter, GitHub, 전화 인증 및 익명 로그인을 지원합니다. 전체 인증 프로세스는 SDK를 통해 클라이언트 측에서 구현됩니다.
Google Sign-In은 가장 인기 있는 인증 제공업체 중 하나입니다. Google Sign-In 통합은 Firebase Console을 통해 15~30분이 소요되며 백엔드 개발이 필요하지 않습니다. 사용자는 Google 계정으로 한 번의 클릭으로 로그인합니다.
Firebase Auth는 Admin SDK를 통해 백엔드 기능도 제공합니다. 서버에서 사용자를 생성하고, 프로필을 업데이트하고, 세션을 관리하고, ID 토큰을 확인할 수 있습니다. Cloud Functions와의 통합을 통해 사용자 정의 인증 시나리오를 만들 수 있습니다.
Security Rules — 데이터베이스 및 스토리지를 위한 Firebase의 보안 메커니즘입니다. 액세스 규칙은 선언적으로 설명되며 모든 요청에서 확인됩니다. 예: userId가 현재 인증된 사용자와 같은 경우에만 문서 읽기를 허용합니다.
Firestore에 대한 간단한 Security Rule 예시:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, write: if request.auth.uid == userId;
}
match /posts/{postId} {
allow read: if true;
allow write: if request.auth.uid == resource.data.authorId;
}
}
}
Firebase Cloud Messaging(FCM)은 푸시 알림을 보내는 서비스입니다. FCM은 매일 최대 5000억 개의 메시지를 처리하며 iOS, Android 및 Web을 지원합니다. 메시지는 notification messages(자동 표시)와 data messages(앱 내 처리)로 나뉩니다.
Firebase Remote Config를 사용하면 새 버전을 게시하지 않고도 앱 동작을 변경할 수 있습니다. Remote Config는 A/B 테스트, 기능 켜기/끄기, UI 사용자 정의 및 동적 매개변수 변경(예: 광고 빈도, 페이월 텍스트)에 사용됩니다.
Firebase A/B Testing은 실험을 수행하기 위한 도구입니다. 다른 매개변수로 앱의 두 버전을 만들고 메트릭에 미치는 영향을 측정합니다(전환율, 유지율, 수익). 테스트는 자동으로 통계적 유의성을 계산하고 승자를 결정합니다.
Firebase Dynamic Links는 사용자를 앱의 올바른 위치로 안내하는 스마트 링크입니다. Dynamic Links는 앱이 설치되지 않은 경우에도 작동합니다 — 이 경우 스토어 페이지로 이동하고 설치 후 컨텍스트를 복원하여 대상 화면으로 리디렉션합니다.
IT Sectr는 환영 화면부터 결제 흐름까지 모든 주요 시나리오를 최적화하기 위해 Remote Config + A/B Testing 조합을 사용합니다. Remote Config 매개변수는 Firebase Console을 통해 실시간으로 변경할 수 있습니다 — 이는 기존 릴리스 주기에서는 불가능한 유연성을 제공합니다.
Firebase Test Lab은 자동화된 앱 테스트를 위한 클라우드 솔루션입니다. Test Lab은 실제 Google 기기에서 테스트를 실행하며 다양한 구성(다른 OS 버전, 화면 해상도, 언어)으로 테스트할 수 있습니다. Espresso(Android), XCUITest(iOS) 및 Robo 테스트를 지원합니다.
Firebase App Distribution은 앱의 베타 버전을 배포하기 위한 플랫폼입니다. App Distribution은 Android에서 TestFlight를 대체하고 iOS에서는 이를 보완합니다. APK/AAB를 업로드하고 Crashlytics 통합을 통해 테스터로부터 피드백을 받을 수 있습니다.
Test Lab과 App Distribution의 조합은 개발의 모든 단계에서 품질을 보장합니다: 실제 기기에서의 자동화 테스트부터 실제 사용자와의 베타 테스트까지. CI/CD(GitHub Actions, Bitrise)와의 통합으로 프로세스가 완전히 자동화됩니다.
| 서비스 | 목적 | 무료 한도 | iOS | Android | Web |
|---|---|---|---|---|---|
| Analytics | 사용자 이벤트 수집 및 분석 | 무제한 | + | + | + |
| Crashlytics | 충돌 보고 | 무제한 | + | + | - |
| Firestore | NoSQL 데이터베이스 | 1 GB 스토리지 | + | + | + |
| Realtime DB | 실시간 데이터베이스 | 1 GB 스토리지 | + | + | + |
| Auth | 사용자 인증 | 무제한 | + | + | + |
| Cloud Messaging | 푸시 알림 | 무제한 | + | + | + |
| Remote Config | 매개변수 관리 | 무제한 | + | + | + |
| Performance | 성능 모니터링 | 무제한 | + | + | + |
| Test Lab | 클라우드 테스트 | 10 테스트/일 | + | + | - |
| App Distribution | 베타 버전 배포 | 무제한 | + | + | - |
| Cloud Functions | 온디맨드 서버 코드 | 200만 호출/월 | + | + | + |
자주 묻는 질문
Firebase에는 넉넉한 한도의 무료 Spark Plan이 있습니다 — 분석, 충돌 보고 및 인증은 무료이며 무제한입니다. Blaze Plan(종량제)은 한도를 초과할 때 필요합니다 — 예를 들어, Firestore에서 1GB 이상 또는 Cloud Functions에서 200만 회 이상 호출하는 경우. 대부분의 스타트업은 처음 1~2년 동안 무료 한도를 초과하지 않습니다.
대부분의 새 프로젝트에는 Firestore가 권장됩니다. Firestore는 더 나은 확장성, 더 풍부한 쿼리 및 멀티 리전 복제를 제공합니다. Realtime Database는 간단한 실시간 시나리오(소량의 데이터 채팅, 실시간 게임)에만 선택해야 합니다.
네, Firebase는 개방형 프로토콜을 사용하며 데이터를 내보낼 수 있습니다. Firestore는 BigQuery 및 Google Cloud Storage로 관리형 내보내기를 제공합니다. 비밀번호 해시를 내보내 인증을 마이그레이션할 수 있습니다. Cloud Functions는 모든 백엔드 프레임워크에서 쉽게 다시 작성할 수 있습니다.
Firebase는 다중 계층 보호를 사용합니다: 전송 계층 암호화(TLS) 및 스토리지 계층 암호화(AES-256). Security Rules는 선언적 액세스 제어를 제공합니다. Firebase는 SOC 1/2/3, ISO 27001 및 GDPR 표준도 준수합니다.
Google 서비스가 차단되어 Firebase는 중국에서 제한적으로 작동합니다. 중국 시장의 경우 로컬 대안을 사용해야 합니다 — 예를 들어, FCM 대신 Alibaba Cloud Push, Firebase 대신 LeanCloud 등이 있습니다. Firebase Analytics 및 Crashlytics도 VPN 없이는 사용할 수 없습니다.
요약
턴키 방식의 모바일 애플리케이션을 개발해 드립니다
IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.