개발 slecs

포인트 충전 한도와 파트너 수수료 계층 구조 개선

목차

feat: 선물 상세 및 파트너 멤버십 관리 JSP 추가, 충전 한도 관리 로직 개선

포인트/잔액 관련 로직은 정합성이 핵심임. 동시성 이슈와 소수점 처리를 특히 조심해야 함.

포인트 차감 순서

무상 포인트 먼저 차감 → 부족하면 유상에서 차감
(세금 처리, 환불 정책과 연관됨)

동시성 처리

-- 비관적 락으로 잔액 차감
SELECT balance FROM wallet WHERE member_sn = ? FOR UPDATE;
UPDATE wallet SET balance = balance - ? WHERE member_sn = ?;

분산 환경에서는 Redis 기반 분산 락 사용함.

충전 한도 관리

한도 유형 기준 초과 시
1회 최대 건당 금액 거절
일일 최대 24시간 누적 거절
월간 최대 월 누적 거절

사용자가 한도를 몰라서 계속 시도하는 UX를 방지하기 위해 남은 한도를 충전 화면에 표시함.

파트너 계층 구조

유통 단계가 깊어질수록 수수료 계산이 복잡해짐. 각 단계의 요율 차이가 해당 단계의 수익임.

최상위 운영사 (0%)
  └── 총판 A (0.5%) → 수익 0.5%
        └── 판매점 B (0.8%) → 수익 0.3%
              └── 최하위 C (1.0%) → 수익 0.2%

파트너 등록 시 상위 파트너의 요율을 초과할 수 없는 검증 로직이 필요함. 초과 설정을 허용하면 마진 역전이 발생함.

댓글 0

첫 댓글 달아줘.