ADR-P-003
LEGACY NOTICE 상태: Superseded Superseded By: ADR-DS-064 비고: 수량 점유/복구의 단일 원천은 ADR-DS-064를 따른다.
수량 차감은 Redeemed(사용 확정) 시점에만 수행한다
ADR ID: ADR-003
상태: Accepted
작성일: 2026-03-02
작성자: YSY
관련 ADR: ADR-002
1. 배경 (Context)
타임슬롯 플랫폼에서 수량 차감 시점은 구조적 의미를 가진다.
선택지는 두 가지였다:
Reserved(임시 확보) 시점에 수량 차감
Redeemed(사용 확정) 시점에 수량 차감
Reserved는 15분 유효의 임시 확보 상태다.
이 상태는 실제 방문을 보장하지 않는다.
Reserved 시점에 수량을 차감할 경우:
실제 방문하지 않아도 재고가 잠김
점유 후 방치 시 사용자 경험 악화
발행자 신뢰 저하
본 플랫폼은 예약 상품이 아니라 “즉시 사용 가능한 시간 기회” 구조다.
2. 결정 (Decision)
슬롯 수량은 Redeemed(사용 확정) 시점에만 차감한다.
Reserved 상태에서는 수량을 차감하지 않는다.
REDEEMED 전환과 수량 차감은 서버 트랜잭션 내에서 원자적으로 처리한다.
3. 대안 (Alternatives Considered)
대안 A: Reserved 시점 수량 차감
장점
초과 사용 확정 위험 감소
간단한 재고 모델
단점
15분 점유만으로 수량 잠김
노쇼 시 사용자 경험 저하
동시성 처리 복잡
채택하지 않은 이유
Reserved는 임시 상태이며, 확정 방문이 아니다.
임시 확보에 확정 재고 차감을 적용하는 것은 구조적으로 부정확하다.
대안 B: Reserved 시점 차감 후 만료 시 복구
장점
- 재고 일관성 명확
단점
만료 시 복구 로직 필요
동시성/경합 상황 복잡
일시적 “가짜 마감” 발생 가능
채택하지 않은 이유
구조 복잡도 증가 및 UX 왜곡 가능성이 높다.
4. 결과 (Consequences)
긍정적 결과
점유 후 방치로 인한 가짜 마감 방지
실제 방문자 중심 재고 관리
구조적 의미 일관성 확보
부정적 결과
극단적 동시 사용 확정 시 초과 위험 존재
서버 트랜잭션 로직 필수
5. 영향 범위 (Impact)
기술
REDEEMED 전환 시 트랜잭션 필수
remainingQty는 REDEEMED에서만 감소
동시성 처리 필요
UX
“확보”와 “확정”의 개념 분리 필요
Reserved는 임시임을 명확히 안내
운영
- 동시 사용 확정 정책 필요(remainingQty > 0 확인)
6. 재검토 조건 (Revisit Conditions)
동시 사용 확정으로 인한 초과 사례가 반복 발생
발행자 불만이 증가
실제 도착률이 구조적으로 낮아 수량 관리가 불안정할 경우
다음으로 중요한 결정은 기술 기반이다.
ADR-004
초기 백엔드는 Supabase(BaaS) 기반으로 시작한다
ADR ID: ADR-004
상태: Accepted
작성일: 2026-03-02
작성자: YSY
관련 ADR: ADR-001
1. 배경 (Context)
플랫폼은 1인 개발 기반 MVP 단계에 있다.
초기 단계에서 자체 서버를 구축할 경우:
인프라 설계 비용 증가
인증/권한/DB/배포 복잡성 증가
개발 속도 저하
핵심 목표는 “구조 검증”이지 “인프라 완성도”가 아니다.
2. 결정 (Decision)
초기 백엔드는 Supabase 기반으로 구축한다.
구성:
Postgres
RLS
RPC(Function)
Auth
Storage(선택)
자체 서버 이전은 확장 단계에서 재검토한다.
3. 대안 (Alternatives Considered)
대안 A: .NET 기반 자체 서버 구축
장점
장기 확장성
구조 통제력 높음
단점
초기 개발 속도 저하
DevOps 부담
과설계 위험
채택하지 않은 이유
MVP 단계에서 리소스 대비 과도한 선택이다.
대안 B: Firebase
장점
빠른 구축
실시간 기능 용이
단점
관계형 모델에 불리
복잡한 조건 매칭에 제약
채택하지 않은 이유
타임슬롯 조건 매칭은 관계형 DB가 적합하다.
4. 결과 (Consequences)
긍정적 결과
개발 속도 향상
인증/권한/RLS 빠른 적용
1인 개발에 적합
부정적 결과
벤더 종속성
비용 증가 가능성
복잡한 비즈니스 로직은 RPC에 의존
5. 영향 범위 (Impact)
기술
DB 설계가 Postgres 중심
트랜잭션 로직 RPC 기반
운영
비용 모니터링 필요
이전 전략 사전 설계 필요
6. 재검토 조건 (Revisit Conditions)
DAU 급증으로 비용 급상승
고급 분석/서비스 분리 필요
서울 전체 밀도 확보 후 전국 확장 단계 진입