Learn

Supabase 이해하기

Supabase

Supabase가 무엇인지, 무엇이 아닌지, 그리고 왜 사용하는지.

Supabase는 PostgreSQL을 기반으로 구축된 BaaS(Backend-as-a-Service)예요. 간단히 말하면: 프로젝트를 만들면 Supabase가 완전한 SQL 데이터베이스, 인증 시스템, 파일 스토리지, 서버리스 함수를 제공해요. 이 모든 것이 바로 사용할 수 있는 API로 노출되어 있어요. 이 레슨은 실습을 시작하기 전에 기초를 다지는 시간이에요.

Supabase가 아닌 것

더 나아가기 전에 한 가지를 짚어볼게요: Supabase는 Firebase가 아니에요.

Firebase(Google)는 Firestore를 사용해요. 문서 지향 NoSQL 데이터베이스예요. Supabase는 PostgreSQL을 기반으로 해요. 테이블, 타입이 지정된 컬럼, 조인, 외래 키, 그리고 SQL의 모든 강력함을 갖춘 진짜 관계형 데이터베이스예요.

"Supabase는 오픈 소스 Firebase다"라는 말을 들어본 적이 있다면, 시작점으로는 괜찮은 비유예요. 하지만 한계가 있어요. 데이터 모델이 근본적으로 달라요. Supabase에서는 SQL을 직접 작성하거나(또는 API가 대신 처리하게 하거나), 스키마를 정의하고, 제약 조건을 설정해요. 더 구조적이고, 더 예측 가능하며, 진지한 애플리케이션에 더 적합한 경우가 많아요.

Supabase의 4가지 핵심 구성 요소

모든 Supabase 프로젝트는 함께 작동하는 네 가지 통합 서비스로 구성되어 있어요.

Database - 핵심이에요. 활성화 가능한 확장 기능(pgvector, PostGIS 등), 백업, 그리고 변경 사항을 실시간으로 감지하는 Realtime 인터페이스를 갖춘 완전한 PostgreSQL 인스턴스예요.

Auth - 사용자 및 세션 관리예요. 이메일/비밀번호, 매직 링크, OAuth(Google, GitHub, Apple...), 전화번호를 지원해요. 사용자는 데이터베이스와 연결되어 있어, 행 수준 보안(RLS) 규칙으로 데이터를 보호할 수 있어요(나중에 자세히 다룰게요).

Storage - 파일 스토리지예요(이미지, 동영상, 문서). Postgres와 완전히 통합되어 있어: 파일 권한이 테이블과 동일한 RLS 규칙을 따라요.

Edge Functions - 사용자와 가까운 곳에 배포되는 서버리스 함수예요. TypeScript(Deno)로 작성되며, 여러 리전의 Supabase 인프라에서 실행돼요.

Supabase가 흥미로운 이유

세 가지 구체적인 이유가 있어요:

오픈 소스. Supabase의 모든 코드는 GitHub에 공개되어 있어요. 블랙박스에 갇히지 않아요. 만약 Supabase가 내일 사라지더라도(가상의 이야기지만), PostgreSQL을 그대로 유지하고 마이그레이션할 수 있어요.

Self-hosting 가능. Docker Compose를 사용해 자체 서버에서 Supabase를 실행할 수 있어요. 클라우드 버전(supabase.com)이 시작하기에 가장 간단하지만, 규정 준수나 비용 제약이 있다면 자체 호스팅 옵션이 있어요. 참고로, self-hosting은 유지보수, 백업, 보안에 대한 책임을 직접 지게 돼요.

SQL 직접 접근. 표준 PostgreSQL 클라이언트로 데이터베이스를 쿼리할 수 있어요. Supabase는 자체 도구에 가두지 않아요. psql, TablePlus, DBeaver, 모두 작동해요.

출처

관련

참고 · fullstackLes bases de données

다음 단계를 열려면 단계를 체크하세요

코스로 돌아가기