728x90
728x90

Supabase

들어가며

  • Firebase의 대안으로 많이 사용되는 Supabase에 대해 정리해본다.

 

Supabase

개념

  • 개발자들이 서버리스 애플리케이션을 빠르게 구축할 수 있도록 돕는 오픈 소스 백엔드 서비스
  • Firebase의 대안으로 많이 사용되며, PostgreSQL을 기반으로 데이터를 관리하고 다양한 기능을 제공한다.

 

주요 기능

데이터베이스 관리

  • PostgreSQL을 기본 데이터베이스로 사용한다.
  • 스키마 관리, 관계형 데이터베이스, 실시간 기능 등을 지원한다.
  • SQL 쿼리를 사용하여 복잡한 데이터를 처리할 수 있다.

 

실시간 기능

  • 실시간 데이터베이스 이벤트를 구독할 수 있다.
  • 예) 데이터베이스에 새로운 레코드가 추가되거나 업데이트되면 자동으로 클라이언트에 알림 보내기

 

인증 및 권한 관리

  • 이메일, 비밀번호 로그인, 소셜 로그인(Google, GitHub 등)을 지원하는 인증 시스템을 제공한다.
  • JWT 토큰 기반의 사용자 인증 및 세션 관리가 가능하다.
  • 사용자 역할에 따른 권한 관리 기능을 제공한다.

 

스토리지

  • 파일 저장을 위한 스토리지 서비스를 제공한다.
  • 이미지, 동영상, 파일 등을 업로드하고 관리할 수 있다.

 

Edge Functions

  • 서버리스 함수(클라우드 함수)를 지원하여 서버에서 실행할 비즈니스 로직을 작성할 수 있다.
  • JavaScript, TypeScript 등을 지원하여 API 엔드포인트를 쉽게 만들 수 있다.

 

API 생성

  • 데이터베이스 테이블에서 자동으로 RESTful API를 생성한다.
  • 각 테이블에 대해 CRUD(Create, Read, Update, Delete) 작업을 수행하는 API를 제공하며, 권한 설정을 통해 접근을 제어할 수 있다.

 

오픈 소스

  • 완벽하게 오픈 소스로 제공되며, GitHub에서 소스 코드를 확인하고 기여할 수 있다.

 

사용 예

  • 백엔드를 구축하지 않고도 Supabase를 사용하여 데이터베이스, 인증, 파일 저장 등의 기능을 간편하게 사용할 수 있다.
  • 채팅 애플리케이션이나 협업 툴처럼 실시간으로 데이터가 변경되는 애플리케이션에 적합하다.
  • 서버리스 함수를 통해 복잡한 서버 로직을 구현하지 않고도 백엔드 로직을 처리할 수 있다.

 

Supabase vs. Firebase

  • Supabase SQL 기반 관계형 데이터베이스를 사용하므로, 기존 SQL 쿼리를 사용하고 싶을 경우 사용하면 좋다.
  • Firebase는 NoSQL 데이터베이스를 사용하여 비구조적 데이터를 처리하는 데 더 유리할 수 있다.
기능 Supabase Firebase
데이터베이스 PostgreSQL (관계형 DB) Firestore (NoSQL)
실시간 데이터 지원 지원
인증 지원 (소셜 로그인 포함) 지원 (소셜 로그인 포함)
스토리지 지원 (파일 업로드 및 관리) 지원
서버리스 함수 Edge Functions Cloud Functions
오픈 소스 O X

 

사용 예제 코드

import { createClient } from '@supabase/supabase-js';

const supabase = createClient('https://your-project-url.supabase.co', 'public-anon-key');

// 데이터 읽기
const { data, error } = await supabase
  .from('users')
  .select('*');

// 데이터 삽입
const { data, error } = await supabase
  .from('users')
  .insert([{ username: 'new_user', age: 30 }]);

 

 

참고 사이트

 

Supabase Docs

Supabase is an open source Firebase alternative providing all the backend features you need to build a product.

supabase.com

728x90
728x90

'DevOps > Service' 카테고리의 다른 글

[Service] Contentful  (1) 2024.11.28
[Service] Auth0  (2) 2024.11.20
[Service] Render  (0) 2024.11.06
[Service] Mockaroo  (2) 2024.11.06
[Service] 프리즈마(Prisma)  (3) 2024.10.22