Firebase 에서 제공하는 데이터 베이스 중 Cloud Firestore 는!
RealTime Database 보다 나중에 나온 최신 것으로
https://zoiworld.tistory.com/773
실시간 데이터베이스와 마찬 가지로 NoSQL 로써 동일한 기능을 제공한다.
그럼 머가 다를까?????
파이어베이스에서는 둘이 제공하는 데이터 모델이 차이가 있고 따라서 데이터베이스를 사용하고자 하는 앱이 어떤 특성을 가지고 있느냐에 따라서 권장하는 데이터베이스가 다르다고 한다.
비교적 최근에 나온 클라우드 파이어스토어가 복합적인 고급 쿼리 기능을 제공한다고 한다.
RealTime Database, Cloud Firestore 모두 쿼리를 통해 데이터를 검색, 정렬, 필터링 해준다.
차이점은
- RealTime Database 는 데이터 모드를 하나의 큰 JSON 트리로 저장한다.
- Cloud Firestore 는 JSON 과 유사하지만 JSON 이 아닌 문서와 컬렉션의 조합으로 저장한다.
- RealTime Database 는 하나의 쿼리에 정렬 또는 필터링을 할 수 있다. 동시에 두가지를 할 수 없다.
- Cloud Firestore 는 여러개의 필터를 연결하거나 필터와 정렬을 동시에 가능하다.
- RealTime Database 는 깊고 좁은 쿼리를 제공한다.
즉, 결과값이 가지는 하위값 모두를 반환하기 때문에 하위값까지도 한번에 액세스 할 수 있다.
- Cloud Firestore 는 얕고 넓은 쿼리를 제공한다.
특정 컬렉션의 문서만 반환하고 해당 문서가 하위 컬렉션을 가지고 있더라도 하위 컬렉션까지는 반환하지 않는 구조이다.
- RealTime Database 는 데이터 세트가 커질수록 쿼리의 성능이 떨어진다.
하나의 큰 JSON 트리를 가지기 때문에 복잡한 계층을 가지는 대규모의 데이터를 저장하는 게 어렵고 실제로 32 단계의 데이터 중첩만을 허용하고 있다.
즉 최대한 데이터 평면화를 하는 것을 권장하고 있다.
- Cloud Firestore 는 데이트 세트의 크기는 직접적인 쿼리 성능에 영향을 주지 않는다.
다만 요청한 쿼리의 결과에 따라서 쿼리의 성능이 영향을 받을 수 는 있다.
RealTime Database
- 기본적인 데이터 동기화
- 적은양의 데이터가 자주 변경
- 간단한 JSON 트리
- 많은 데이터베이스
Cloud Firestore
- 고급 쿼리, 정렬, 트랜젝션
- 대용량 데이터가 자주 읽힘
- 구조화된 컬렉션
- 단일 데이터베이스
Cloud Firestore 와 Realtime Database 를 구현한 iOS 프로젝트를 보고 싶다면!
https://github.com/jiyeonjoy/CreditCardList
'# 03 > NoSQL' 카테고리의 다른 글
[Firebase] RealTime Database (0) | 2022.11.12 |
---|---|
용어정리 (0) | 2019.02.06 |
Tarantool* (0) | 2019.02.06 |
ScyllaDB (0) | 2019.02.06 |
Redis* (0) | 2019.02.06 |