Cloud Firestore
- 문서 컬렉션으로 저장
- 하나의 쿼리에 정렬과 필터링 모두 가능
- 얕고 넓은 쿼리 제공
- 데이터 세트의 크기는 쿼리 성능에 직접적인 영향이 없음
- 하위 값은 반환하지 않기 때문에 평면적인 구조는 영향이 적음
Realtime Database
- 데이터를 하나의 큰 json 덩어리로 저장
- 하나의 쿼리에는 필터링/정렬 하나만 가능
- 깊고 좁은 쿼리 제공
- 데이터 세트의 크기가 커질수록 쿼리 성능 떨어짐
- 최대한 데이터 평면화 필요함
https://firebase.google.com/docs/firestore/rtdb-vs-firestore?hl=ko
데이터베이스 선택: Cloud Firestore 또는 실시간 데이터베이스 | Firebase
Google I/O 2023에서 Firebase의 주요 소식을 확인하세요. 자세히 알아보기 의견 보내기 데이터베이스 선택: Cloud Firestore 또는 실시간 데이터베이스 컬렉션을 사용해 정리하기 내 환경설정을 기준으로
firebase.google.com
- Cloud Firestore는 모바일 앱 개발을 위한 Firebase의 최신 데이터베이스로서 실시간 데이터베이스의 성공을 바탕으로 더욱 직관적인 새로운 데이터 모델을 선보입니다. 또한 실시간 데이터베이스보다 풍부하고 빠른 쿼리와 원활한 확장성을 제공합니다.
- 실시간 데이터베이스는 Firebase의 기존 데이터베이스로, 여러 클라이언트에서 실시간으로 상태를 동기화해야 하는 모바일 앱을 위한 효율적이고 지연 시간이 짧은 솔루션입니다.
다른 중요한 고려사항은 무엇인가요?
이전의 주요 고려사항에 대해 생각해 본 후 데이터베이스를 선택할 준비가 되어 있을 수 있습니다. 아직 장단점을 고려 중이면 이 섹션에서 Cloud Firestore와 실시간 데이터베이스의 기타 차이점을 확인하세요.
데이터 모델
실시간 데이터베이스와 Cloud Firestore는 모두 NoSQL 데이터베이스입니다.
데이터를 하나의 큰 JSON 트리로 저장합니다.
|
데이터를 문서 컬렉션으로 저장합니다.
|
실시간 및 오프라인 지원
두 제품 모두 모바일 위주의 실시간 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 모두에서 사용할 수 있는 기능에 대해 자세히 알아보세요.
'[====== Development ======] > Etc' 카테고리의 다른 글
Mac의 SMC 재설정하기 (0) | 2023.09.30 |
---|---|
MAC PC 단축키 정리 (1) | 2023.09.30 |
Firebase vs WebSocket (0) | 2023.09.26 |
채팅 시스템 설계 (0) | 2023.09.26 |
쿠버네티스에 대해서 (0) | 2023.08.28 |