파트너 이용수수료 관리 화면 도입으로 운영 DB 직접 수정 제거
목차
플랫폼 이용수수료 관리 페이지 만든 썰
이커머스 결제 플랫폼에서 파트너별로 부과되는 이용수수료를 운영자가 직접 만지는 화면이 없었음. 매번 DB 콘솔 열어서 UPDATE 치고 있었는데, 오타 한 번에 정산이 어긋날 수 있는 구조라 위험했음.
왜 만들었나
- 파트너 등급이 다양해지면서 요율 종류가 충전·결제·판매대금으로 갈라짐
- 변경 이력이 안 남아서 "누가 언제 왜 바꿨는지" 추적 불가
- 운영팀이 개발자 호출하는 빈도가 점점 늘어남
세 개가 겹치면서 "더는 수동으로 못 버틴다" 결론났음.
설계 포인트
요율을 단일 컬럼이 아니라 유형별 매트릭스로 다뤄야 했음.
| 항목 | 단가 형태 | 적용 시점 |
|---|---|---|
| 충전수수료 | %+고정금액 | 충전 요청 시 |
| 결제수수료 | % | 결제 확정 시 |
| 판매대금 정산 | % | 홀딩 해제 시 |
가장 헷갈렸던 건 홀딩 중 취소된 건의 처리. PENDING으로 잡혀 있다가 CANCELLED로 가면 잔액 변동 0으로 끝나야 깔끔한데, 기존 흐름엔 즉시 차감 로직이 섞여 있어서 화면 만들면서 같이 다 걷어냈음.
빡셌던 것
- 요율 변경이 즉시 반영 vs 다음 정산부터 반영 두 케이스 모두 필요. 결국 적용 시점 컬럼을 따로 빼고 시점 기반 조회로 통일했음
- 변경 이력 테이블을 분리해서 화면은 "현재 적용 / 예약된 변경 / 과거 이력" 세 탭으로 갈랐음
- 권한도 쪼갬. 조회는 운영팀, 수정 작성은 재무팀, 실제 반영은 승인 단계 추가
조회 → 수정 작성 → 재무 승인 → 예약 적용
한 페이지에 이걸 다 녹이려다 보니 상태 관리가 복잡해져서 컴포넌트를 두 덩어리로 쪼갰음. 처음엔 한 화면에 욱여넣었다가 테스트 두 번 만에 포기.
끝나고 보니
운영DB 직접 수정이 사라진 게 가장 큰 수확. 커밋 직후 운영팀에서 "이제 우리가 직접 한다" 반응 나왔고, 개발자 호출 티켓이 한 주 만에 눈에 띄게 줄었음. 변경 이력이 쌓이기 시작하니까 분쟁 났을 때 "그날 누가 무슨 요율로 바꿨는지" 바로 까볼 수 있어서 재무 쪽도 좋아함.
다음에는 변경 예약 알림과 요율 시뮬레이터(바꾸기 전에 이번 달 정산 영향 미리보기)를 붙여볼 예정.
다음
댓글 0
첫 댓글 달아줘.