google이 제공한 플랫폼: Firebase

김민우·2022년 11월 22일
0

스파르타 내배캠4기

목록 보기
21/73

🧯Firebase🧯

❗글로벌 앱을 위해 빌드된 NoSQL 데이터베이스

Cloud Firestore는 글로벌 규모의 모바일 및 웹 앱용 데이터를 쉽게 저장, 동기화, 쿼리할 수 있게 해주는 NoSQL 문서 데이터베이스이다.

❗원하는 대로 데이터 쿼리 및 구조화

컬렉션 및 문서를 사용하여 데이터를 쉽게 구조화할 수 있다. 계층 구조를 만들어 관련 데이터를 저장하고 명시적인 쿼리를 사용해서 필요한 데이터를 쉽게 검색할 수 있다. 모든 쿼리는 데이터 세트가 아닌 결과 세트 크기에 맞게 확장되므로 첫 날부터 앱 확장 준비가 완료된다.

❗진정한 서버리스 앱 빌드

Cloud Firestore에는 사용자가 직접 서버를 구성할 필요 없이 데이터베이스에 액세스할 수 있도록 모바일 및 웹 SDK와 종합적인 보안 규칙 세트가 포함되어 있다. 서버리스 컴퓨팅 제품인 Cloud Functions를 사용하면 데이터베이스의 데이터 변화에 대응하는 호스팅된 백엔드 코드를 실행할 수 있다. 물론 기존 클라이언트 라이브러리(예: Node, Python, Go, 자바)에서도 Cloud Firestore에 액세스할 수 있다.

❗기기 간, 온라인/오프라인 데이터 동기화

Cloud Firestore를 사용하면 기기 간에 앱 데이터를 자동으로 동기화할 수 있다. 데이터 변경이 있을 경우 이를 알려주므로, 공동작업 환경 및 실시간 앱을 쉽게 구축할 수 있다. 사용자는 오프라인 상태를 포함해서 언제든지 데이터에 액세스하고 데이터를 변경할 수 있다. 오프라인 모드는 iOS, Android, 웹에서 제공된다.

❗전 세계로 확장

Google 스토리지 인프라를 기반으로 하는 Cloud Firestore는 사용자의 비즈니스에 맞게 확장되도록 구축되었다. 이제는 서버를 관리하거나 일관성을 걱정하는 대신 앱 개발에 주력할 수 있다.

나는 여러가지 기능 중에 Authentication를 이용하여 로그인, 회원가입을 구현할 수 있었다.

import { emailRegex, pwRegex } from "../util.js";
import { authService } from "../firebase.js";
import {
  createUserWithEmailAndPassword,
  signInWithEmailAndPassword,
  GoogleAuthProvider,
  signInWithPopup,
  GithubAuthProvider,
  signOut,
} from "https://www.gstatic.com/firebasejs/9.14.0/firebase-auth.js";

또한 Cloud Firestore, Storage를 통해서 게시판 기능을 구현할 수 있었고, 프로필의 이미지를 저장하고 변경하는 기능도 구현할 수 있게 되었다.

import { authService, storageService } from "../firebase.js";
import {
  ref,
  uploadString,
  getDownloadURL,
} from "https://www.gstatic.com/firebasejs/9.14.0/firebase-storage.js";
import { updateProfile } from "https://www.gstatic.com/firebasejs/9.14.0/firebase-auth.js";
import { v4 as uuidv4 } from "https://jspm.dev/uuid";
import {
  doc,
  addDoc,
  updateDoc,
  deleteDoc,
  collection,
  orderBy,
  query,
  getDocs,
} from "https://www.gstatic.com/firebasejs/9.14.0/firebase-firestore.js";
import { dbService, authService } from "../firebase.js";

♦ 느낀점

리액트반으로만 구성된 팀원들끼리 데이터베이스를 구축하려니 너무 힘들거라 생각했는데, 튜터님께서 편하게 서버를 구축하고 데이터베이스를 이용하실 수 있도록 환경을 세팅해준게 너무 감사하다. 하지만, 아직도 브라우저와 서버에 대한 이해도가 부족하고, 코드에 대한 개념도 많이 부족해서 하나하나 천천히 깊게 공부해볼 생각이다.!!

profile
개발자로서 한걸음

0개의 댓글