ADR-T-001

## 초기 백엔드는 Supabase(BaaS) 기반으로 시작한다

  • ADR ID: ADR-T-001

  • 상태: Accepted

  • 작성일: 2026-03-02

  • 작성자: YSY

  • 관련 ADR: ADR-P-001, ADR-P-002, ADR-P-003


1. 배경 (Context)

플랫폼은 1인 개발 기반으로 MVP를 빠르게 출시해야 한다.
현재 단계의 목표는 인프라 완성도가 아니라 구조 검증이다.

초기 단계에서 자체 서버(.NET, Node 등)를 구축할 경우:

  • 인증/권한/DB/배포 환경을 모두 설계해야 함

  • DevOps 부담 증가

  • 초기 개발 속도 저하

  • 과설계 가능성

본 플랫폼은 다음 특성을 가진다:

  • 관계형 데이터 구조 (슬롯, 예약, 사용 확정, 제재 등)

  • 트랜잭션이 중요한 도메인 (Redeemed 시 수량 차감)

  • RLS 기반 접근 제어 필요

  • 인증 시스템 필수

이 요구사항을 충족하면서 개발 속도를 확보해야 한다.


2. 결정 (Decision)

초기 백엔드는 Supabase 기반으로 구축한다.

구성 요소:

  • PostgreSQL (관계형 데이터 모델)

  • RLS(Row Level Security) 기반 권한 제어

  • RPC(Function) 기반 트랜잭션 처리

  • Supabase Auth

  • Edge Functions는 최소 사용

자체 서버로의 이전은 초기 단계에서 고려하지 않는다.


3. 대안 (Alternatives Considered)

대안 A: .NET 기반 자체 서버 구축

설명
ASP.NET Core + PostgreSQL + 자체 인증 구조

장점

  • 장기 확장성 우수

  • 아키텍처 통제력 높음

  • CQRS 등 구조 확장 용이

단점

  • 초기 개발 속도 저하

  • DevOps 관리 부담 증가

  • 과설계 위험

채택하지 않은 이유
현재 단계는 구조 검증이 목표이며,
인프라 완성도가 우선순위가 아니다.


대안 B: Firebase

설명
Firebase Auth + Firestore 기반

장점

  • 빠른 초기 개발

  • 모바일 친화적

단점

  • 관계형 모델에 부적합

  • 복잡한 조건 매칭 쿼리에 제약

  • 트랜잭션 처리 한계

채택하지 않은 이유
타임슬롯 조건 매칭과 수량 차감 트랜잭션에는
관계형 DB가 적합하다.


대안 C: Node.js 기반 경량 서버

설명
Express/Fastify + Postgres

장점

  • 유연성

  • 비교적 빠른 구축 가능

단점

  • 인증/RLS/권한 직접 설계 필요

  • 운영 부담 증가

채택하지 않은 이유
Supabase가 제공하는 기본 기능을 직접 구현할 이유가 없다.


4. 결과 (Consequences)

긍정적 결과

  • 개발 속도 향상

  • 인증 및 권한 구조 즉시 사용 가능

  • 관계형 데이터에 적합

  • RPC로 트랜잭션 로직 처리 가능

  • 1인 개발에 적합

부정적 결과

  • 벤더 종속성 존재

  • 비용 증가 가능성

  • 복잡한 비즈니스 로직은 RPC에 의존

  • 서버 레이어 커스터마이징 제약


5. 영향 범위 (Impact)

기술

  • 데이터 모델은 PostgreSQL 중심 설계

  • 트랜잭션 로직은 RPC로 구현

  • RLS 정책이 핵심 보안 장치

운영

  • 비용 모니터링 필수

  • DAU 증가 시 비용 시뮬레이션 필요

확장

  • 마이크로서비스/분리 아키텍처는 초기 단계에서 미도입

  • DB 이전 전략은 별도 ADR에서 정의


6. 재검토 조건 (Revisit Conditions)

다음 조건 중 하나 이상 충족 시 재검토:

  • DAU 증가로 비용이 급격히 상승

  • 고급 분석/서비스 분리 필요성 증가

  • 서울 전체 밀도 확보 후 전국 확장 단계 진입

  • Supabase 구조적 제약이 도메인 확장을 제한하는 경우