표시 약속
:::tip 박스는 핵심 원칙,
:::caution 박스는 자주 겪는 함정이다.
새 API를 배우는 게 아니라, 이미 있는 데이터베이스를 네트워크 너머로 안전하게 여는 법을 배운다
웹 개발 경험은 있지만 Supabase는 처음인 사람, Firebase나 직접 만든 Express/Nest 백엔드를 써봐서 비교 지점이 보이는 사람, Next.js와 Vercel 조합을 쓰고 있거나 쓸 계획인 사람을 위한 자료다.
공식 문서(supabase.com/docs) 2026년 8월 기준으로 쓰였다. SQL을 아주 잘 알 필요는 없다 — 필요한 만큼은 4장에서 다시 짚는다.
첫 장부터 읽기Supabase는 제품이 많아 보이지만, 실제로는 Postgres 한 대와 그 위에 얹힌 서버들이다. 그래서 순서도 “데이터베이스에서 바깥으로” 나가는 방향을 따른다.
읽는 법 · 왜 Supabase인가
아키텍처 · 로컬 개발 환경 · Postgres 최소 지식
Data API · Auth · RLS
Storage · Realtime · Edge Functions · 확장
Vercel과의 역할 배분 · Next.js 통합
마이그레이션 · 브랜칭 · 성능 · 비용
실전 패턴 · 안티패턴 · 정리
이 문서에는 처음부터 끝까지 따라다니는 문장이 하나 있다 —
Auth가 발급한 JWT를 Postgres의 RLS가 해석해서 행 단위로 접근을 판정한다.
나머지는 전부 그 위에 얹힌 편의 기능이다. Storage의 파일 권한도, Realtime의 구독 권한도, GraphQL 엔드포인트도 같은 판정을 거친다. 그래서 6장(Auth)과 7장(RLS)을 이어서 읽으면 Supabase의 절반은 끝난다.
여기서 나오는 가장 큰 사고방식의 전환은 이것이다 —
if (user.id !== post.authorId) throw 같은 애플리케이션 코드가 SQL 정책으로 내려간다.
표시 약속
:::tip 박스는 핵심 원칙,
:::caution 박스는 자주 겪는 함정이다.
가장 중요한 세 장
손을 움직일 것
Docker와 Supabase CLI를 깔고 supabase start로
로컬 스택을 하나 띄워둔 상태를 전제로 쓰였다.
Free 플랜만으로도 거의 전부 실습할 수 있다.
다루지 않는 것
Postgres 튜닝 심화(vacuum, WAL 파라미터), 셀프호스팅 운영, 모바일 SDK 상세. AI/벡터는 “이런 게 있다” 수준까지만.