Skip to content

Database 선택하기

yoosumi edited this page Dec 14, 2022 · 1 revision

Database 선택하기

사용한 이유

사용자 정보, 약속 정보, 위치 정보를 저장할 수 있는 데이터베이스가 필요했습니다. 이 역할을 Firebase로 해결할 수 있었고, 데이터를 가져올 때 쿼리를 통해 원하는 데이터만 필터링해 올 수 있어 필터링 과정을 따로 처리해 주지 않아도 되는 장점이 있어 사용하게 되었습니다.

Firebase Realtime VS Cloud Firestore

Firebase의 데이터베이스로 Firebase Realtime, Cloud Firestore가 있었고, 이 둘 중 어떤 것을 사용해야 할지 고민하는 과정이 있었습니다.

Realtime Database

  • 데이터를 하나의 큰 JSON 덩어리로 저장한다.
  • 하나의 쿼리에는 필터링/정렬 하나만 가능하다.
  • 데이터를 반환할 때 그 이하의 모든 깊이의 데이터도 함께 반환된다.
  • 용량, 대역폭에 따라 과금이 발생한다.

Cloud Firestore

  • 문서와 컬렉션으로 저장한다.
  • 하나의 쿼리에 정렬과 필터링 모두 가능하다. (복합적인 쿼리 가능)
  • 데이터를 반환할 때 불필요한 하위 데이터까지 반환하지 않는다.
  • 용량, 문서의 CRUD 연산 횟수에 따라 과금이 발생한다.

둘 다 비슷한 기능을 제공하는 느낌을 받았고, 팀원들과 처음 의논을 했을 때는 많은 기능을 가지고 있는 Cloud Firestore를 선택하는 것보다는 프로젝트의 규모가 작은 만큼 Realtime Database을 선택하여 사용하지 않을 기능의 낭비를 줄이자는 의견이었습니다.

하지만, 기능을 추가하다 보니 점점 데이터들의 구조와 관계가 복잡해지고 쿼리 부분에서 어려움을 겪게 되었습니다.

두 개 이상의 쿼리를 사용하여 필터링을 해야 하는 상황이 생겼고, 팀원들과 다시 상의를 나눈 후에 Cloud Firestore로 변경하는 것으로 결정하고, Cloud Firestore를 사용하여 프로젝트를 완성하게 되었습니다.

Clone this wiki locally