728x90
728x90
Supabase
들어가며
- Firebase의 대안으로 많이 사용되는 Supabase에 대해 정리해본다.
Supabase
개념
- 개발자들이 서버리스 애플리케이션을 빠르게 구축할 수 있도록 돕는 오픈 소스 백엔드 서비스
- Firebase의 대안으로 많이 사용되며, PostgreSQL을 기반으로 데이터를 관리하고 다양한 기능을 제공한다.
주요 기능
데이터베이스 관리
- PostgreSQL을 기본 데이터베이스로 사용한다.
- 스키마 관리, 관계형 데이터베이스, 실시간 기능 등을 지원한다.
- SQL 쿼리를 사용하여 복잡한 데이터를 처리할 수 있다.
실시간 기능
- 실시간 데이터베이스 이벤트를 구독할 수 있다.
- 예) 데이터베이스에 새로운 레코드가 추가되거나 업데이트되면 자동으로 클라이언트에 알림 보내기
인증 및 권한 관리
- 이메일, 비밀번호 로그인, 소셜 로그인(Google, GitHub 등)을 지원하는 인증 시스템을 제공한다.
- JWT 토큰 기반의 사용자 인증 및 세션 관리가 가능하다.
- 사용자 역할에 따른 권한 관리 기능을 제공한다.
스토리지
- 파일 저장을 위한 스토리지 서비스를 제공한다.
- 이미지, 동영상, 파일 등을 업로드하고 관리할 수 있다.
Edge Functions
- 서버리스 함수(클라우드 함수)를 지원하여 서버에서 실행할 비즈니스 로직을 작성할 수 있다.
- JavaScript, TypeScript 등을 지원하여 API 엔드포인트를 쉽게 만들 수 있다.
API 생성
- 데이터베이스 테이블에서 자동으로 RESTful API를 생성한다.
- 각 테이블에 대해 CRUD(Create, Read, Update, Delete) 작업을 수행하는 API를 제공하며, 권한 설정을 통해 접근을 제어할 수 있다.
오픈 소스
- 완벽하게 오픈 소스로 제공되며, GitHub에서 소스 코드를 확인하고 기여할 수 있다.
사용 예
- 백엔드를 구축하지 않고도 Supabase를 사용하여 데이터베이스, 인증, 파일 저장 등의 기능을 간편하게 사용할 수 있다.
- 채팅 애플리케이션이나 협업 툴처럼 실시간으로 데이터가 변경되는 애플리케이션에 적합하다.
- 서버리스 함수를 통해 복잡한 서버 로직을 구현하지 않고도 백엔드 로직을 처리할 수 있다.
Supabase vs. Firebase
- Supabase는 SQL 기반 관계형 데이터베이스를 사용하므로, 기존 SQL 쿼리를 사용하고 싶을 경우 사용하면 좋다.
- Firebase는 NoSQL 데이터베이스를 사용하여 비구조적 데이터를 처리하는 데 더 유리할 수 있다.
기능 | Supabase | Firebase |
데이터베이스 | PostgreSQL (관계형 DB) | Firestore (NoSQL) |
실시간 데이터 | 지원 | 지원 |
인증 | 지원 (소셜 로그인 포함) | 지원 (소셜 로그인 포함) |
스토리지 | 지원 (파일 업로드 및 관리) | 지원 |
서버리스 함수 | Edge Functions | Cloud Functions |
오픈 소스 | O | X |
사용 예제 코드
import { createClient } from '@supabase/supabase-js';
const supabase = createClient('https://your-project-url.supabase.co', 'public-anon-key');
// 데이터 읽기
const { data, error } = await supabase
.from('users')
.select('*');
// 데이터 삽입
const { data, error } = await supabase
.from('users')
.insert([{ username: 'new_user', age: 30 }]);
참고 사이트
728x90
728x90
'DevOps > Service' 카테고리의 다른 글
[Service] Contentful (1) | 2024.11.28 |
---|---|
[Service] Auth0 (2) | 2024.11.20 |
[Service] Render (0) | 2024.11.06 |
[Service] Mockaroo (2) | 2024.11.06 |
[Service] 프리즈마(Prisma) (3) | 2024.10.22 |