최근 개발자 커뮤니티에서 Supabase가 큰 주목을 받고 있습니다. Supabase는 오픈 소스 백엔드 서비스로, 기존의 백엔드 개발 방식을 혁신적으로 대체할 수 있는 솔루션으로 떠오르고 있죠. Supabase가 이리 핫한 이유가 무엇일까요??
1. 간편한 백엔드 개발
Supabase의 가장 큰 장점은 백엔드 개발을 매우 간편하게 만들어준다는 것입니다. 일반적으로 백엔드 개발은 데이터베이스 설계, API 개발, 인증 및 권한 관리 등 복잡한 과정을 필요로 합니다. 하지만 Supabase를 사용하면 이러한 과정을 최소화할 수 있습니다.
Supabase는 PostgreSQL 데이터베이스를 기반으로 하며, 간단한 설정만으로도 RESTful API와 실시간 구독 기능을 제공합니다. 또한, 사용자 인증과 권한 관리 기능도 기본적으로 포함되어 있어, 별도의 개발 없이도 안전하고 효율적인 백엔드 시스템을 구축할 수 있습니다.
2. 풍부한 기능과 확장성
Supabase는 단순히 백엔드 개발을 간소화하는 것에 그치지 않습니다. 풍부한 기능과 확장성을 갖추고 있어, 다양한 프로젝트에 적용할 수 있습니다.
예를 들어, Supabase는 파일 스토리지 기능을 제공하여 사용자가 업로드한 이미지나 동영상 등을 쉽게 관리할 수 있습니다. 또한, Edge Functions를 통해 서버리스 함수를 실행할 수 있으며, 이를 통해 백엔드 로직을 유연하게 확장할 수 있습니다.
뿐만 아니라 Supabase는 다양한 클라이언트 라이브러리를 지원하므로, 프론트엔드 개발자들도 손쉽게 Supabase와 연동할 수 있습니다. JavaScript, TypeScript, Python, Dart 등 다양한 언어를 지원하고 있어, 개발자들은 자신에게 익숙한 언어로 Supabase를 활용할 수 있습니다.
3. 강력한 권한 관리 (RLS (row-level security))
백엔드를 만든다면 실제로 하는 일이 무엇일까요?? 대부분 Application Server에서는 사용자의 권한을 확인하고 그에 따른 데이터 삽입, 수정, 읽기, 삭제작업을 수행합니다. 즉 데이터를 다루는 작업, 사용자에 권한에 맞는 데이터 관리가 대부분입니다. Supabase는 이러한 과정을 데이터에 대한 권한을 설정하는 방식으로 해결하고 있습니다. RLS를 이용하여 데이터베이스에 대한 권한을 설정하여 Application Server없이 데이터를 가져 올 수 있게 해줍니다.
전통적인 백엔드 vs Supabase

사용자들이 글을 작성하고, 사진을 공유하며, 다른 사용자와 소통할 수 있는 소셜 미디어 애플리케이션을 개발한다고 가정해봅시다. 이 애플리케이션의 백엔드 개발을 위해 다음과 같은 작업들이 필요할 것입니다.
1. 데이터베이스 설계 및 구축
- 사용자 정보, 게시물, 댓글, 좋아요 등의 데이터를 저장할 데이터베이스 테이블 설계
- 데이터베이스 서버 (MySQL, PostgreSQL 등) 설치 및 구성
- 데이터베이스 연결 및 쿼리 테스트
2. API 개발
- 사용자 등록, 로그인, 프로필 조회/수정 등의 사용자 관련 API 개발
- 게시물 작성, 조회, 수정, 삭제 등의 게시물 관련 API 개발
- 댓글 작성, 조회, 수정, 삭제 등의 댓글 관련 API 개발
- 좋아요 추가/취소, 좋아요 수 조회 등의 좋아요 관련 API 개발
- API 문서 작성 및 관리
3. 사용자 인증 및 권한 관리
- 사용자 등록 및 로그인 기능 구현 (이메일/비밀번호, 소셜 로그인 등)
- 사용자 세션 관리 및 인증 토큰 발급
- 사용자 역할 (일반 사용자, 관리자 등) 및 권한 설정
- 인증 및 권한 관련 API 개발 (토큰 검증, 권한 확인 등)
4. 파일 업로드 및 관리
- 사용자가 업로드한 이미지 파일 처리 및 저장
- 파일 업로드, 다운로드, 삭제 등의 파일 관련 API 개발
- 파일 스토리지 (로컬 디스크, AWS S3 등) 연동 및 관리
5. 백엔드 서버 배포 및 운영
- 백엔드 서버 환경 (Node.js, Django 등) 구성 및 설정
- 데이터베이스 연결 및 API 서버 배포
- 서버 모니터링 및 로그 관리
- 보안 이슈 대응 및 서버 유지보수
이러한 작업들은 백엔드 개발자가 다루어야 할 주요 업무입니다. 각 작업은 전문적인 지식과 경험을 필요로 하며, 개발 과정에서 상당한 시간과 노력이 투입됩니다.
Supabase로 개발한다면?

