Firestore 개요
Firestore는 Firebase 및 Google Cloud의 모바일, 웹, 서버 개발에 사용되는 유연하고 확장 가능한 데이터베이스입니다. Firestore는 실시간 리스너를 통해 클라이언트 앱 간에 데이터 동기화를 유지하고 모바일 및 웹의 오프라인 버전을 지원하여 네트워크 지연 시간이나 인터넷 연결과 상관없이 원활하게 작동하는 반응형 앱을 빌드할 수 있습니다. Firestore는 Cloud Run 함수를 비롯한 다른 Firebase 및 Google Cloud 제품과도 원활하게 통합됩니다.
주요 기능
유연성 | Firestore 데이터 모델은 유연한 계층적 데이터 구조를 지원합니다. 컬렉션으로 정리되는 문서에 데이터를 저장하세요. 하위 컬렉션 외에도 복잡한 중첩된 개체를 문서에 포함할 수 있습니다. |
표현형 쿼리 | Firestore에서는 쿼리를 사용해 개별 문서를 가져오거나 쿼리 매개변수와 일치하는 컬렉션의 모든 문서를 가져올 수 있습니다. 쿼리에 여러 필터를 서로 연결해 적용할 수 있으며 필터링과 정렬의 결합도 가능합니다. 또한 기본적으로 색인이 생성되어 쿼리 성능이 데이터 세트가 아닌 결과 세트의 크기에 비례합니다. |
확장형 설계 | Firestore에서는 자동 멀티 리전 데이터 복제, strong consistency 쿼리, 원자적 일괄 작업, 트랜잭션 지원을 제공합니다. |
실시간 업데이트 | Firestore는 데이터 동기화를 사용해 연결된 모든 기기의 데이터를 업데이트합니다. 더불어 간단한 일회성 가져오기 쿼리도 효율적으로 할 수 있도록 설계되었습니다. |
오프라인 지원 | Firestore는 앱에서 많이 사용되는 데이터를 캐시하기 때문에 기기가 오프라인 상태더라도 앱에서 데이터를 쓰고 읽고 수신 대기하고 쿼리할 수 있습니다. 기기가 다시 온라인 상태가 되면 Firestore는 로컬 변경사항을 다시 Firestore에 동기화합니다. |
기본 원리
Firestore는 REST 및 RPC API 외에도 Node.js, Java, Python, Unity, C++, Go 클라이언트 라이브러리에서 사용할 수 있는 클라우드 호스팅 NoSQL 데이터베이스입니다. Apple, Android, 웹 앱도 클라이언트 라이브러리를 사용하여 데이터베이스에 직접 액세스할 수 있습니다.
Firestore의 NoSQL 데이터 모델에 따라 값에 매핑되는 필드를 포함하는 문서에 데이터가 저장됩니다. 이러한 문서는 데이터 정리와 쿼리에 사용할 수 있는 문서 컨테이너인 컬렉션에 저장됩니다. 문서에서는 간단한 문자열과 숫자부터 복잡한 중첩된 개체에 이르는 다양한 데이터 유형을 지원합니다. 또한 문서 내에 하위 컬렉션을 만들고 데이터베이스 증가에 따라 확장되는 계층적 데이터 구조를 만들 수도 있습니다. Firestore 데이터 모델은 앱에 가장 적합한 데이터 구조를 지원합니다.
또한 Firestore는 효율적이며 유연한 표현형 쿼리를 지원합니다. 전체 컬렉션 또는 중첩된 하위 컬렉션을 가져오지 않고도 문서 수준에서 데이터를 가져오는 얕은 쿼리를 만들 수 있습니다. 쿼리나 커서에 정렬, 필터링, 제한을 추가하여 결과를 페이지화할 수도 있습니다. 실시간 리스너를 추가하면 업데이트가 발생할 때마다 전체 데이터베이스를 가져오지 않고도 앱 데이터를 최신 상태로 유지할 수 있습니다. 실시간 리스너를 앱에 추가하면 수신 대기하는 클라이언트 앱의 데이터가 변경될 때마다 새 변경사항만 가져와 데이터 스냅샷으로 알려줍니다.
서버 측 언어용 Identity and Access Management (IAM)을 사용하여 Firestore에서 데이터 액세스를 보호하세요. Android, Apple 플랫폼, JavaScript의 경우 Firebase 인증 및 Firestore 보안 규칙으로 데이터를 보호합니다.
다음 단계
- Firestore 시작하기 - 데이터베이스를 설정한 후 데이터를 추가하고 읽기
- Firestore 데이터 모델 자세히 알아보기
- 데이터베이스 만들기 및 관리