Drrip 패션 커머스 플랫폼

기술 스택
프로젝트 개요
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 등)의 아키텍처와 비즈니스 플로우를 철저히 분석했습니다. 각 플랫폼의 주문 처리 방식, 정산 구조를 연구하고, 검증된 패턴들을 프로젝트 특성에 맞게 최적화하여 구현했습니다.