[Firebase] 서버 없이 웹/앱을 배포하는 혁신

Kayoung Kim·2021년 9월 3일
0

기업협업

목록 보기
4/4
post-thumbnail

기업협업 4일차. 프로젝트를 준비하는 마지막은 대망의 Firebase. 서버 없이 배포가 가능한 혁신을 이뤄낸 서비스로 기능을 제대로 사용할 줄 알면 클라이언트 단에서도 무리 없이 웹/앱을 구축할 수 있다는 것이 아주 매력적인 프로그램이다.

혁신의 Firebase🔥

  • 구글에서 제공하는 Firebase는 모바일 앱을 만드는 데 필요한 여러 가지 기능을 갖춘 serverless로 운영되는 클라우드 서비스다.
  • 서비스를 개발하기 위해서는 서버, 클라이언트 개발 등 서버단을 구축해야 하고, 이를 위해서는 많은 인력과 인프라가 충족되어야 하는데, Firebase는 이러한 기능을 단축해 클라이언트 작업만으로 서비스를 제작할 수 있도록 도와주는 착한 프로그램이다.
  • 서비스 구축 단계부터 배포, 분석까지 전 단계를 다양한 기능으로 제공한다.

Firebase 주요 기능

앱 데이터 저장 및 동기화 기능

Authentication - 사용자 인증 및 관리

  • 손쉽게 로그인할 수 있는 인증 기능을 제공한다.
  • 이메일/비밀번호, 전화, SNS 인증 기능을 제공해 로그인/회원가입 기능 작업량을 줄여 쉽게 제작할 수 있다.

Cloud Firestore - 실시간 업데이트, 강력한 쿼리, 자동 확장

  • 클라우드에 호스팅되는 NoSQL 데이터베이스 지원해 iOS, Android, 웹 앱에서 기본 SDK를 통해 직접 액세스 하고, 소켓으로 바로 연결되어
    실시간 서비스를 구축할 수 있다.
  • 기존 Realtime database의 경우 실시간 접속수 상한이 있었으나 제한이 사라진 것이 특징이다.
  • 그러나 정식 서버를 구축하는 것보다 속도는 다소 느릴 수 있다.

Cloud Firestore

  • Firebase 및 Google Cloud의 모바일, 웹, 서버 개발에 사용되는 유연하고 확장 가능한 데이터베이스
  • 실시간 리스너를 통해 클라이언트 애플리케이션 간에 데이터의 동기화를 유지하고, 모바일/웹에 대한 오프라인 지원을 제공해 네트워크 지연 시간이나 인터넷 연결에 상관없이 원활하게 반응하는 앱을 개발할 수 있다.

Storage - 사용자 제작 콘텐츠 저장 및 검색

  • 사진, 동영상 등 사용자 제작 콘텐츠를 빠르고 손쉽게 저장하고 제작할 수 있다.
  • 클라이언트 파일을 어디에 저장할 것인지 결정하지 않아도 자동으로 처리해준다.

Hosting - 쉬운 웹 앱 배포

  • CDN(Content Delivery Network) 기능을 지원해 웹 페이지로드 시간을 크게 줄이면서 대역폭 비용을 줄이고, 가동 시간을 늘릴 수 있다.
  • CLI 배포로 서버에 올릴 수 있기 때문에 따로 FTA 접속 없이 손쉽게 배포 가능하며 버전 관리도 한눈에 볼 수 있다는 장점이 있다.

Realtime Database - 실시간 데이터 저장 및 동기화

  • 실시간 데이터베이스는 Firebase의 기존 데이터베이스로, 여러 클라이언트에서 실시간으로 상태를 동기화해야 하는 모바일 앱을 위한 효율적이고 지연 시간이 짧은 솔루션
  • 데이터베이스 사용 목적(데이터 동기화/고급 쿼리, 정렬), 데이터 작업량, 데이터 모델, 가용성, 데이터베이스 인스턴스 수 등을 고려해 Cloud Firestore, Realtime Databse를 선택해서 사용할 수 있다.

Cloud Functions

  • REST API, Firebase 서비스와 백그라운드 트리거 연동, 데이터베이스 제어, 사진/동영상 변환, 푸시 전송 등 작업 등 클라이언트 단의 다양한 작업을 수행할 수 있다.

기타

  • 앱 출시 및 모니터링을 위한 출시전 배포 테스트, Crashlytics(안전성 문제의 우선순위 지정 및 해결), 통계, Test Lab 등을 지원한다.
  • 사용자 참여 측정 및 분석을 위한 Analytics 기능
  • 잠재고객 증가 및 참여 유도를 위한 Cloud Messaging, Remote Config, A/B Testing, Predictions, Dynamic Links, In-App Messaging 기능

Questions & Learned

  • 좋은 서비스를 적재적소에 잘 사용할 수 있는 것도 프로그래밍 능력이다. 새로운 서비스를 알아가고 사용하는 것에 대한 두려움을 없애야한다.
  • '속도보다 방향성이 중요하다'는 Pratt 멘토님의 한마디가 많은 것을 생각하게 했다. 빠르게 적용해보고 실수해보는 것도 좋지만, 방향을 잡고 그 방향으로 잘 나아가고 있는지를 점검해야겠다.

0개의 댓글