파이어베이스 공식 문서https://firebase.google.com/docs/database?.&hl=ko 를 정독하며, Realtime Database 에 필요한 보안 규칙, 데이터 색인 등에 대해 학습해보았다.
| 주요 기능 | 설명 |
|---|---|
| 실시간 | 일반적인 HTTP 요청이 아닌 데이터 동기화를 사용하므로 |
| 데이터가 변경될 때마다 연결된 모든 기기가 수 ms 내에 업데이트를 수신. | |
| 네트워크 코드를 고려하지 않아도 몰입 가능한 협업 환경을 조성 | |
| 오프라인 | SDK는 데이터를 디스크에 유지하므로 Firebase 앱이 오프라인일 때도 원활하게 작동. |
| 네트워크에 다시 연결되면 클라이언트 기기가 놓쳤던 변경사항이 모두 수신되어 현재 서버 상태와 동기화. | |
| 클라이언트 기기에서 액세스 가능 | 휴대기기 또는 웹브라우저에서 직접 액세스할 수 있으므로 애플리케이션 서버가 불필요. |
| 데이터를 읽거나 쓸 때 실행되는 표현식 기반 규칙인 Firebase Realtime Database 보안 규칙을 통해 보안 및 데이터 검증이 제공. |
NoSQL 클라우드 DB 를 사용하여 데이터를 저장하고 동기화한다. 모든 클라이언트에서 실시간으로 데이터가 동기화되고 앱이 오프라인일 때도 데이터를 사용할 수 있다.
모든 Firebase Realtime Database 데이터는 Json 객체로 저장된다.
SQL DB 와 달리 테이블이나 레코드가 없으며, JSON 트리에 추가된 데이터는 연결된 키를 갖는 기존 JSON 구조의 노드가 된다.
데이터 중첩 : 데이터베이스의 특정 위치에서 데이터를 가져오면 모든 하위 노드가 함께 검색된다.
→ 따라서 실제 구현에서는 데이터 구조를 평면화 하는 것이 좋다.
데이터 구조 평면화 : 비정규화를 통해 데이터를 서로 다른 경로로 분할하면 필요에 따라 별도의 호출을 통해 효율적으로 다운로드할 수 있다.