contents
Firebase는 Google에서 제공하는 BaaS(Backend-as-a-Service) 플랫폼으로, 개발자가 웹 및 모바일 애플리케이션을 신속하게 구축, 개선 및 성장시키는 데 도움이 되는 다양한 도구와 서비스를 제공합니다. Firebase가 서버 측 인프라를 처리하므로 개발자는 프런트엔드에서 훌륭한 사용자 경험을 만드는 데 집중할 수 있습니다.
Firebase를 기성품 백엔드 툴킷이라고 생각하면 됩니다. 자체 인증 시스템, 데이터베이스 및 서버를 처음부터 구축하는 대신 Firebase의 사전 구축된 구성 요소를 사용합니다.
Firebase가 해결하는 문제
전통적으로 앱을 구축하려면 상당한 양의 백엔드 개발이 필요했습니다.
- 서버 설정 및 관리
- 보안 인증 시스템 구축
- 데이터베이스 설계 및 확장
- API를 통한 백엔드 로직 작성
- 파일 저장 및 호스팅을 위한 인프라 구성
이 프로세스는 시간이 많이 걸리고 복잡하며 전문 지식이 필요합니다. Firebase는 Google에서 관리하는 하나의 통합 플랫폼에서 이러한 모든 서비스를 제공하여 이러한 문제를 해결하므로 더 작은 팀으로 더 빠르게 앱을 구축할 수 있습니다.
주요 Firebase 서비스
Firebase 제품은 일반적으로 Build, Release & Monitor, Engage의 세 가지 범주로 분류됩니다.
Build 🔨 (앱 개발)
앱의 기능을 구축하는 데 사용하는 핵심 서비스입니다.
- Authentication: 사용자 로그인 및 가입을 간소화하는 완벽하고 안전한 인증 시스템입니다. 이메일/비밀번호, 전화번호, Google, Facebook, Twitter와 같은 소셜 로그인을 포함한 다양한 공급자를 기본적으로 지원합니다.
- Firestore & Realtime Database: Firebase는 두 가지 다른 NoSQL 클라우드 호스팅 데이터베이스를 제공합니다.
- Cloud Firestore: 더 새롭고 강력한 데이터베이스입니다. 더 풍부한 쿼리 기능과 더 나은 확장성을 갖춘 문서 지향 데이터베이스입니다.
- Realtime Database: 원래 Firebase 데이터베이스입니다. 대규모 JSON 트리이며 매우 낮은 대기 시간의 실시간 데이터 동기화로 가장 잘 알려져 있습니다. 라이브 채팅이나 협업 화이트보드와 같은 기능에 이상적입니다.
- Cloud Storage: 이미지, 오디오, 비디오와 같은 사용자가 생성한 콘텐츠를 저장하고 관리하는 서비스입니다. Google Cloud Storage를 기반으로 구축되어 확장성이 뛰어나고 안전합니다.
- Cloud Functions for Firebase: Firebase 서비스 또는 HTTP 요청에 의해 트리거된 이벤트에 응답하여 백엔드 코드를 실행할 수 있는 서버리스 프레임워크입니다. 서버를 관리하지 않고도 함수(Node.js, Python, Go 등과 같은 언어)를 작성할 수 있습니다.
- Hosting: 웹 앱을 위한 빠르고 안전한 호스팅입니다. 기본적으로 글로벌 CDN(콘텐츠 전송 네트워크)에서 콘텐츠를 제공하여 전 세계 사용자에게 낮은 대기 시간을 보장합니다.
Release & Monitor 🚀 (앱 품질 개선)
앱이 안정적이고 잘 작동하는지 확인하는 데 도움이 되는 도구입니다.
- Crashlytics: 강력한 실시간 충돌 보고서입니다. 충돌을 자동으로 캡처, 그룹화 및 분석하여 버그를 신속하게 찾아 수정하는 데 도움이 되는 자세한 보고서를 제공합니다.
- Performance Monitoring: iOS, Android 및 웹 앱의 성능 특성에 대한 통찰력을 제공합니다. 앱 성능을 개선할 수 있는 위치와 시기를 이해하는 데 도움이 됩니다.
- Test Lab: Google 데이터 센터에서 호스팅되는 다양한 실제 및 가상 장치에서 앱을 테스트할 수 있는 자동화된 테스트 서비스입니다.
Engage 📈 (사용자 기반 확대)
사용자를 이해하고 참여시키는 데 도움이 되는 서비스입니다.
- Google Analytics: "Engage" 카테고리의 핵심입니다. 사용자가 앱에서 어떻게 행동하는지 이해하는 데 도움이 되는 무료 무제한 분석을 제공하여 정보에 입각한 결정을 내릴 수 있도록 합니다.
- Cloud Messaging (FCM): 사용자에게 무료로 푸시 알림을 보내 앱에 다시 참여하도록 유도할 수 있습니다.
- Remote Config: 사용자가 업데이트를 다운로드할 필요 없이 앱의 동작과 모양을 즉시 변경할 수 있습니다. 기능을 토글하고, A/B 테스트를 실행하고, 다른 사용자 세그먼트에 맞게 콘텐츠를 사용자 지정할 수 있습니다.
작동 방식: 아키텍처
Firebase 모델은 간단합니다. 클라이언트 측 애플리케이션(iOS, Android, Web)에 Firebase SDK(소프트웨어 개발 키트)를 통합합니다. 이 SDK는 앱이 Firebase 백엔드 서비스와 직접적이고 안전하게 통신할 수 있는 간단한 API를 제공합니다.
예를 들어, 사용자를 가입시키려면 JavaScript 코드에서 firebase.auth().createUserWithEmailAndPassword(email, password)를 호출합니다. SDK는 Firebase Authentication 백엔드에 대한 보안 API 호출을 처리하고, 사용자를 만들고, 결과를 앱으로 다시 보냅니다. 서버 인프라는 완전히 추상화됩니다.
Firebase의 장단점 ⚖️
장점
- 개발 속도: 이것이 가장 큰 장점입니다. 기존 백엔드를 사용하는 것보다 훨씬 짧은 시간에 모든 기능을 갖춘 앱을 구축할 수 있습니다.
- 서버리스 및 확장성: 서버를 관리하거나 인프라를 확장하는 것에 대해 걱정할 필요가 없습니다. Google이 모든 것을 처리합니다.
- 포괄적인 기능 세트: 데이터베이스 및 인증에서 분석 및 푸시 알림에 이르기까지 올인원 솔루션을 제공합니다.
- 실시간 기능: Realtime Database 및 Firestore의 실시간 리스너를 사용하면 협업 및 실시간 업데이트 애플리케이션을 쉽게 구축할 수 있습니다.
단점
- 공급업체 종속성: 복잡한 Firebase 프로젝트를 다른 백엔드 공급업체로 이전하는 것은 매우 어려울 수 있습니다.
- 규모에 따른 비용: 넉넉한 무료 등급이 있지만 사용자 수가 많거나 데이터 사용량이 많은 애플리케이션의 경우 비용이 빠르게 증가할 수 있습니다.
- NoSQL 제한 사항: 데이터베이스는 NoSQL이므로 데이터가 매우 관계형이고 복잡한 조인 및 트랜잭션이 필요한 경우 어려울 수 있습니다.
references