런칭 준비 중

Delivery Partner
Settlement Platform

배달 파트너 정산 관리 플랫폼 DPSP는 쿠팡이츠·배민 배달 데이터를 수집하여 라이더 매칭, 정산 계산, 인센티브 적용, 이체 파일 생성까지 전 과정을 자동화합니다. 위탁 정산(full_service)자체 정산(calculation_only) 두 가지 서비스 모델을 지원하며, 코어 기능 구현이 완료되어 안정화 및 런칭 준비 단계에 있습니다.

프로젝트 현황

코드베이스
74,669
총 Lines of Code
289개 파일 (백엔드 88 / 프론트엔드 80+49 / 어드민 52+20)
백엔드
38
컨트롤러 (5 barrel + 33 sub)
26 라우트 · 25 서비스 · 9 미들웨어
프론트엔드
44+
페이지 (본사 28+ / 어드민 16+)
20+ 공통 컴포넌트 · 7 커스텀 훅 · 16 API 서비스
DB 스키마
v4.4
코어 스키마 + 6개 확장 스키마
5 파티션 테이블 · pgcrypto · btree_gist
matching v2.2 multi_company v1.1 incentive v3.1
버그 현황
9 / 14
해결 완료 (64%)
미해결 5건: UI/UX 4건, 권한 1건
남은 작업
24
remaining_work.md 기준
우선순위별 분류 완료
P0: 2건 P1: 6건 P2: 11건 P3: 5건

시스템 아키텍처

FRONTEND

React 19 + Vite

본사 프론트엔드(:5173)와 어드민 프론트엔드(:5174) 이중 앱 구조. Bridge 패턴으로 컴포넌트 공유. 20+ 공통 컴포넌트, AuthContext 기반 전역 상태 관리.

React 19ViteReact Router 7Axiosexceljs
BACKEND

Node.js + Express 5

ESM 기반. 3-Actor 인증 모델(Admin/Company/Rider). 9개 미들웨어 체인. Barrel/Facade 패턴. 공유 업로드 파이프라인(web+macro). 4개 정산 Calculator.

Express 5JWTTOTP 2FAbcryptmulterxlsx
DATABASE

PostgreSQL

스키마 v4.4 + 6개 확장 스키마. 월별 파티셔닝(5개 테이블). AES-256-GCM 암호화(SSN/계좌). generate_prefixed_id() 기반 ID 생성. pg 드라이버 직접 사용(ORM 미사용).

PostgreSQLpgcryptoAES-256-GCMPartitioning

정산 데이터 흐름

📄
엑셀 업로드
쿠팡/배민 원본 파일 (web 또는 macro)
파서
플랫폼별 파싱 (4종: 쿠팡·배민 × 일·주)
🔗
라이더 매칭
4-tier 매칭 (LICENSE → NAME_PHONE → INFERRED → NAME)
계산 엔진
보험·세금·차감·인센티브 통합 계산
📋
배치 관리
8단계 상태 머신 (draft → completed)
💰
이체 생성
CSV 파일 + 명세서 이미지
⚠ 구분선 기준: 좌측은 플랫폼별 개별 처리 → 계산 엔진부터 통합 형식 (원천세·보험 공통 적용)

로드맵

COMPLETED Phase 1 — 코어 인프라 구축

DB 스키마 설계, 인증 체계, 보안 인프라, 기본 프레임워크 구축. 프로젝트의 기술적 기반을 확립한 단계.

6 / 6 완료
PostgreSQL 스키마 v4.4 (core + 6 extension schemas)
3-Actor 인증 모델 (Admin/Company/Rider) + JWT + TOTP 2FA
Express 5 백엔드 + React 19 프론트엔드 + Admin 프론트엔드
9개 미들웨어 스택 (auth, ownership, TOTP, accountLock 등)
PII 암호화 — AES-256-GCM (주민번호, 계좌번호)
IDOR 보호 — ownershipMiddleware 9개 검증 함수
COMPLETED Phase 2 — 정산 파이프라인 완성

엑셀 업로드부터 이체 파일 생성까지 전체 정산 흐름 구현. 쿠팡/배민 4종 파서, 4-tier 매칭, 배치 상태 머신 완성.

8 / 8 완료
엑셀 업로드 파이프라인 (web + macro 공용, uploadProcessingService)
플랫폼별 파서 (Coupang/Baemin × Daily/Weekly)
4-tier 라이더 매칭 + Dead letter 처리 (SAVEPOINT 기반)
정산 계산 엔진 — 4개 Calculator (세금·보험·차감 통합)
배치 상태 머신 — 8단계 (draft → completed + revoked)
인센티브 엔진 — CINR 기반 (company_incentive_rules/results)
이체 CSV 파일 생성 + 라이더 명세서 이미지 자동생성
위탁/비위탁 전이 권한 분기 (service_type × batch_type)
COMPLETED Phase 3 — 프론트엔드 & 비즈니스 기능

본사/관리자/라이더 UI 완성, 셀프서비스 시스템, 다중 회사 지원, 매크로 에이전트 구축.

