모각코 10회차(11.25)

기먼지·2022년 11월 30일
0

모각코코볼

목록 보기
10/11

Realtime Database

-데이터를 JSON 객체로 저장한다.
-공식적으로 데이터 중첩 사용은 자제하길 권고한다.

  • 그 이유로는 최대 32단계까지 중첩이 허용은 되지만, 만약 5번의 중첩을 거친 데이터에서 3단계의 데이터를 조회할 경우 3단계의 하위 데이터들까지 모두 조회되기 때문에 성능 이슈가 있다.
{
   "chats": {
     "one": {
       "title": "Historical Tech Pioneers",
       "messages": {
         "m1": { "sender": "ghopper", "message": "Relay malfunction found. Cause: moth." },
         "m2": { ... },
       }
     },
     "two": { ... }
   }
}
  • 위와 같은 데이터의 경우 채팅방의 title들을 모두 가져오고 싶어서 chat을 조회할 경우 필요한 title뿐만 아니라 messages까지 전부 조회하게 된다.

-데이터 평면화

  • 데이터 중첩 구조를 평면화 시켜 사용하면 성능개선을 할 수 있다.
  • 데이터 평면화 예시
{
  "chats": {
    "one": {
      "title": "Historical Tech Pioneers",
      "lastMessage": "ghopper: Replay malfunction found. Cause: moth.",
      "timestamp": 1459361875666
    },
    "two": { ... },
    "three": { ... }
    },
    
    "members": {
      "one": {
        "ghopper": true,
        "alovelace": true,
        "eclarke": true
      },
      "two": { ... },
      "three": { ... }
    },
    
    "messages": {
      "one": {
        "m1": {
          "name": "eclarke",
          "message": "The relay seems to be malfunctioning.",
          "timestamp": 1459361875337
        },
        "m2": { ... },
        "m3": { ...}
      },
      "two": { ... },
      "three": { ... }
    }
 }
  • chat, members, messages를 분리시켰기 때문에 chat을 조회해도 members messages 데이터들이 조회가 되지 않기 때문에 성능적인 부분에서 이점이 생긴다.

Firestore

  • NoSQL 문서 중심의 데이터베이스
  • 컬렉션으로 정리되어 문서에 데이터를 저장. 이때, 문서에는 key-value쌍이 들어있다.
  • 작은 문서들이 모인 컬렉션을 저장하는데 최적화되어 있다.
  • 문서 안에는 중첩된 데이터가 들어갈 수 있다.
  • 문서들은 컬렉션에 저장된다.

Realtime Database VS FireStore

  • 위에 적혀있는 데이터 구조 차이가 있다.
  • FireStore가 Realtime Database의 단점들을 보완하기 위해 후속으로 나온 기능입니다.
  • 공식문서에서 서비스의 주요 고려사항을 선택하면 적합한 것을 골라준다.

Authentication

  • Firebase에서 사용자의 신원을 확인하는 로그인 등이 기능을 제공한다.
  • 이메일, 비밀번호 뿐만 아니라 다양한 소셜 로그인을 제공한다.
  • 이메일 인증 시 실제로 메일을 통한 인증기능까지 제공한다.

Firebase UI

  • Firebase를 통해 전체적인 로그인 시스템을 구출할 때 권장된다.

Firebase SDK

  • 개발자가 원하는 로그인 기능을 별도로 추가해서 로그인 시스템을 확장시킬 수 있다.

Cloud Storage

  • Google의 규모를 활용한 강력하고 단순하며 경제적인 객체 저장소 서비스이다.
  • 이미지, 오디오, 동영상 등의 파일들을 저장할 수 있다.

Cloud Messaging

  • Firebase에서 푸시알림 관련 기능을 제공해준다.
profile
열심히 굴러가기 !

0개의 댓글