Firebase Realtime Database와 Cloud Firestore

고라니·2023년 12월 20일
0

TIL

목록 보기
51/67

Firebase Realtime Database와 Cloud Firestore는 모두 Google의 Firebase플랫폼에서 제공하는 NoSQL 기반의 클라우드 데이터베이스 서비스 이다.
NoSQL 즉, 비관계형 데이터베이스로 데이터 구조를 테이블과 관계로 표현하지 않는다.

공통 특징

NoSQL 데이터 베이스

  • 관계형 데이터 베이스가 아닌 NoSQL 데이터베이스로, 자유로운 데이터 모델과 유연한 스키마 제공

실시간 동기화

  • 데이터의 변경이 발생하면 즉시 모든 클라이언트에 업데이트가 전송되어 데이터를 동기화
  • 여러 사용자 간의 실시간 업데이트에 적합

오프라인 동작

  • 네트워크 연결이 끊어진 경우에도 로컬에 저장
  • 오프라인 상태에서도 앱이 동작하며, 네트워크가 연결되면 변경 사항이 서버로 전송되고 동기화 됨

서버 없어 액세스

  • 클라이언트에서 직접 데이터베이스에 액세스할 수 있어, 서버 없이도 데이터 관리 가능

비교

Firebase Realtime Database

1. 데이터 모델

  • JSON 형식의 모델 사용하여 중첩된 데이터를 효과적으로 다룰 수 있음
  • 데이터는 경로에 저장되고, 해당 경로의 변경 시 항위 경로에 연결된 모든 클라이언트에게 실시간 업데이트 제공

2. 실시간 업데이트

  • 데이터의 변경이 발생하면 해당 경로에 연결된 클라이언트에 실시간으로 업데이트 제공
  • 간단한 구조의 데이터와 실시간 업데이트가 필요한 제품에 적합

3. 실시간 규칙(Realtime Rules)

  • Firebase 실시간 규칙을 사용하여 데이터베이스에 대한 읽기 및 쓰기 권한을 정의

Cloud Firestore

1. 데이터 모델

  • 문서=컬렉션 모델 사용, 개별 문서는 키-값 쌍의 집합으로 구성
  • 복잡한 쿼리와 조인 작업을 지원하여 효과적으로 검색하고 구성 가능

2. 복잡한 쿼리

  • NoSQL의 장점인 유연성을 유지하면서 복잡한 쿼리 수행 가능
  • 여러 컬렉션에 대한 조인도 가능하며, 복잡한 데이터 구조를 다둘 때 유리

3. 보안 규칙(Security Rules)

  • 보안 규칙을 사용하여 데이터베이스에 대한 읽기 및 쓰기 권한을 정의, Firebase Authentication과 통합하여 사용자 인증을 강화

어떤 것을 사용할까?

  • Firebase Realtime Database
    - 중첩된 데이터 및 실시간 업데이트에 중점을 둔 경우
    • 간단한 구조의 데이터를 다루거나, 실시간 업데이트가 필수적인 경우
  • Cloud Firestore
    - 복잡한 쿼리 및 조인이 필요한 경우
    • 복잡한 데이터 모델이나 다양한 쿼리가 필요한 경우

마치면서

각 데이터베이스 서비스는 프로젝트 특성에 따라 선택되어야 하며, 각각의 강점을 살려 적절한 용도로 사용하자.
그런데 나는 Firestore가 좋다... ㅎ

profile
🍎 무럭무럭

0개의 댓글