8 / 8 완료
프론트엔드 통합 5단계 완료 (20+ 공통 컴포넌트, 레이아웃 표준화)
본사 프론트엔드 28+ 페이지 (정산·라이더·팀·대시보드·설정)
Admin 프론트엔드 16+ 페이지 (Bridge 패턴 컴포넌트 공유)
라이더 셀프서비스 (6종 요청, 4종 자동처리 핸들러)
다중 회사 M:N 소속 (rider_company_affiliations, dpsp_company_contracts)
일정산 전환 요청 시스템 (영구/1회성, resolveIsDailySettlement)
매크로 에이전트 시스템 (API 키 인증 + 실행 로그)
프로모션 관리 모듈 (개인/팀, 권역별/총합 인센티브)
오늘
IN PROGRESS Phase 4 — 안정화 & 런칭 준비

보안 취약점 수정, 데이터 무결성 강화, 핵심 비즈니스 로직 완성. 정식 서비스 운영에 필요한 필수 안정화 작업.

0 / 16 완료 · Sprint 1~2 (예상 3~5주)
P0 긴급 — 데이터 무결성
RW-001: settlement_details 참조 무결성 (fn_archive 호출 로직 구현)
RW-002: CINR 인센티브 함수 구현 (fn_apply_company_incentives)
P1 높음 — 비즈니스 로직 & 보안
RW-003: 하드코딩 요율 → DB 연결 (13건, 4개 Calculator)
RW-004: 매크로 라우트 rate limiting 적용
RW-005: err.message 직접 노출 수정 (9건 컨트롤러)
RW-006: platform_promotion_results 집계 연동
RW-007: auth 미들웨어 통합 (authMiddleware + adminAuth 이원화 해소)
RW-008: 501 스텁 엔드포인트 구현 (dashboard, companies 등 4건)
보안 긴급 — 취약점 수정
VUL-04: JWT 시크릿 하드코딩 폴백 제거 (부팅 시 검증 추가)
VUL-10: Rate limiting 전면 적용 (로그인, SMS, 업로드 등)
VUL-14: Helmet.js 보안 헤더 적용 (CSP, X-Frame 등)
버그 수정 — 미해결 5건
BUG-003: '위탁중' 상태 문구 미표시 (Medium)
BUG-006: 위탁 계정 업로드 차단 누락 (High)
BUG-010, 011, 012, 014: UI/UX 버그 (사이드바, 반응형, 페이지네이션, 버튼)
UPCOMING Phase 5 — 코드 품질 & 기술 부채 해소

6개 감사 보고서 결과 반영, 성능 최적화, 리팩토링. 서비스 안정성과 유지보수성을 높이는 작업.

0 / 10 완료 · Sprint 3 (예상 1~2주)
RW-009~011: TODO 주석 정리 (refactor 6건, security 3건, bug 1건)
RW-012: IRUL 테이블 완전 제거 (2026-02 deprecated)
RW-013: pg_partman 자동 파티션 관리 적용
RW-014: CSS !important 정리 (40건, 6개 파일)
RW-015~017: 불필요 컬럼 제거, 기능 TODO, 백업 파일 정리
프론트엔드 품질 감사 대응 (Critical/High 37건 우선)
에러 핸들링 감사 대응 (Critical/High 19건 우선)
성능 감사 대응 (N+1 쿼리, 파티션 프루닝, 번들 분할)
API 응답 형식 표준화 (29건 불일치 해소)
데이터 무결성 감사 대응 (라운딩 통일, 음수 정산금 검증)
FUTURE Phase 6 — 포스트 런칭 확장

런칭 이후 점진적으로 추가할 기능과 개선 사항. 비즈니스 확장과 사용자 경험 고도화.

Generic Inquiry 시스템 구현 (스키마 존재, 백엔드/프론트엔드 0%)
SuperAdmin 대시보드 실데이터 연동
라이더 전용 모바일 웹 확장
추가 플랫폼 파서 (요기요, 땡겨요 등)
프론트엔드 RoleGuard 패턴 적용 (라우트 레벨 권한 검증)
i18n 시스템 도입 (한국어 하드코딩 127+ 파일 해소)
소득세 신고 지원 데이터 연동

🚀 정식 서비스 런칭

Phase 4 완료 후 최소 운영 요건 충족 시 런칭 가능

목표: 가능한 빠른 시일 내 (Phase 4 기준 예상 3~5주)

감사 현황

🔒 보안 취약점
25건
security_vulnerability_audit.md
Critical 2 High 8 Medium 13 Low 2
✓ IDOR 취약점 전체 해결 완료
🖥 프론트엔드 품질
82건
frontend_quality_audit.md
Critical 9 High 28 Medium 36 Low 9
⚡ 에러 핸들링
41건
error_handling_audit.md
Critical 7 High 12 Medium 19 Low 3
✓ handleError/sendError 유틸 80% 적용
🗄 데이터 무결성
6건
data_integrity_audit.md
Critical 2 High 3 Medium 1
✓ 배치 트랜잭션 안전 · Dead letter SAVEPOINT 보호
📡 API 계약
29건
api_contract_audit.md
Critical 1 High 6 Medium 18 Low 4
응답 형식 4패턴 혼용 · 표준화 필요
⏱ 성능
65건
performance_audit.md
Critical 9 High 21 Medium 30 Low 5
N+1 쿼리 5건 · 번들 분할 미적용 · Excel 메모리 최적화 필요