앞서 살펴본 소셜 미디어 애플리케이션 시나리오를 Supabase로 어떻게 대체할 수 있는지 단계별로 알아보겠습니다.
1. 데이터베이스 설계 및 구축
- Supabase 대시보드에서 새로운 프로젝트 생성
- 사용자, 게시물, 댓글, 좋아요 등의 테이블 생성
- Supabase는 PostgreSQL 데이터베이스를 기반으로 하므로, SQL 문법을 사용하여 테이블 정의
- 테이블 간 관계 설정 (외래 키 등)
- 데이터베이스 스키마 및 권한 설정
Supabase를 사용하면 별도의 데이터베이스 서버 설치 및 구성 없이, 웹 대시보드에서 손쉽게 데이터베이스를 관리할 수 있습니다. 또한 다른 nocode 데이터베이스와 달리 SQL을 쓸 수 있다는 것은 커다란 장점입니다.
2. API 개발
- Supabase는 데이터베이스 테이블을 기반으로 자동으로 RESTful API를 생성
- 사용자 테이블 → 사용자 관련 API
- 게시물 테이블 → 게시물 관련 API
- 댓글 테이블 → 댓글 관련 API
- 좋아요 테이블 → 좋아요 관련 API
- API 문서는 자동으로 생성되며, Supabase 대시보드에서 확인 가능
- 필요한 경우 추가적인 API 로직은 SQL 쿼리나 Edge Functions를 통해 구현
Supabase의 자동 API 생성 기능으로 인해, 대부분의 CRUD 작업을 위한 API 개발이 불필요해집니다.
3. 사용자 인증 및 권한 관리
- Supabase Auth를 사용하여 사용자 인증 기능 구현
- 이메일/비밀번호 인증, 소셜 로그인 (Google, Facebook 등) 지원
- 사용자 세션 및 인증 토큰 자동 관리
- Supabase의 Row Level Security (RLS)를 통해 사용자 권한 관리
- 테이블 수준에서 사용자 역할 및 권한 설정
- 인증된 사용자만 데이터에 접근할 수 있도록 제한
- 자신의 게시물의 수정 삭제는 게시물 제작자 id와 같아야 한다.
- 댓글 삭제는 댓글 제작자와 게시물 제작자가 한다.
Supabase의 내장 인증 및 권한 관리 기능으로, 별도의 인증 서버 구축 없이도 안전한 애플리케이션을 개발할 수 있습니다.
4. 파일 업로드 및 관리
- Supabase Storage를 사용하여 파일 업로드 및 관리
- 사용자가 업로드한 이미지 파일을 Supabase Storage에 저장
- 파일 업로드, 다운로드, 삭제 등의 작업을 Supabase API를 통해 처리
- 파일 관련 메타데이터는 데이터베이스에 저장하여 관리
Supabase Storage를 사용하면, 별도의 파일 서버 구축 없이도 파일 관리 기능을 쉽게 구현할 수 있습니다.
5. 백엔드 서버 배포 및 운영
- Supabase는 클라우드 기반 서비스로, 별도의 서버 배포 및 운영이 필요 없음
- Supabase 대시보드에서 프로젝트 설정 및 모니터링 가능
- 데이터베이스 백업, 보안 업데이트 등은 Supabase에서 자동으로 처리
Supabase를 사용하면, 백엔드 인프라 관리에 대한 부담을 크게 줄일 수 있습니다.
결론

소셜 미디어 애플리케이션 시나리오를 통해 Supabase가 전통적인 백엔드 개발을 어떻게 대체할 수 있는지 확인해보았습니다. Supabase는 데이터베이스 관리, API 개발, 사용자 인증, 파일 스토리지 등 백엔드 개발의 주요 작업들을 간소화하고 자동화합니다. 이를 통해 개발자들은 복잡한 백엔드 인프라 구축에 대한 부담을 줄이고, 애플리케이션 로직 개발에 더욱 집중할 수 있습니다.
Supabase의 직관적인 인터페이스와 강력한 기능들은 백엔드 개발의 생산성을 크게 향상시킵니다. 또한 Supabase의 실시간 기능과 확장성은 모던한 웹 애플리케이션 개발에 최적화되어 있습니다.
전통적인 백엔드 개발 방식에서 벗어나, Supabase와 함께 더욱 효율적이고 생산적인 개발 경험을 시작해보세요. Supabase가 여러분의 아이디어를 더욱 빠르고 간편하게 실현할 수 있도록 도와줄 것입니다.