피드로 돌아가기
Why We Killed Hold Windows in Our Affiliate Marketplace
Dev.toDev.to
Backend

정산 로직 단순화로 DB 테이블 60% 및 코드 75% 제거

Why We Killed Hold Windows in Our Affiliate Marketplace

Anand Rathnas2026년 5월 2일3intermediate

Context

Affiliate Marketplace의 정산 신뢰성 확보를 위해 Hold Window, Clawback, Carry-forward 기능을 포함한 복잡한 정산 시스템을 구축함. 하지만 법적 규제 준수를 위한 Compliance 비용이 기능의 가치를 상회하는 구조적 한계에 직면함.

Technical Solution

  • 규제 리스크 제거를 위한 Hold Window 및 관련 스케줄러 전면 삭제
  • Stripe Webhook 기반의 Immediate Settlement 체계 도입을 통한 상태 전이 단순화
  • 브랜드가 환불 리스크를 부담하는 정책 변경으로 Clawback 로직 및 복잡한 정산 상태 제거
  • 정산 상태를 6단계에서 3단계(PENDING, APPROVED, PAID)로 축소하여 상태 머신 복잡도 완화
  • 불필요한 정산 데이터 필드 제거를 통한 DB 스키마 최적화 및 데이터 무결성 확보

Impact

  • 정산 관련 DB 테이블 수 감소: 5개 → 2개
  • 정산 로직 코드 라인 수 감소: 약 800라인 → 약 200라인
  • 정산 상태 값 단순화: 6종 → 3종

Key Takeaway

비즈니스 도메인의 법적 제약 사항은 기술적 최적화보다 우선하는 최상위 제약 조건임. 업계 표준(Industry Standard)을 무분별하게 모방하기보다 조직의 규모와 리소스에 맞는 KISS(Keep It Simple, Stupid) 원칙 기반의 전략적 단순화가 엔지니어링 ROI를 극대화함.


- 신규 기능 설계 전 법무/규제 검토를 통한 기술적 제약 사항 우선 식별 - 업계 리더의 기능을 벤치마킹할 때 해당 기업의 인프라 규모와 운영 리소스 차이 분석 - 코드 삭제를 통한 복잡도 제거를 시스템 안정성 향상을 위한 핵심 엔지니어링 활동으로 정의 - 상태 머신 설계 시 불필요한 중간 상태(Intermediate State)를 최소화하여 엣지 케이스 감소 유도

원문 읽기