Postgres 기반 개발 플랫폼이 열어주는 웹과 모바일, AI 앱 구축의 길
데이터베이스, 인증, 파일 저장소를 따로 설정하고 연동하던 번거로움에서 벗어나 하나의 계정으로 모든 기능을 관리할 수 있습니다. Supabase는 Postgres를 중심으로 파이어베이스와 유사한 개발 경험을 제공하는 오픈소스 기반 플랫폼입니다. 코드를 작성하면 API가 자동으로 생성되고, 데이터 변경이 실시간으로 클라이언트에 전달되는 과정을 직접 경험해 볼 수 있습니다.
오픈소스 도구로 재구성한 아키텍처
Supabase는 파이어베이스의 기능을 기업급 오픈소스 도구로 구현했습니다. MIT, Apache 2 등 오픈 라이선스를 가진 기존 도구들이 있으면 이를 사용하고, 없으면 직접 만들어 오픈소스로 공개하는 방식을 따릅니다. 따라서 파이어베이스와 1:1로 대응하는 것은 아니지만, 유사한 개발 경험을 제공합니다. Postgres, Realtime, PostgREST, GoTrue, Storage, pg_graphql, postgres-meta, Envoy 등 여러 오픈소스 프로젝트가 결합되어 하나의 플랫폼으로 동작합니다.
데이터베이스에서 실시간 API까지
Postgres 데이터베이스를 호스팅하며, PostgREST를 통해 데이터베이스를 RESTful API로 즉시 변환합니다. GoTrue는 JWT 기반 인증 API로 가입, 로그인, 세션 관리를 단순화합니다. Realtime은 Elixir 서버로 Postgres의 삽입, 업데이트, 삭제 이벤트를 웹소켓을 통해 JSON 형식으로 클라이언트에 전달합니다. Storage는 S3에서 파일을 관리하는 RESTful API이며, 권한은 Postgres가 처리합니다. 또한 pg_graphql을 통해 GraphQL API를 노출하고, postgres-meta로 테이블 조회, 역할 추가, 쿼리 실행 등 데이터베이스 관리를 수행할 수 있습니다.
언어별 클라이언트 라이브러리 구성
클라이언트 라이브러리는 모듈형 구조로, 각 서브라이브러리가 단일 외부 시스템에 대한 독립적인 구현체입니다. JavaScript(TypeScript), Flutter, Swift, Python은 공식 지원되며, C#, Go, Java, Kotlin, Ruby, Rust, Godot Engine(GDScript)은 커뮤니티 지원으로 제공됩니다. 각 언어별로 PostgREST, GoTrue, Realtime, Storage, Functions에 대한 전용 클라이언트가 존재하며, 일부 언어는 통합된 Supabase 클라이언트를 제공합니다. 이러한 모듈화 덕분에 기존 도구와의 호환성을 유지하면서 필요한 기능만 선택적으로 사용할 수 있습니다.
호스팅과 셀프호스팅의 선택지
Supabase는 호스팅 플랫폼으로, 설치 없이 가입만 하면 바로 사용할 수 있습니다. 동시에 셀프호스팅과 로컬 개발도 지원합니다. Postgres는 30년 이상의 개발 역사를 가진 객체 관계형 데이터베이스 시스템으로, 신뢰성과 기능의 견고함, 성능으로 명성이 높습니다. Envoy는 클라우드 네이티브 환경에서 고성능 엣지 및 서비스 프록시로 동작합니다. 이러한 구성 덕분에 클라우드 환경에서 빠르게 시작하거나, 자체 인프라에서 제어력을 높여 운영할 수 있습니다.
도입 전 확인해야 할 사항
Supabase는 Postgres를 기반으로 하므로, Postgres 생태계에 익숙한 개발자에게 적합합니다. 오픈소스 도구들의 조합이므로, 각 구성 요소의 버전과 호환성을 점검하는 것이 좋습니다. 공식 지원 언어와 커뮤니티 지원 언어의 범위를 확인하고, 프로젝트에 필요한 기능이 해당 언어 클라이언트에 포함되어 있는지 살펴보세요. 셀프호스팅을 계획한다면, Postgres, Realtime, PostgREST 등 각 컴포넌트의 운영 요구 사항을 사전에 파악해야 합니다.