본문으로 건너뛰기

Supabase란?

Supabase는 오픈소스 Firebase 대안으로, PostgreSQL 기반의 백엔드를 즉시 제공하는 BaaS(Backend as a Service) 플랫폼입니다. 데이터베이스, 인증, 스토리지, 실시간 구독 등을 하나의 플랫폼에서 사용할 수 있습니다.

주요 특징

항목설명
PostgreSQL완전한 PostgreSQL 데이터베이스 제공 (SQL 직접 사용 가능)
인증이메일/비밀번호, 소셜 로그인, Magic Link, SSO 지원
스토리지파일 업로드/다운로드, 이미지 변환 기능 내장
실시간데이터 변경을 실시간으로 구독 (WebSocket 기반)
Edge FunctionsDeno 기반 서버리스 함수
Row Level SecurityPostgreSQL RLS로 행 단위 접근 제어
무료 플랜2개 프로젝트, 500MB DB, 1GB 스토리지 무료

핵심 개념

Project

Supabase의 기본 단위입니다. 프로젝트 하나에 데이터베이스, 인증, 스토리지가 모두 포함됩니다. 프로젝트 생성 시 고유한 URL과 API Key가 발급됩니다.

API Key

Supabase는 두 가지 키를 제공합니다.

  • anon (public) — 클라이언트에서 사용하는 공개 키. RLS 정책에 의해 접근이 제한됩니다.
  • service_role — 서버에서만 사용하는 비공개 키. RLS를 우회하므로 절대 클라이언트에 노출하면 안 됩니다.

Row Level Security (RLS)

PostgreSQL의 행 단위 보안 정책입니다. 테이블별로 "누가 어떤 행을 읽고/쓸 수 있는지" 규칙을 정의합니다.

-- 예: 본인의 데이터만 조회 가능
CREATE POLICY "Users can view own data"
ON profiles FOR SELECT
USING (auth.uid() = user_id);
RLS가 중요한 이유

Supabase는 클라이언트에서 직접 DB에 접근하는 구조입니다. RLS를 설정하지 않으면 anon key로 모든 데이터에 접근할 수 있으므로, 테이블 생성 후 반드시 RLS를 활성화하세요.

Auto-generated API

테이블을 생성하면 RESTful API가 자동으로 만들어집니다. 별도의 백엔드 코드 없이 CRUD가 가능합니다.

GET    /rest/v1/테이블명          — 조회
POST /rest/v1/테이블명 — 생성
PATCH /rest/v1/테이블명?id=eq.1 — 수정
DELETE /rest/v1/테이블명?id=eq.1 — 삭제

Supabase vs Firebase

비교SupabaseFirebase
데이터베이스PostgreSQL (관계형)Firestore (NoSQL)
쿼리SQL 직접 사용 가능독자적 쿼리 문법
오픈소스O (셀프 호스팅 가능)X
가격PostgreSQL 기반 예측 가능읽기/쓰기 횟수 기반
실시간PostgreSQL 변경 감지네이티브 실시간 동기화

다음 단계

Supabase의 기본 개념을 이해했다면 Next.js에 Supabase 적용하기에서 실제 프로젝트에 적용해 보세요.