인증 방식
🔑 API Key
요금
무료(2프로젝트 500MB), Pro $25/월~
Base URL
[project].supabase.co
태그
백엔드, PostgreSQL
서비스 소개
Supabase는 PostgreSQL 기반의 Backend-as-a-Service입니다. 데이터베이스, 인증(소셜 로그인 포함), 스토리지, 실시간 구독, Edge Functions를 제공합니다. 무료 티어가 넉넉하고(프로젝트 2개, 500MB DB), Next.js와 궁합이 매우 좋습니다.
🚀 시작하기
- 1
프로젝트 생성
supabase.com → New project → 지역: Northeast Asia (Seoul)
- 2
SDK 설치
npm install @supabase/supabase-js
- 3
URL·Key 설정
.env에 SUPABASE_URL, SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY 추가
- 4
테이블 생성
Table Editor 또는 SQL Editor에서 테이블 생성
📋 응답 예시
[
{ "id": 1, "name": "홍길동", "email": "hong@example.com", "created_at": "2024-01-01" },
{ "id": 2, "name": "김철수", "email": "kim@example.com", "created_at": "2024-01-02" }
]💡 코드 예제
JavaScriptNext.js
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
)
// 데이터 조회
const { data, error } = await supabase
.from('users')
.select('*')
.eq('status', 'active')
.order('created_at', { ascending: false })
.limit(10)
// 데이터 삽입
const { data: newUser } = await supabase
.from('users')
.insert({ name: '홍길동', email: 'hong@example.com' })
.select()
.single()
// 소셜 로그인
const { data: auth } = await supabase.auth.signInWithOAuth({
provider: 'kakao', // google, github, kakao 등
})
// 실시간 구독
supabase
.channel('messages')
.on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'messages' },
payload => console.log('새 메시지:', payload.new)
)
.subscribe()PythonPython
from supabase import create_client
supabase = create_client(
"https://xxxx.supabase.co",
"YOUR_ANON_KEY"
)
# 조회
data = supabase.table("users").select("*").execute()
print(data.data)
# 삽입
result = supabase.table("users").insert({
"name": "홍길동",
"email": "hong@example.com"
}).execute()