왜 Supabase를 사용해야 할까?

JSK·2024년 8월 12일

로펀님의 Supabase 강의를 듣고 작성한 글입니다.

서두

최근 사이드 프로젝트를 진행하기 위해 여러가지 기술들을 서치했다. 사이드 프로젝트는 한정된 자원 속에 서비스를 구현해야하기 때문에 시간을 줄여줄 기술들에 관심을 가지게 되었고 그 중 Supabase를 관심있게 보게 되었다.

Firebase

Supabase 글에 갑자기 Firebase 얘기가 나와 이상할 수 있지만 Supabase는 Firebase의 대체제로 자신의 존재를 알려왔다. Supabase의 홈페이지에는 아예 오픈소스 Firebase 대체제라고 소개하고 있고 Supabase CTO가 작성한 Supabase vs Firebase 라는 비교글도 존재한다.

두 서비스 모두 BaaS(Backend as a Service)로 서버 없이도 빠르게 앱을 출시 할 수 있도록 나온 백엔드 플랫폼 서비스이다. 개발자는 웹 혹은 모바일 앱 개발에 집중하고 백그라운드 측면은 BaaS 서비스를 사용함으로써 개발 시간을 단축할 수 있다.
Firebase는 Firestore database라는 Document NoSQL을 기반으로 유저 인증, Cloud Function, Cloud Storage 등의 다양한 기능들을 제공한다.

Firebase의 장점

  • 구글의 다양한 서비스와 폭넓은 연동을 지원
  • 적용이 매우 쉽고 문서화가 잘 됨
  • 2011년부터 서비스되어 커뮤니티가 매우 성숙함
  • 앱, 웹에서 단순하게 사용할 수 있는 NoSQL 기반

Firebase의 단점

  • 오픈소스가 아니기 때문에 Vendor Lock-in 이슈가 있음
  • NoSQL이기 때문에 검색 조건이 많아지면 쿼리가 복잡해지고 어려워짐
  • Firebase는 읽기, 쓰기, 삭제에 대해 비용을 부과하기 때문에 예상치 못하게 비용이 증가할 수 있음

Supabase

Supabase는 오픈소스로서 PostgreSQL이라는 RDBMS를 기반으로 하는 서비스이다. Supabase는 PostgreSQL을 기반으로 4가지 핵심 기능들을 제공한다.

  • Database : Supabase는 Postgres DB를 모두 활용한 실시간 기능, DB 백업, 익스텐션 등을 제공
  • Auth : email/password 인증부터 OAuth, 모바일 로그인까지 다양한 인증 기능과 API를 제공
  • Storage : 이미지, 동영상 등의 파일들을 쉽게 업로드하고 관리할 수 있는 기능을 제공
  • Realtime : 실시간으로 클라이언트들 간 메세지를 주고 받을 수 있고 유저 상태를 공유할 수 있음

Supabase 장점

  • 오픈소스 프로젝트이기 때문에 Vendor Lock-in 이슈에 자유롭고 자체 서버 구축이 가능함
  • PostgreSQL 기반으로 관계형 DB의 장점을 잘 살릴 수 있음
  • 저장된 데이터의 양에 따라 비용을 부과하기 때문에 Firebase 대비 저렴함
  • REST API, GraphQL, SDK 등 다양한 연동방식을 지원

Supabase 단점

  • 아직 커뮤니티가 Firebase만큼 성숙하지 않음. 기능이 미흡한 부분에 대해서는 직접 PR을 올리거나 이슈 제기를 해야 할 수 있음
  • Firebase 대비 제공 기능이 비교적 적음
  • 아직까지는 문서화가 Firebase 대비 미흡함. 한글화는 당연히 안되어 있고 공식 사이트의 가이드 문서를 보더라도 아쉬움이 느껴짐

왜 Supabase를 사용해야 할까?

Firebase와 Supabase를 비교해봤는데 지금까지 Supabase를 사용해본 결과 아래와 같은 상황에 Supabase 사용하는 것을 고려할 수 있다.

  • Supabase에는 개인이나 소규모 팀이 풀스택으로 개발하는데 필요한 대부분의 기능들이 준비되어 있다.
  • Supabase는 오픈소스이기 때문에 보안상의 이슈로 직접 서버 구축이 필요할 때나 Vendor Lock-in 이슈로 Firebase에서 마이그레이션이 필요할 때 사용할 수 있다.
  • Supabase는 PostgreSQL 기반의 서비스이기 때문에 SQL로 복잡한 쿼리나 조인을 작성해서 서비스 로직을 정교하게 만들 수 있다.
  • Supabase는 강력한 보안 기능을 제공한다. Row Level Security를 제공해 테이블의 데이터를 Row 단위로 세밀하게 관리할 수 있고 Auth를 통해 사용자 데이터를 안전하게 보호하는 인증 시스템을 제공한다.

참조

profile
fullstack developer & maker

0개의 댓글