개인의 기록
  • 소개
  • 프로젝트
  • 글
  • 링크

© 2026 newgirok

← 글 목록

Supabase란? — PostgreSQL 기반 오픈소스 BaaS

2025년 3월 28일
SupabaseBaaSPostgreSQLFirebase 대안Backend

백엔드 없이 빠르게 서비스를 만들고 싶을 때, Firebase가 오랫동안 대안이었다. 하지만 NoSQL의 한계, 벤더 종속, 복잡한 쿼리 문제로 이탈하는 팀이 늘어나고 있다. Supabase는 PostgreSQL을 기반으로 이 공백을 정면으로 파고든 오픈소스 BaaS다.

BaaS(Backend as a Service): 인증·데이터베이스·파일 저장소 등 백엔드 기능을 API로 제공하는 클라우드 서비스.

Firebase와의 비교

항목FirebaseSupabase
데이터베이스Firestore (NoSQL)PostgreSQL (관계형)
쿼리제한적완전한 SQL
오픈소스아니오예 (self-host 가능)
실시간WebSocketPostgreSQL Realtime
벤더 종속높음낮음

SQL에 익숙하거나, 복잡한 관계형 데이터를 다뤄야 한다면 Supabase가 훨씬 자연스럽다.

제공 서비스

Database — PostgreSQL을 그대로 사용한다. 테이블, 인덱스, Foreign Key, RLS(Row Level Security) 모두 지원한다.

Auth — 이메일/패스워드, OAuth(Google, GitHub 등), Magic Link 방식의 인증을 내장한다. JWT 기반으로 동작하며 RLS와 연동해 사용자별 데이터 접근을 제어할 수 있다.

Storage — 파일 업로드·다운로드를 위한 오브젝트 스토리지. 내부적으로 S3 호환 스토리지를 사용한다.

Realtime — PostgreSQL의 변경 사항(INSERT/UPDATE/DELETE)을 WebSocket으로 실시간 브로드캐스트한다.

Edge Functions — Deno 기반의 서버리스 함수. 인증 웹훅, 외부 API 호출 등 커스텀 로직을 엣지에서 실행한다.

RLS(Row Level Security): PostgreSQL 기능으로, 행 단위로 접근 권한을 제어한다. auth.uid와 결합해 "본인 데이터만 조회 가능" 같은 정책을 DB 레벨에서 강제할 수 있다.

구조 개요

클라이언트 (브라우저 / 앱)
        │
        ▼
  Supabase SDK (supabase-js)
        │
   ┌────┴─────────────────────────┐
   │         Kong API Gateway      │
   └──┬──────┬──────┬──────┬──────┘
      │      │      │      │
   PostgREST Auth  Storage Realtime
      │
 PostgreSQL

외부 요청은 Kong을 통해 라우팅되고, PostgREST가 PostgreSQL을 REST API로 자동 노출한다. 별도의 API 서버 코드 없이 테이블을 만들면 즉시 엔드포인트가 생긴다.

PostgREST: PostgreSQL 스키마를 읽어 자동으로 RESTful API를 생성하는 서버.

코드 예시

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

const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY)

// 데이터 조회
const { data, error } = await supabase
  .from('posts')
  .select('*')
  .eq('published', true)
  .order('created_at', { ascending: false })

언제 사용하는가

  • SQL 기반 복잡한 쿼리가 필요한 경우
  • 오픈소스로 self-host가 필요한 경우
  • Firebase에서 마이그레이션을 고려 중인 경우
  • 소규모 팀이 빠르게 풀스택 앱을 만들어야 할 때

장단점

장점: SQL의 표현력, 오픈소스(벤더 종속 없음), 로컬 개발 환경 지원(supabase start), 무료 티어 제공.

단점: PostgreSQL 이외의 DB 선택지가 없음, 트래픽이 커지면 관리형 비용 증가, Edge Functions의 Deno 생태계가 Node.js보다 좁음.

다음 글 →Supabase PostgreSQL — 관계형 데이터베이스 기반