검색
검색
공개 노트 검색
회원가입로그인

Supabase 란 무엇인가? 개발자들을 위한 백엔드 서비스

소개

Supabase는 PostgreSQL 기반의 오픈 소스 백엔드 서비스로, 서버리스 백엔드 플랫폼의 대안으로 각광받고 있다. 개발자들이 백엔드를 따로 구축할 필요 없이, 손쉽게 애플리케이션의 데이터베이스를 구축하고 관리할 수 있도록 돕는다. Supabase는 자동으로 API를 생성하고, 인증, 파일 스토리지, 실시간 데이터 동기화 등의 다양한 기능을 제공하여 클라우드 환경에서 효율적으로 애플리케이션을 개발할 수 있게 한다.

예를 들어 서비스를 개발하면 매번 DB, 사용자 인증 등을 만들어야 하는데 이를 패키지화여 제공해서 쉽게 개발할 수 있게 해준다. 기본으로 무료 사용량을 제공하며 필요에 따라 유료 사용량으로 전환하거나 오픈 소스이기 때문에 직접 호스팅하는 방법이 있다.

파이어베이스도 매우 편리한데 이 서비스는 NoSQL 기반이고 구글의 안정적인 인프라를 사용할 수 있다. 파이어베이스도 무료 사용량을 제공한다.

주요 기능

데이터베이스

Supabase는 PostgreSQL 데이터베이스를 기본으로 하여 데이터를 저장하고 관리한다. 또한 관계형 데이터베이스를 지원하여 CRUD 작업이 용이하다.

  • 테이블 생성 및 관리: 대시보드에서 손쉽게 테이블을 생성하고 관리할 수 있다.

  • SQL Editor: 직접 SQL 쿼리를 작성하고 실행할 수 있는 편집기를 제공한다.

  • Row Level Security (RLS): 테이블 접근 권한을 설정할 수 있는 보안 정책을 지원한다.

인증

Supabase Auth를 통해 사용자 인증을 쉽게 관리할 수 있다. 이메일 로그인, 매직 링크, 소셜 로그인 등을 지원하며, 복잡한 접근 정책도 SQL 규칙을 이용해 설정할 수 있다.

  • 소셜 로그인: Google, GitHub 등 여러 소셜 로그인을 지원하여 간편하게 구현할 수 있다.

  • 인증 토큰 관리: JWT 기반의 인증 토큰을 관리하며, 안전하게 사용자 세션을 유지할 수 있다.

스토리지

Supabase Storage는 파일을 저장하고 관리할 수 있는 기능을 제공한다. 파일 서버를 통해 다양한 파일 형식의 업로드와 관리를 지원하며, PostgreSQL과의 통합을 통해 데이터 접근 권한을 관리할 수 있다.

  • 버킷 생성: 파일을 저장할 수 있는 공간인 버킷을 생성하고 관리한다.

  • 파일 업로드: RESTful API를 통해 파일을 업로드하고, URL을 통해 접근할 수 있다.

실시간 데이터

Supabase는 실시간 데이터 동기화 기능을 제공하여 사용자가 데이터 변경을 실시간으로 감시하고 업데이트할 수 있다.

  • 실시간 구독: 데이터베이스 변경 사항에 대해 실시간 구독을 설정할 수 있다.

  • WebSockets 지원: WebSockets을 이용해 실시간 데이터 스트림을 관리한다.

엣지 함수

서버리스 함수 호출 기능을 제공하며, 이를 통해 백엔드 서버 없이도 특정 기능을 수행하는 작업을 처리할 수 있다. Supabase는 Deno를 사용하여 이러한 엣지 함수를 실행한다.

  • 함수 생성 및 배포: CLI를 이용해 엣지 함수를 쉽게 생성하고 배포할 수 있다.

  • 실시간 통신: 클라이언트와 서버 간의 실시간 통신을 지원한다.

사용법

프로젝트 생성

Supabase는 웹 대시보드를 통해 새로운 프로젝트를 쉽게 생성할 수 있다.

  1. 로그인 후 New Project 버튼을 클릭하여 새 프로젝트를 생성한다.

  2. 프로젝트 이름과 데이터베이스 비밀번호를 입력하고, 지역을 선택한 뒤 Create new project 버튼을 클릭한다.

API 설정

생성된 프로젝트에 대한 API 설정을 통해 프로젝트 URL과 API 키를 관리할 수 있다. 이 정보는 대시보드의 설정 메뉴에서 확인할 수 있다.

테이블 및 열 생성

  1. 테이블 생성: Database 탭에서 New Table 버튼을 클릭하여 새 테이블을 생성한다.

  2. 열 생성: 테이블 생성 시 필요한 열을 추가할 수 있으며, 기본적으로 id 열이 기본 키로 설정된다.

SQL Query 실행

대시보드의 SQL Editor 탭을 통해 SQL 쿼리를 작성하고 실행할 수 있다. 이를 통해 테이블 생성, 데이터 조회, 수정 등의 작업을 수행할 수 있다.

클라이언트 라이브러리 설치

다양한 라이브러리를 통해 Supabase와 상호작용할 수 있다. 예를 들어, JavaScript 클라이언트는 @supabase/supabase-js 라이브러리를 사용하며, npm을 통해 설치할 수 있다.

npm i @supabase/supabase-js

데이터 조회 및 삽입

const { createClient } = require('@supabase/supabase-js');

const supabase = createClient('https://your-project-url.supabase.co', 'your-anon-key');

// 데이터 조회
let { data: userInfo, error } = await supabase
  .from('user-info')
  .select('*');

// 데이터 삽입
const { data, error } = await supabase
  .from('user-info')
  .insert([{ some_column: 'someValue', other_column: 'otherValue' }]);

가격 정책

Supabase는 예측 가능한 다양한 가격 정책을 제공한다. 기본 무료 플랜부터 시작하여 프로젝트의 규모와 필요에 따라 유료 플랜으로 업그레이드할 수 있다.

참고 문서

Supabase는 간편한 설정과 다양한 기능을 통해 개발자들에게 큰 편의를 제공하며, 백엔드 없이도 강력한 애플리케이션을 개발할 수 있는 플랫폼이다.

공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기
조회수 : 152
heart
T
페이지 기반 대답
AI Chat