귀하는 로그인되어 있지 않습니다. 이대로 편집하면 귀하의 IP 주소가 편집 기록에 남게 됩니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!== 기술적 특징 == === 아키텍처 === Supabase는 여러 오픈소스 기술을 조합하여 구축된 플랫폼이다. 핵심 구성요소는 다음과 같다: * '''PostgreSQL''': 핵심 데이터베이스 엔진으로 사용 * '''PostgREST''': PostgreSQL 데이터베이스를 자동으로 RESTful API로 변환 * '''GoTrue''': JWT 기반 인증 서비스 * '''Realtime''': PostgreSQL의 변경사항을 웹소켓을 통해 클라이언트에 전송 * '''Storage''': S3 호환 객체 저장소 서비스 * '''Edge Functions''': 글로벌 엣지 네트워크에서 서버리스 함수 실행 * '''pgvector''': 벡터 임베딩 및 유사성 검색을 위한 PostgreSQL 확장 이러한 구성요소들은 모두 오픈소스로 제공되며, Supabase는 이들을 통합하여 일관된 개발자 경험을 제공한다. <div class="notice" style="border:1px solid #ccc; background-color:#f9f9f9; padding:5px;"> '''💡 참고''' Supabase는 모든 기능이 PostgreSQL을 중심으로 설계되어 있다. 이는 Firebase가 여러 서비스의 집합체인 것과는 대조적이다. PostgreSQL의 강력한 기능과 확장성을 활용함으로써, Supabase는 다양한 기능을 일관된 방식으로 제공할 수 있다. </div> === 핵심 기능 === ==== Supabase Database ==== Supabase의 핵심은 PostgreSQL 데이터베이스이다. 주요 특징으로는: * '''완전 관리형 PostgreSQL''': 최신 버전의 PostgreSQL을 자동 업데이트 및 백업 * '''자동 생성 API''': 테이블 생성 시 자동으로 RESTful API와 GraphQL API 생성 * '''데이터베이스 웹 인터페이스''': 브라우저에서 SQL 편집기, 테이블 뷰어 제공 * '''다양한 확장 지원''': PostGIS(지리 정보), pgvector(벡터 검색), pgroonga(전문 검색) 등 * '''행 수준 보안(RLS)''': 강력한 접근 제어 정책 설정 가능 * '''외부 데이터 래퍼(FDW)''': 외부 데이터베이스와의 연결 지원 * '''저장 프로시저''': PostgreSQL의 함수와 트리거 활용 가능 Supabase는 데이터베이스 성능을 최적화하기 위한 다양한 기술도 제공한다. 자동 인덱싱, 쿼리 최적화 제안, 성능 모니터링 등이 포함된다. ==== Supabase Auth ==== Supabase Auth는 사용자 인증 및 권한 관리를 위한 완전한 솔루션을 제공한다: * '''다양한 로그인 방식''': 이메일/비밀번호, 매직 링크, 전화번호, OAuth(구글, 페이스북, 깃허브 등) * '''다단계 인증(MFA)''': TOTP, SMS 인증 지원 * '''JWT 기반 인증''': 안전한 토큰 관리 * '''사용자 관리 패널''': 웹 인터페이스에서 사용자 관리 * '''커스텀 이메일 템플릿''': 가입, 비밀번호 재설정 등의 이메일 템플릿 맞춤 설정 * '''행 수준 보안과의 통합''': 사용자 정보에 기반한 데이터 접근 제어 * '''조직 및 팀 관리''': 사용자 그룹화 및 권한 관리 Supabase Auth는 GoTrue 서비스를 기반으로 하며, 세션 관리, 토큰 갱신, 사용자 메타데이터 관리 등의 기능을 포함한다. ==== Supabase Storage ==== Supabase Storage는 파일 및 미디어 관리를 위한 솔루션이다: * '''객체 저장소''': S3 호환 API를 통한 파일 업로드 및 다운로드 * '''공개/비공개 버킷''': 파일 접근 권한 설정 * '''이미지 변환''': 실시간 이미지 리사이징, 포맷 변환 * '''행 수준 보안과의 통합''': 파일 접근 제어를 데이터베이스 정책과 연동 * '''CDN 통합''': 글로벌 콘텐츠 전송 네트워크를 통한 빠른 파일 제공 * '''대용량 파일 지원''': 청크 업로드를 통한 대용량 파일 처리 * '''메타데이터 관리''': 파일 메타데이터 저장 및 검색 Supabase Storage는 백엔드에서 S3 호환 저장소를 사용하지만, 개발자 친화적인 API와 관리 인터페이스를 제공한다. ==== Supabase Edge Functions ==== Edge Functions는 Supabase 플랫폼에서 서버리스 함수를 실행할 수 있는 기능이다: * '''Deno 런타임''': 안전하고 현대적인 JavaScript/TypeScript 런타임 * '''글로벌 배포''': 전 세계 엣지 네트워크에서 함수 실행 * '''데이터베이스 통합''': 함수 내에서 Supabase 클라이언트 쉽게 사용 * '''웹훅 지원''': 외부 이벤트에 반응하는 함수 트리거 * '''스케줄링''': 예약된 시간에 함수 실행 * '''로깅 및 모니터링''': 함수 실행 로그 및 성능 지표 * '''환경 변수''': 보안 정보 및 설정 관리 Edge Functions를 통해 Supabase 플랫폼 내에서 복잡한 비즈니스 로직을 구현할 수 있으며, 데이터베이스 트리거와 결합하여 강력한 이벤트 기반 아키텍처를 구축할 수 있다. ==== Realtime ==== Supabase Realtime은 데이터베이스 변경 사항을 실시간으로 클라이언트에 전달하는 기능을 제공한다: * '''데이터베이스 변경 구독''': INSERT, UPDATE, DELETE 이벤트를 실시간으로 수신 * '''브로드캐스트''': 클라이언트 간 메시지 교환 * '''Presence''': 사용자 온라인 상태 및 메타데이터 관리 * '''채널 보안''': RLS 정책을 통한 구독 권한 관리 * '''필터링''': 특정 조건에 맞는 변경 사항만 구독 * '''Postgres 복제 기반''': 데이터베이스 복제 스트림을 활용한 안정적인 실시간 업데이트 * '''WebSocket 프로토콜''': 효율적인 양방향 통신 Realtime 기능은 채팅 앱, 협업 도구, 실시간 대시보드 등의 개발에 필수적인 요소로, Supabase에서는 이를 기본 기능으로 제공한다. ==== Vector ==== Supabase Vector는 AI 애플리케이션을 위한 벡터 임베딩 저장 및 검색 기능을 제공한다: * '''pgvector 확장 기반''': PostgreSQL의 벡터 확장을 활용 * '''다양한 임베딩 모델 지원''': OpenAI, Hugging Face 등의 모델과 통합 * '''유사성 검색''': 코사인 유사도, L2 거리 등을 통한 유사 벡터 검색 * '''하이브리드 검색''': 벡터 검색과 전통적인 텍스트 검색 결합 * '''인덱싱''': HNSW, IVFFlat 등의 인덱스를 통한 빠른 검색 * '''메타데이터 필터링''': 벡터 검색 결과를 메타데이터로 필터링 * '''행 수준 보안과의 통합''': 접근 제어 정책 적용 Vector 기능은 생성형 AI, 추천 시스템, 의미 검색 등의 개발에 활용될 수 있다. === 개발 환경 === Supabase는 다양한 프로그래밍 언어와 프레임워크를 지원하는 개발 환경을 제공한다: * '''클라이언트 라이브러리''': JavaScript/TypeScript, Flutter, Python, Go, Swift, Kotlin 등 * '''프레임워크 통합''': React, Next.js, Vue, Nuxt, SvelteKit, Astro 등 * '''CLI 도구''': 로컬 개발 및 배포 자동화 * '''Supabase Studio''': 웹 기반 관리 인터페이스 * '''마이그레이션 도구''': 데이터베이스 스키마 버전 관리 * '''로컬 개발 환경''': Docker 기반 로컬 Supabase 인스턴스 개발자는 자신이 선호하는 도구와 환경에서 Supabase를 활용할 수 있으며, 공식 문서와 예제를 통해 빠르게 시작할 수 있다. <div class="notice" style="border:1px solid #ccc; background-color:#f9f9f9; padding:5px;"> '''💡 개발자 tip''' Supabase CLI를 사용하면 로컬에서 Supabase 환경을 실행하고, 스키마 변경을 관리하며, 프로덕션 환경에 배포할 수 있다. 이는 CI/CD 파이프라인 구축에 특히 유용하다. <syntaxhighlight lang="bash"> # CLI 설치 npm install -g supabase # 로컬 개발 환경 시작 supabase start # 데이터베이스 마이그레이션 생성 supabase migration new my_migration # 프로덕션에 배포 supabase db push </syntaxhighlight> </div> 편집 요약 가온 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 가온 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 취소 편집 도움말 (새 창에서 열림)