Firebase Realtime Database

파이어베이스 공식 문서https://firebase.google.com/docs/database?.&hl=ko 를 정독하며, Realtime Database 에 필요한 보안 규칙, 데이터 색인 등에 대해 학습해보았다.

주요 기능 설명
실시간 일반적인 HTTP 요청이 아닌 데이터 동기화를 사용하므로
데이터가 변경될 때마다 연결된 모든 기기가 수 ms 내에 업데이트를 수신.
네트워크 코드를 고려하지 않아도 몰입 가능한 협업 환경을 조성
오프라인 SDK는 데이터를 디스크에 유지하므로 Firebase 앱이 오프라인일 때도 원활하게 작동.
네트워크에 다시 연결되면 클라이언트 기기가 놓쳤던 변경사항이 모두 수신되어 현재 서버 상태와 동기화.
클라이언트 기기에서 액세스 가능 휴대기기 또는 웹브라우저에서 직접 액세스할 수 있으므로 애플리케이션 서버가 불필요.
데이터를 읽거나 쓸 때 실행되는 표현식 기반 규칙인 Firebase Realtime Database 보안 규칙을 통해 보안 및 데이터 검증이 제공.

NoSQL 클라우드 DB 를 사용하여 데이터를 저장하고 동기화한다. 모든 클라이언트에서 실시간으로 데이터가 동기화되고 앱이 오프라인일 때도 데이터를 사용할 수 있다.


데이터를 구조화하는 방법 : JSON 트리

모든 Firebase Realtime Database 데이터는 Json 객체로 저장된다.

SQL DB 와 달리 테이블이나 레코드가 없으며, JSON 트리에 추가된 데이터는 연결된 키를 갖는 기존 JSON 구조의 노드가 된다.

데이터 구조 권장 사항 - 데이터 중첩은 피하고, 평면화 하기

데이터 중첩 : 데이터베이스의 특정 위치에서 데이터를 가져오면 모든 하위 노드가 함께 검색된다.

→ 따라서 실제 구현에서는 데이터 구조를 평면화 하는 것이 좋다.

데이터 구조 평면화 : 비정규화를 통해 데이터를 서로 다른 경로로 분할하면 필요에 따라 별도의 호출을 통해 효율적으로 다운로드할 수 있다.