본문 바로가기
Tech Notes

서버리스 최강자 Supabase!!!

by miracle-tech 2025. 7. 7.
728x90
반응형

✅ Supabase란?

Supabase = 오픈소스 Firebase 대체제

  • PostgreSQL + 인증(Auth) + 스토리지 + 실시간 API를 서버리스로 한 번에 제공.
  • 백엔드를 직접 만들지 않고도 인증, DB, 파일 저장, API를 다 쓸 수 있음.
  • 내부적으로는 여러 오픈소스 도구를 조합해서 제공.

✅ Supabase의 구성 요소

아주 간단히 핵심 4대 요소로 보면:

구성 요소역할
PostgreSQL DB 데이터 저장소 (유저, 게시물 등)
GoTrue Auth Server 이메일/비밀번호, OAuth 소셜 로그인
PostgREST API Gateway DB를 안전한 REST API로 자동 노출
Realtime/Storage 실시간 데이터 & 파일 스토리지
 

 


✅ 핵심 요소 1️⃣ PostgreSQL DB

  • Supabase는 PostgreSQL이 핵심.
  • users 같은 테이블, 관계형 데이터, Foreign Key, View 등 전부 PostgreSQL이 맡음.
  • DB 스키마 설계는 일반 RDB랑 동일.

✅ 핵심 요소 2️⃣ GoTrue (인증 서버)

  • Supabase의 인증은 GoTrue라는 오픈소스 인증 서버가 담당.
  • 이메일/비밀번호 로그인, Magic Link, OAuth(Google, GitHub) 등을 제공.
  • 로그인하면 JWT Access Token/Refresh Token 발급.
  • DB는 사용자의 추가 정보(username, role 등)를 저장.
  • 로그인된 사용자는 JWT로 자신이 허용된 DB 리소스만 요청 가능.

✅ 핵심 요소 3️⃣ PostgREST (API Gateway)

  • Supabase는 DB 쿼리를 안전한 REST API로 만들어주는 PostgREST를 같이 씀.
  • DB 테이블/뷰를 RESTful API로 자동 노출.
  • 예: /rest/v1/users → users 테이블 데이터를 JSON으로 GET/POST/PATCH.
  • JWT로 인증 헤더를 보내면, PostgREST가 권한을 검사.
  • RLS(Row Level Security)를 통해 이 사용자는 이 데이터만 볼 수 있다를 Postgres에서 직접 정의.

✅ 어떻게 같이 동작하나?

흐름 예시 (회원가입 → 데이터 요청)

1️⃣ 사용자가 email/password로 회원가입 → GoTrue가 JWT 발급.
2️⃣ 사용자 추가 정보(username 같은)는 PostgreSQL users 테이블에 저장.
3️⃣ 사용자가 클라이언트에서 users API를 호출 → PostgREST가 요청 받음.
4️⃣ JWT로 인증 → PostgREST가 DB Row Level Security로 권한 확인.
5️⃣ 권한 통과하면 데이터 리턴.

즉, DB + 인증 + API Gateway가 각각 나눠져 있고, JWT로 연결돼 있어서 서버리스로 돌아감.


✅ Supabase = 오픈소스 모듈 조합

기능Supabase 내부 오픈소스
DB PostgreSQL
인증 GoTrue
API PostgREST
실시간 Realtime Server
스토리지 Storage Server
 

✅ 핵심 장점

✅ 직접 인증 서버, DB API, 스키마 설계, JWT 발급 로직 만들 필요 없음.
✅ Row Level Security + JWT만으로 안전하게 권한 관리.
✅ REST/GraphQL 모두 가능(PostgREST + pg_graphql).
✅ CLI/SDK로 배포와 관리 자동화.

 

 

❓  만약, 복잡한 비지니스 로직 없이 DB, 인증 정도의 기능만 필요하다?

그럼 백엔드가 필요없는 서버리스 supabase 만 쓰면 된다.

아래의 예시를 보자!

👉  예시: Next.js + Supabase

 

✅ DB 직접 연결 X → Supabase SDK가 HTTP로 요청.
✅ 인증 로직 직접 구현 X → Supabase Auth 서버가 대신 처리.
✅ API 직접 만들 필요 X → PostgREST가 대신 REST API 만들어줌.

 


✅ 결론

Supabase = PostgreSQL을 클라우드에서 SaaS로 쓰면서, 인증과 API Gateway까지 한번에 제공해주는 서버리스 풀스택 백엔드.

728x90