Google Cloud Firestore
▶아키텍처 다이어그램
점선 애니메이션은 데이터 또는 요청의 흐름 방향을 나타냅니다
모바일/웹 앱에서 데이터를 저장하고 여러 사용자 간에 실시간으로 동기화하려면, REST API 서버를 만들고 WebSocket을 구현하고 오프라인 처리까지 직접 해야 합니다. 이 모든 걸 따로 구축하면 복잡도가 급격히 올라갑니다.
Firestore는 컬렉션 안에 문서를 저장하는 계층 구조입니다. 클라이언트 SDK로 문서를 읽고 쓰면, 실시간 리스너가 변경을 감지하여 연결된 모든 클라이언트에 즉시 전파합니다. Security Rules가 클라이언트의 읽기/쓰기 권한을 문서 수준에서 제어합니다.
Firestore와 Cloud SQL은 둘 다 데이터를 저장하지만 모델이 다릅니다. Cloud SQL은 테이블/행/열의 관계형 구조로 복잡한 JOIN과 트랜잭션에 강하고, Firestore는 문서/컬렉션 구조로 실시간 동기화와 유연한 스키마에 강합니다. 스키마가 자주 바뀌고 실시간 동기화가 핵심이면 Firestore, 정규화된 데이터와 복잡한 쿼리가 필요하면 Cloud SQL입니다.
전통적으로 모바일 앱은 REST API 서버를 거쳐야 데이터에 접근했습니다. 실시간 기능이 필요하면 WebSocket 서버를 별도로 운영해야 했고, 오프라인 지원은 개발자가 직접 구현해야 했습니다. Firebase에서 시작한 실시간 DB 모델이 Cloud Firestore로 발전하면서 이 복잡도를 DB 자체가 흡수했습니다.
모바일/웹 앱의 실시간 데이터 동기화, 채팅, 협업 도구, 사용자 프로필 관리에 적합합니다. 대규모 분석 쿼리나 복잡한 관계형 JOIN이 주 업무인 경우에는 맞지 않습니다.
더 깊게 보기
현재 페이지의 개념 설명을 본 뒤 공식 문서로 바로 이동합니다.