후원·포인트·즐겨찾기 페이지 개선
목차
feat: 후원 리스트/마이포인트/즐겨찾기 페이지 개선 및 API 파라미터 수정
포인트/잔액 관련 로직은 정합성이 핵심임. 동시성 이슈와 소수점 처리를 특히 조심해야 함.
포인트 차감 순서
무상 포인트 먼저 차감 → 부족하면 유상에서 차감
(세금 처리, 환불 정책과 연관됨)
동시성 처리
-- 비관적 락으로 잔액 차감
SELECT balance FROM wallet WHERE member_sn = ? FOR UPDATE;
UPDATE wallet SET balance = balance - ? WHERE member_sn = ?;
분산 환경에서는 Redis 기반 분산 락 사용함.
충전 한도 관리
| 한도 유형 | 기준 | 초과 시 |
|---|---|---|
| 1회 최대 | 건당 금액 | 거절 |
| 일일 최대 | 24시간 누적 | 거절 |
| 월간 최대 | 월 누적 | 거절 |
사용자가 한도를 몰라서 계속 시도하는 UX를 방지하기 위해 남은 한도를 충전 화면에 표시함.
개발 원칙 정리
이 작업을 진행하면서 재확인한 원칙들:
작은 커밋: 변경 단위를 작게 유지해서 코드 리뷰와 롤백이 쉽게.
테스트 먼저: 변경 전 현재 동작을 파악하고, 변경 후 동일하게 동작하는지 확인.
문서 동기화: 코드가 바뀌면 관련 주석과 문서도 같이 업데이트.
| 원칙 | 이유 |
|---|---|
| 단일 책임 | 하나의 함수/클래스는 하나의 역할만 |
| 명시적 코드 | 영리한 코드보다 읽기 쉬운 코드 |
| 실패 우선 처리 | happy path보다 에러 케이스 먼저 설계 |
끝
댓글 0
첫 댓글 달아줘.