Firebase

[Firebase] 파이어베이스란 무엇일까?

jundyu 2024. 10. 6. 15:05

파이어베이스란?

이번에 리액트 프로젝트에서 UI/UX에 더 집중하기 위해 백엔드는 파이어베이스라는 백엔드 플랫폼으로 전부 구현하기로 했습니다. 간단하게 말하면 파이어베이스는 Google에서 제작한 모바일 & 웹 애플리케이션 개발용 플랫폼(BaaS : Backend as a Service)입니다. 파이어베이스를 사용하면 인증, DB, storage 등을 직접 구현하지 않아도 되기 때문에 프론트에 투자할 수 있는 시간을 더 늘릴 수 있습니다.

파이어베이스의 주요 기능

1. Firebase Authentication - 인증

간편한 사용자 인증 기능을 제공해줍니다. google, facebook 등의 다양한 소셜 로그인 등을 지원해줍니다.

2. Firestore - Cloud DB

NoSQL 기반 클라우드 데이터베이스로, 실시간 데이터 동기화와 확장성을 지원하며, 복잡한 쿼리도 가능합니다. 아래 Storage보다 더욱 확장된 쿼리문과 뛰어난 데이터 구조화로 사용이 편리합니다.

3. Storage - 저장소

대용량 파일(이미지, 동영상 등)을 클라우드에 저장하고 관리할 수 있는 저장소 기능을 제공합니다. 일반적으로 파일을 Storage에 저장한 뒤 파일 url를 firestore의 db에 String으로 저장합니다.

4. Realtime Database - 실시간 DB

실시간 데이터베이스로, 데이터가 변경될 때마다 즉각적으로 업데이트를 동기화합니다. 물론 firestore도 실시간으로 데이터를 처리해주긴 하지만 Realtime Database는 더욱 빠르게 데이터를 처리하고, 단순한 데이터 구조를 가지고 있습니다.

5. Hosting - 호스팅

정적 파일을 간편하게 배포할 수 있는 호스팅 서비스입니다.

6. Firebase 제품군 한 눈에 보기

 

 

파이어베이스를 쓰면 왜 좋을까?

 

  • 다양한 제품군 선택 가능: 인증, 데이터베이스, 호스팅 등 프로젝트의 요구사항에 맞는 기능만 선택하여 사용할 수 있습니다.
  • 원활한 통합: 파이어베이스의 각 기능들이 서로 쉽게 통합되어 개발 속도를 크게 향상시킵니다.
  • 간편한 사용: 사용이 직관적이고 설정 과정이 간단하여, 백엔드 구현에 많은 시간을 들이지 않아도 됩니다.
  • 확장성: 안정적이고 확장 가능한 서비스를 손쉽게 구축할 수 있습니다.
  • UI/UX 집중 가능: 백엔드 부담을 줄여 프론트엔드와 UI/UX 같은 핵심 요소에 더 많은 시간을 투자할 수 있습니다.
  • 무료 사용 가능: 소규모 프로젝트에서는 다양한 제품들을 무료로 사용할 수 있어 초기 비용 부담이 없습니다.

 

파이어베이스 사용을 지양해야하는 경우

 

  • 대규모 서비스: 프로젝트가 성장하면서 사용량이 급격히 늘어날 경우, 무료 플랜에서 유료 플랜으로의 전환이 필요하며, 사용량에 따라 비용이 급증할 수 있습니다.
  • 복잡한 데이터베이스 구조: 복잡한 데이터 모델링이나 대규모 트랜잭션 처리가 필요한 경우, Firestore와 Realtime Database는 제한적일 수 있어 보다 강력한 데이터베이스 해결책이 필요할 수 있습니다.
  • 플랫폼 종속성을 피하고 싶을 때: 파이어베이스는 구글 플랫폼에 종속되어 있어, 추후 다른 클라우드 서비스로의 이전이 어려울 수 있습니다.

 

.

.

.

 

마치며

최근에 미니 프로젝트를 진행하면서 Firebase를 처음으로 사용해봤습니다. Firestore, Authentication, Realtime Database, Storage 제품들을 사용해봤는데 정해진 문법만 준수해서 코드를 작성하니 정말 쉬웠습니다. 앞으로 Firebase만 쓰고 싶을 정도로요.. 물론 Firebase가 만능은 아니지만 소규모 프로젝트나 빠르게 MVP를 개발할 때에 아주 유용할 것 같아 개인적으로 추천합니다.

프로젝트를 진행하면서 중간중간 Firebase의 기초 설정이나 문법 등을 Notion에 정리해놨기 때문에 차차 정리해서 올릴 예정입니다. 제 블로그를 찾아오신 분들에게 작은 도움이라도 되었으면 좋겠습니다.