Firebase는 클라이언트에서 액세스할 수 있는 두 가지 클라우드 기반 문서 데이터베이스를 제공합니다. 신규 고객은 Cloud Firestore로 시작하는 것이 좋습니다.
- Cloud Firestore는 권장되는 엔터프라이즈급 JSON 호환 문서 데이터베이스로, 600,000명이 넘는 개발자가 신뢰하고 있습니다. 쿼리 가능성, 확장성 및 고가용성이 필요한 풍부한 데이터 모델을 갖춘 애플리케이션에 적합합니다. 또한 지연 시간이 짧은 클라이언트 동기화와 오프라인 데이터 액세스를 제공합니다. 
- Realtime Database는 기본 Firebase JSON 데이터베이스입니다. 간단한 조회와 확장성이 제한적이며 지연 시간이 짧은 동기화가 필요한 단순한 데이터 모델을 사용하는 애플리케이션에 적합합니다. 
다른 중요한 고려사항은 무엇인가요?
이전의 주요 고려사항에 대해 생각해 본 후 데이터베이스를 선택할 준비가 되어 있을 수 있습니다. 아직 장단점을 고려 중이면 이 섹션에서 Cloud Firestore와 Realtime Database의 기타 차이점을 확인하세요.
데이터 모델
Realtime Database와 Cloud Firestore는 모두 NoSQL 데이터베이스입니다.
| Cloud Firestore | [ 권장 ] | Realtime Database | 
|---|---|---|
| 데이터를 문서 컬렉션으로 저장합니다. 
 Cloud Firestore데이터 모델에 대해 자세히 알아보세요. | 데이터를 하나의 큰 JSON 트리로 저장합니다. 
 Realtime Database데이터 모델에 대해 자세히 알아보세요. | |
실시간 및 오프라인 지원
두 제품 모두 모바일 위주의 실시간 SDK를 보유하며 오프라인 대응 앱을 위한 로컬 데이터 스토리지를 지원합니다.
| Cloud Firestore | [ 권장 ] | Realtime Database | 
|---|---|---|
| Apple, Android, 웹 클라이언트를 위한 오프라인 지원 | Apple, Android 클라이언트를 위한 오프라인 지원 | |
접속 상태
클라이언트가 온라인인지 오프라인인지를 알면 유용합니다. Firebase Realtime Database는 클라이언트 연결 상태를 기록하고 클라이언트의 연결 상태가 변경될 때마다 업데이트를 제공할 수 있습니다.
| Cloud Firestore | [ 권장 ] | Realtime Database | 
|---|---|---|
| 기본적으로 지원되지 않음. Cloud Functions를 사용하여 Cloud Firestore와 Realtime Database를 동기화하여 Realtime Database의 접속 상태 지원을 활용할 수 있습니다. Cloud Firestore에서 접속 상태 구현을 참조하세요. | 접속 상태가 지원됨 | |
쿼리
쿼리를 통해 두 가지 데이터베이스에서 데이터를 검색, 정렬, 필터링합니다.
| Cloud Firestore | [ 권장 ] | Realtime Database | 
|---|---|---|
| 복합 정렬 및 필터링 기능을 갖춘 색인화된 쿼리 
 | 제한적인 정렬 및 필터링 기능을 갖춘 깊은 쿼리 
 | |
쓰기 및 트랜잭션
| Cloud Firestore | [ 권장 ] | Realtime Database | 
|---|---|---|
| 고급 쓰기 및 트랜잭션 작업 | 기본 쓰기 및 트랜잭션 작업 | |
안정성 및 성능
| Cloud Firestore | [ 권장 ] | Realtime Database | 
|---|---|---|
| Cloud Firestore는 자동으로 확장되는 리전 및 멀티 리전 솔루션입니다. 
 | Realtime Database는 리전 솔루션입니다. 
 | |
업타임
| Cloud Firestore | [ 권장 ] | Realtime Database | 
|---|---|---|
| 업타임 성능이 매우 높습니다. 
 | 업타임 성능이 높습니다. 
 | |
확장성
| Cloud Firestore | [ 권장 ] | Realtime Database | 
|---|---|---|
| 확장이 자동으로 수행됩니다. 
 | 확장하려면 샤딩을 사용해야 합니다. 
 | |
보안
| Cloud Firestore | [ 권장 ] | Realtime Database | 
|---|---|---|
| 승인과 검증이 결합된 비단계식 규칙 
 | 승인과 검증이 분리된 단계식 규칙 언어 
 | |
가격 책정
두 솔루션 모두 Spark 및 Blaze 요금제로 제공됩니다.
| Cloud Firestore | [ 권장 ] | Realtime Database | 
|---|---|---|
| 주로 데이터베이스에서 수행되는 작업(읽기, 쓰기, 삭제)에 대해 청구되며 대역폭과 저장용량에 대해서도 비교적 저렴한 요금으로 청구됩니다. Cloud Firestore는 App Engine 프로젝트의 일일 지출 한도를 지원하므로 비용의 상한선을 적절하게 설정할 수 있습니다. Cloud Firestore 요금제에 대해 자세히 알아보세요. | 대역폭과 저장용량에 대해서만 청구되지만 요금이 비교적 높습니다. Realtime Database 요금제에 대해 자세히 알아보세요. | |
Cloud Firestore 및 Realtime Database 사용
동일한 Firebase 앱 또는 프로젝트 내에서 두 데이터베이스를 모두 사용할 수 있습니다. 두 NoSQL 데이터베이스는 동일한 유형의 데이터를 저장할 수 있고 클라이언트 라이브러리의 작동 방식도 서로 유사합니다. 앱에서 두 데이터베이스를 모두 사용하기로 결정한 경우 앞에서 설명한 차이점에 유의하세요.
Realtime Database 및 Cloud Firestore 모두에서 사용할 수 있는 기능에 대해 자세히 알아보세요.
데이터베이스를 선택할 준비가 되셨나요?
이 비교 정보가 Firebase 데이터베이스 솔루션을 선택하는 데 도움이 되었기를 바랍니다. 이제 Firebase 프로젝트에 데이터베이스를 추가하는 방법을 알아볼 수 있습니다.
- Cloud Firestore의 경우 Cloud Firestore 시작하기를 참조하세요.
- Realtime Database의 경우 사용 중인 플랫폼(Apple, Android, C++, Unity, 웹, 또는 REST)에 해당하는 시작하기 주제를 참조하세요.