Firebase는 실시간 데이터 동기화를 지원하는 두 가지 클라우드 기반 클라이언트 액세스 가능 데이터베이스 솔루션을 제공합니다.
Cloud Firestore 는 모바일 앱 개발을 위한 Firebase의 최신 데이터베이스입니다. 새롭고 보다 직관적인 데이터 모델을 통해 실시간 데이터베이스의 성공을 기반으로 합니다. Cloud Firestore는 또한 실시간 데이터베이스보다 더 풍부하고 빠른 쿼리와 확장성을 제공합니다.
실시간 데이터베이스 는 Firebase의 원본 데이터베이스입니다. 실시간으로 클라이언트 간에 동기화된 상태가 필요한 모바일 앱을 위한 효율적이고 지연 시간이 짧은 솔루션입니다.
Firebase는 어떤 데이터베이스를 권장하나요?
데이터베이스 솔루션 선택은 여러 요인에 따라 달라지지만 특정 기능과 관련하여 귀하에게 적합한 데이터베이스에 대한 권장 사항을 제시할 수 있습니다.
두 솔루션 모두 다음을 제공합니다.
- 배포 및 유지 관리할 서버가 없는 클라이언트 우선 SDK
- 실시간 업데이트
- 프리 티어 후 사용한 만큼만 지불
주요 고려 사항
두 데이터베이스에 공통적인 훌륭한 핵심 기능 외에도 아래 나열된 고려 사항 중 일부 또는 전부가 앱의 성공에 어떤 영향을 미칠지 생각해 보십시오.
데이터베이스의 역할 | 내 앱은 다음을 위해 데이터베이스를 사용합니다... 기본 쿼리를 사용하여 데이터를 주로 동기화합니다. 고급 쿼리, 정렬 및 트랜잭션이 필요하지 않은 경우 실시간 데이터베이스 를 권장합니다. 고급 쿼리, 정렬 및 트랜잭션. 예를 들어 전자상거래 앱에서 데이터와 복잡한 상호 작용이 필요한 경우 Cloud Firestore 를 권장합니다. |
데이터 작업 | 내 앱의 데이터베이스 사용량은 다음과 같습니다. 자주 변경되는 몇 GB 이하의 데이터. 앱이 디지털 화이트보드 앱과 같이 작은 업데이트 스트림을 보내는 경우 실시간 데이터베이스 를 권장합니다. 변경되는 것보다 훨씬 더 자주 읽히는 수백 GB에서 TB의 데이터. 매우 큰 데이터 세트의 경우 및 배치 작업이 자주 필요한 경우 Cloud Firestore 를 권장합니다. |
데이터 모델 | 내 데이터를 다음과 같이 구성하는 것을 선호합니다... 간단한 JSON 트리. JSON 비정형 데이터의 경우 실시간 데이터베이스 를 권장합니다. 컬렉션으로 구성된 문서. 구조화된 문서 및 컬렉션의 경우 Cloud Firestore 를 권장합니다. |
유효성 | 내 가용성 요구 사항은... 99.999%의 매우 높은 가동 시간 보장. 예를 들어 전자상거래 앱에서 가용성이 가장 중요한 경우 Cloud Firestore 를 권장합니다. 최소 99.95% 가동 시간 보장. 매우 높지만 중요하지 않은 가용성이 허용되는 경우 Cloud Firestore 또는 실시간 데이터베이스 를 권장합니다. |
로컬 데이터에 대한 오프라인 쿼리 | 내 앱은 연결이 제한되거나 연결되지 않은 장치에서 쿼리를 수행해야 합니다... 자주. 사용자가 오프라인일 때 로컬 데이터에 대한 정교한 쿼리 기능을 위해 Cloud Firestore 를 권장합니다. 드물게 또는 결코. 사용자가 지속적으로 온라인 상태를 유지할 것으로 예상되는 경우 Cloud Firestore 또는 실시간 데이터베이스 를 권장합니다. |
데이터베이스 인스턴스 수 | 내 개별 프로젝트에서 사용해야 하는... 예를 들어 각 주요 고객에 대한 데이터베이스와 같은 많은 데이터베이스. 단일 Firebase 프로젝트에 여러 데이터베이스를 추가할 수 있으므로 실시간 데이터베이스 를 권장합니다. 단 하나의 데이터베이스. 단일 데이터베이스가 필요한 경우 Cloud Firestore 또는 실시간 데이터베이스 를 권장합니다. |
고려해야 할 다른 중요한 사항은 무엇입니까?
이전의 주요 고려 사항에 대해 생각한 후 데이터베이스를 선택할 준비가 된 것입니다. 여전히 장단점을 저울질하고 있다면 이 섹션에서 Cloud Firestore와 실시간 데이터베이스 간의 다른 차이점을 다룹니다.
데이터 모델
실시간 데이터베이스와 Cloud Firestore는 모두 NoSQL 데이터베이스입니다.
실시간 데이터베이스 | 클라우드 파이어스토어 |
---|---|
데이터를 하나의 큰 JSON 트리로 저장합니다.
실시간 데이터베이스 데이터 모델 에 대해 자세히 알아보세요. | 데이터를 문서 모음으로 저장합니다.
Cloud Firestore 데이터 모델 에 대해 자세히 알아보세요. |
실시간 및 오프라인 지원
둘 다 모바일 우선 실시간 SDK를 가지고 있으며 둘 다 오프라인 지원 앱을 위한 로컬 데이터 스토리지를 지원합니다.
실시간 데이터베이스 | 클라우드 파이어스토어 |
---|---|
Apple 및 Android 클라이언트에 대한 오프라인 지원. | Apple, Android 및 웹 클라이언트에 대한 오프라인 지원. |
있음
클라이언트가 온라인인지 오프라인인지 아는 것이 유용할 수 있습니다. Firebase 실시간 데이터베이스는 클라이언트 연결 상태를 기록하고 클라이언트의 연결 상태가 변경될 때마다 업데이트를 제공할 수 있습니다.
실시간 데이터베이스 | 클라우드 파이어스토어 |
---|---|
현재 상태가 지원됩니다. | 기본적으로 지원되지 않습니다. Cloud Functions를 사용하여 Cloud Firestore 및 실시간 데이터베이스를 동기화하여 현재 상태에 대한 실시간 데이터베이스의 지원을 활용할 수 있습니다. Cloud Firestore에서 인지도 구축을 참조하세요. |
쿼리
쿼리를 통해 데이터베이스에서 데이터를 검색, 정렬 및 필터링합니다.
실시간 데이터베이스 | 클라우드 파이어스토어 |
---|---|
제한된 정렬 및 필터링 기능 이 있는 심층 쿼리.
| 복합 정렬 및 필터링 을 사용한 인덱싱된 쿼리.
|
쓰기 및 트랜잭션
실시간 데이터베이스 | 클라우드 파이어스토어 |
---|---|
기본 쓰기 및 트랜잭션 작업. | 고급 쓰기 및 트랜잭션 작업. |
신뢰성 및 성능
실시간 데이터베이스 | 클라우드 파이어스토어 |
---|---|
실시간 데이터베이스는 지역 솔루션입니다.
| Cloud Firestore는 자동으로 확장되는 지역 및 다중 지역 솔루션입니다.
|
확장성
실시간 데이터베이스 | 클라우드 파이어스토어 |
---|---|
스케일링에는 샤딩이 필요합니다.
| 스케일링은 자동입니다.
|
보안
실시간 데이터베이스 | 클라우드 파이어스토어 |
---|---|
권한 부여와 유효성 검사를 구분하는 계단식 규칙 언어입니다.
| 권한 부여와 유효성 검사를 결합하는 비계단식 규칙입니다.
|
가격
두 솔루션 모두 Spark 및 Blaze 요금제 에서 사용할 수 있습니다.
실시간 데이터베이스 | 클라우드 파이어스토어 |
---|---|
대역폭 및 스토리지 에 대해서만 요금을 부과하지만 더 높은 요금이 부과됩니다. 실시간 데이터베이스 요금제 에 대해 자세히 알아보세요. | 주로 데이터베이스에서 수행되는 작업(읽기, 쓰기, 삭제) 에 대해 요금이 부과되며 대역폭 및 스토리지에 대해서는 낮은 요율로 청구됩니다. Cloud Firestore는 부담 없는 비용을 초과하지 않도록 App Engine 프로젝트의 일일 지출 한도 를 지원합니다. Cloud Firestore 요금제 에 대해 자세히 알아보세요. |
Cloud Firestore 및 실시간 데이터베이스 사용
동일한 Firebase 앱 또는 프로젝트 내에서 두 데이터베이스를 모두 사용할 수 있습니다. 두 NoSQL 데이터베이스는 동일한 유형의 데이터를 저장할 수 있으며 클라이언트 라이브러리는 유사한 방식으로 작동합니다. 앱에서 두 데이터베이스를 모두 사용 하기로 결정한 경우 위에 설명된 차이점을 염두에 두십시오.
실시간 데이터베이스 와 Cloud Firestore 모두에서 사용할 수 있는 기능에 대해 자세히 알아보세요.
데이터베이스를 선택할 준비가 되셨습니까?
이 비교가 Firebase 데이터베이스 솔루션을 결정하는 데 도움이 되었기를 바랍니다. 이제 Firebase 프로젝트에 데이터베이스를 추가하는 방법을 배울 수 있습니다.
- Cloud Firestore 의 경우 Cloud Firestore 시작하기를 살펴보세요.
- 실시간 데이터베이스 의 경우 플랫폼( Apple , Android , C++ , Unity , Web 또는 REST )에 대한 시작하기 항목을 읽으십시오.