Drrip 패션 커머스 플랫폼

Featured
Drrip 패션 커머스 플랫폼

기술 스택

Django DRF AWS PostgreSQL Celery

프로젝트 개요

Drrip은 현재 운영 중인 패션 멀티벤더 커머스 플랫폼으로, 복잡한 비즈니스 로직과 대규모 트래픽을 처리하는 백엔드 시스템을 혼자서 설계하고 개발했습니다. 고객-입점사-관리자 간의 복잡한 상호작용의 유연한 처리를 고민하고 체계적으로 구성했습니다.

🎯 핵심 성과 요약

750+ API 엔드포인트 설계 및 구현
3계층 주문 시스템으로 멀티벤더 복잡성 해결
33개 비동기 태스크로 운영 자동화
AWS 클라우드 인프라 완전 자동화 구축


핵심 기술 성과

🏗️ 확장 가능한 시스템 아키텍처 설계

문제 상황: 일반적인 단일 API 구조로는 멀티벤더 비즈니스의 복잡성 해결 한계

해결 방법: 호스트 기반 4개 API 도메인 분리 설계

1
2
3
4
├── service-api    # 고객용 (250+개 엔드포인트)
├── seller-api     # 입점사용 (200+개 엔드포인트)  
├── admin-api      # 관리자용 (300+개 엔드포인트)
└── external-api   # 외부서비스 연동용

성과: 각 사용자별 최적화된 성능, 독립적 스케일링, 명확한 권한 분리 달성


💰 3계층 멀티벤더 주문 시스템

문제 상황: 하나의 주문에 여러 입점사 상품 포함 시 정산 분배와 독립적 배송 처리의 복잡성

혁신적 해결: 3계층 주문 구조 설계

1
2
3
PurchaseOrder (주문서)          # 고객 결제 단위
├── SellerOrder (입점사별 주문)  # 정산 기준 단위  
└── ProductOrder (상품별 주문)   # 배송/클레임 처리 단위

핵심 로직:

  • 할인액 분배: 상품별 비율 기반 정확한 분배
  • 배송 관리: 입점사별 독립적 배송 상태 관리
  • 정산 처리: 입점사별 설정수수료 기반 정확한 정산 데이터 생성

비즈니스 임팩트: 복잡한 멀티벤더 거래의 투명하고 정확한 처리 실현


⚡ 성능 최적화 및 동시성 제어

🚀 쿼리 최적화

  • N+1 문제 해결: select_related, prefetch_related 적극 활용
  • 조건부 인덱스: 특정 케이스 성능 대폭 향상
  • 서브쿼리 최적화: 복잡한 집계 쿼리 개선

🔒 동시성 제어

  • Database-level 낙관적 락: 동시 주문 시 재고 정확성 보장
  • 재고 플로우: 임시 예약 → 결제 완료 → 확정/해제 플로우 구현

🔐 보안 및 권한 관리 시스템

문제 상황: 입점사의 민감한 사업자 문서(사업자등록증, 통장사본 등)에 대한 접근 권한을 세밀하게 제어해야 하는 보안 요구사항

기술적 해결:

커스텀 Role 기반 권한 시스템

  • 역할 계층 설계: 운영팀 내 직급별 접근 권한을 세분화한 Role 모델 구축
  • 권한 매트릭스: 문서 유형별(사업자등록증, 통장사본, 신분증 등) 접근 가능한 역할 정의
  • Django Permission 활용: 기본 권한 시스템을 확장하여 문서별 세밀한 접근 제어 구현

S3 Pre-signed URL 기반 안전한 다운로드

  • 단기 접근 제어: 5분 만료 시간으로 URL 노출 위험 최소화
  • 권한 기반 생성: 역할별 문서 접근 권한 검증 후 URL 생성

🔄 대규모 비동기 처리 시스템

AWS SQS 기반 Celery 아키텍처

  • 관리형 메시지 브로커: 높은 가용성과 확장성 확보
  • AWS 생태계 통합: 일관된 인프라 관리

Celery 기반 33개 태스크 운영

분류작업 수주요 기능
즉시 실행19개사용자 경험, 데이터 처리, 비즈니스 로직
주기적 실행14개실시간 처리, 일배치, 마케팅 자동화

즉시 실행 태스크:

  • 사용자 경험: 재입고 알림, 쿠폰 발급 알림, 주문 상태 알림
  • 데이터 처리: 상품 조회 로깅, 인기도 계산, 통계 업데이트
  • 비즈니스 로직: 배송 지연 체크, 자동 구매확정

주기적 실행 태스크:

  • 실시간 처리: 예약 푸시 발송(매분), 만료 결제 취소(매분)
  • 일배치 작업: 적립금 만료, 배송 지연 체크, 통계 집계
  • 마케팅 자동화: 생일 쿠폰 발급, 만료 예정 알림

인프라 효과: 사용자 경험 개선과 운영 자동화를 동시에 달성


DevOps 및 인프라

🚀 GitHub Actions 기반 CI/CD

배포 전략: 변경 파일 감지 기반 선택적 배포

1
2
3
4
# 변경 파일 감지 기반 선택적 배포
- Celery 태스크 변경 → Celery 서비스만 배포
- 스케줄 변경 → CeleryBeat 서비스만 배포
- 모델 변경 → 전체 서비스 배포

☁️ AWS 클라우드 아키텍처

Infrastructure as Code

  • CloudFormation: 전체 인프라 템플릿 관리
  • ECS Fargate: 컨테이너 오케스트레이션
  • RDS PostgreSQL: Read Replica 구성 (운영환경)
  • S3 + ECR: 정적 파일 스토리지 + 프라이빗 레지스트리

무중단 배포 환경

  • Rolling Update: ECS 기반 Zero-Downtime 배포
  • Health Check: 트래픽 라우팅 기반 안전한 배포
  • 환경 분리: 개발/운영 환경 완전 분리

프로젝트 규모 및 복잡성

📊 정량적 지표

구분규모
데이터 모델85개 Django 모델 (9개 도메인)
API 설계750+ RESTful 엔드포인트
비동기 작업33개 Celery 태스크
개발 기간6개월 (설계 2개월 + 개발 4개월)

🎯 도메인별 모델 분포

1
2
3
4
5
├── Users (17개)      # 사용자, 권한, 프로필 관리
├── Products (18개)   # 상품, 카테고리, 재고, 리뷰  
├── Orders (8개)      # 3계층 주문 시스템
├── Payments (10개)   # 결제, 정산, 쿠폰, 적립금
└── 기타 (32개)       # 배송, 알림, 통계, 로그 등

기술적 도전과 성장

🧠 비즈니스 로직의 기술적 구현

개발자 관점에서 비즈니스 요구사항을 깊이 분석하고, 기획 단계부터 적극적으로 참여하여 기술적 제약사항과 확장 가능성을 고려한 솔루션을 제시했습니다.

🔍 체계적 시장 연구 기반 기술 구현

복잡한 커머스 비즈니스를 구현하기 위해 기존 거대 이커머스 플랫폼들(무신사, 29cm 등)의 아키텍처와 비즈니스 플로우를 철저히 분석했습니다. 각 플랫폼의 주문 처리 방식, 정산 구조를 연구하고, 검증된 패턴들을 프로젝트 특성에 맞게 최적화하여 구현했습니다.


© 2025 Jayson Hwang • Built with Jekyll & GitHub Pages