Supabase 사용후기

Supabase에 대한 간단한 정보와 사용후기를 기록합니다.

Supabase 소개

Supabase는 오픈 소스 Firebase 대안으로, PostgreSQL을 기반으로 한 백엔드 서비스입니다. 데이터베이스, 인증, 스토리지, 실시간 기능 등을 제공하여 개발자들이 빠르게 애플리케이션을 개발할 수 있도록 돕습니다.

Supabase를 알게 된 경로

저는 유튜브의 ‘노마드코더’ 채널을 구독하며 최신 개발 소식을 접하고 있었습니다. Supabase에 대해 알게 된 것은 이러한 채널에서의 소개 덕분이었습니다.

프론트엔드를 공부하면서 작은 사이드 프로젝트나 포트폴리오를 만드는데 백엔드 데이터베이스가 필요했고, 주변에 백엔드 전문가가 없어 대체할 무언가를 찾아야 했습니다.

이전에 멋사 6기 프론트엔드 스쿨에서 React 학습을 하면서 PocketBase를 사용해본 경험이 있었는데, 이도 꽤 유용한 도구였습니다.

사용해보고 느낀 점

멋쟁이 사자처럼 플러스과정에서 리액트 프로젝트 과제를 진행하면서 Supabase를 사용하게 되었습니다.

과제에서는 댓글 기능을 구현해야 했고, 강사님께서 Supabase를 추천해 주셨습니다. 사용법을 간단히 알려주셨고, 실제로 사용해보니 API 문서가 상당히 친절하고 사용 방법도 어렵지 않았습니다.

테이블 생성 등 일부는 코드로 처리해야하는 복잡성도 있었지만 이것은 선택의 영역일 뿐이고 코드없이도 테이블생성에 문제가 없었으며, 전반적으로 사용자 경험이 좋았습니다.

특히 다음과 같은 코드로 데이터를 가져오는 것이 가능했습니다:

import { createClient } from "@supabase/supabase-js";

export const readComment = async () => {
  try {
    const { data, error } = await supabaseAdmin
      .from("video_comment")
      .select("*");

    if (error) {
      console.error(`데이터 통신에 실패하였습니다..😵‍💫 ${error.message}`);
    } else {
      return data;
    }
  } catch (error) {
    console.error(`데이터 통신에 실패하였습니다..😵‍💫 ${error}`);
    throw error;
  }
};

현재는 기본적인 기능만 사용해봤기 때문에, Supabase의 다양한 부가기능을 더 경험해봐야 전체적인 평가를 내릴 수 있을 것 같습니다.

Supabase의 장점

Supabase에 대해서 좀 더 알아보기 위해서 장점과 단점을 살펴보겠습니다.

먼저 장점으로는,

  • 오픈 소스: Supabase는 오픈 소스 프로젝트로, 커스터마이징과 자가 호스팅이 가능합니다. 코드가 공개되어 있어 투명성이 높습니다.

  • PostgreSQL 기반: 안정성과 성능이 뛰어난 PostgreSQL을 데이터베이스로 사용하여 강력한 쿼리 기능과 ACID 트랜잭션을 제공합니다.

  • 통합된 기능: 데이터베이스, 인증, 스토리지, 실시간 기능을 통합하여 별도의 서비스와 통합 없이 모든 기능을 하나의 플랫폼에서 관리할 수 있습니다.

  • 친절한 문서화: API 문서와 가이드는 친절하게 작성되어 있어 사용자가 쉽게 접근하고 이해할 수 있습니다.

  • 실시간 기능: 데이터베이스의 실시간 업데이트를 지원하여 채팅, 알림 등의 실시간 기능을 쉽게 구현할 수 있습니다.

  • 간편한 설정: Supabase CLI와 UI를 통해 빠르게 프로젝트를 설정하고 관리할 수 있습니다.

등이 있습니다.

Supabase의 단점

  • 새로운 서비스: Supabase는 비교적 새로운 서비스로, 일부 기능이 아직 성숙하지 않았거나 Firebase와 같은 대안에 비해 부족할 수 있습니다.

  • 성능 문제: 특정 사용 사례나 쿼리에서는 성능 이슈가 발생할 수 있으며, 이는 PostgreSQL 자체의 한계나 Supabase의 설정에 따라 다를 수 있습니다.

  • 제한된 무료 플랜: 무료 플랜에서 제공하는 리소스가 제한적이어서, 대규모 프로젝트나 고성능이 요구되는 경우 유료 플랜으로의 업그레이드가 필요할 수 있습니다.

  • 커뮤니티와 지원: Firebase와 같은 대안에 비해 커뮤니티가 작고, 지원 리소스나 해결책이 상대적으로 적을 수 있습니다.

비교적 새로 생겨 정보량이 타 DB에 비해서 적은편이고 사용하려면 Supabase에서 제공하는 Docs를 읽고 직접 해석하며 적용하는 방법이 가장 좋을 정도였습니다.

하지만 매우 직관적이고 강력한 기능들을 제공하고 있어 그다지 사용하기 어렵진 않았습니다.