프로젝트 배경
1) 문제점 - 구독 플랜 변경 시 잔여 기간 비례 환불 금액 계산을 Python Decimal 타입으로 처리하여 부동소수점 오차 없이 구현 - 정기결제 실패 시 자동 재시도(D+1, D+3, D+7) 스케줄 로직을 APScheduler 동적 작업 추가 방식으로 구현 - 큐레이션 스코어링에 사용하는 리뷰 집계를 실시간 쿼리 대신 PostgreSQL 뷰로 분리하여 응답 속도 저하 없이 처리 - 포인트 만
프로젝트 성과
FastAPI + Pydantic 기반 구독 상태 머신(활성/일시정지/해지)
FastAPI + Pydantic 기반 구독 상태 머신(활성/일시정지/해지)으로 플랜 전환 로직을 서버사이드에서 안전하게 처리하는 구조 설계
포트원 빌링키 방식 정기결제 + APScheduler 자동 실행
포트원 빌링키 방식 정기결제 + APScheduler 자동 실행으로 매월 구독료 자동 청구 파이프라인 구축
스킨 타입 + 선호 브랜드 + 리뷰 점수 가중합산 Python 스코어링 함수
스킨 타입 + 선호 브랜드 + 리뷰 점수 가중합산 Python 스코어링 함수로 개인화 큐레이션 로직 구현
이벤트 소싱 방식 포인트 원장 설계
이벤트 소싱 방식 포인트 원장 설계로 모든 적립/차감 이력을 추적 가능하게 유지하는 포인트 시스템 구축
UUID 기반 친구 초대 토큰 + 트랜잭션 포인트 적립
UUID 기반 친구 초대 토큰 + 트랜잭션 포인트 적립으로 초대 프로그램 이중 적립 방지 구조 구현
핵심 기능
진행 단계
구독 커머스 도메인 설계
2026.03.
구독 플랜/결제/포인트/큐레이션 DB 스키마 설계 (테이블 14개), SQLAlchemy 모델 및 Alembic 마이그레이션 작성
프로젝트 상세
1) 포트폴리오 소개 뷰티 제품을 정기 구독 + 랜덤 큐레이션 방식으로 제공하는 B2C 구독 커머스 플랫폼을 React + Python/FastAPI + PostgreSQL 스택으로 구현. 구독 플랜 관리, PG 정기결제 연동, 스킨 타입 기반 큐레이션 로직, 포인트 리워드 시스템을 설계 및 구축. 2) 작업 범위 - 뷰티 박스 구독 메인: 구독 플랜(베이직/프리미엄/럭셔리)을 선택하고 이번 달 박스







