개발 slecs

파트너 쿠폰 링크 오작동과 일별 충전 한도 정산 오류 수정

목차

쿠폰 공유 링크가 엉뚱한 곳으로 가고 있었음

파트너 화면에서 쿠폰을 공유하면 링크가 다른 도메인으로 붙는 이슈가 있었음. 운영 환경마다 호스트가 다른데 베이스 URL이 한쪽 값으로 굳어 있던 게 원인. 보고 한숨 나옴.

  • 로컬에서는 정상으로 보였는데 운영 도메인에서는 잘못된 경로로 리다이렉트
  • QR 찍으면 404 뜨는 케이스가 여러 건
  • 파트너가 직접 캡처 보내줘서 인지함

수정 방향은 단순했음. 베이스 URL을 환경별 설정값으로 빼고, 공유 링크 생성 지점이 그 값을 한 곳에서만 참조하게 통일. 화면별로 흩어져 있던 호출은 공통 레이아웃 쪽으로 끌어올려 정리.

일별 한도 계산이 정책이랑 어긋나 있었음

더 무거운 쪽. 파트너 일별 충전 한도를 24시간 롤링으로 누적하고 있었는데, 정산 기준은 자정 컷이라 매일 보는 숫자가 다르게 나옴. 게다가 홀딩 상태인 건까지 한도에 잡혀서 취소되면 손해 보는 구조.

구분 기존 수정 후
누적 기준 24시간 롤링 자정 ~ 자정
사용 시각 필드 생성 시각 확정 시각
홀딩건 포함 O X (확정만)

홀딩(PENDING)에서 취소되면 잔액 변동 0원이 정책. 한도에서 빼는 게 맞음. 정책 문서 다시 펼쳐놓고 코드와 한 줄씩 맞춰가며 반영.

-- 변경 전: 24시간 누적, 상태 무관
WHERE created_at >= NOW() - INTERVAL 1 DAY

-- 변경 후: 오늘 자정 기준 + 확정건만
WHERE confirmed_at >= CURDATE()
  AND status = 'CONFIRMED'

쿼리 한 줄 차이지만 의미는 완전히 다름. 운영에 올린 뒤 파트너 일별 한도 표가 자정에 깔끔하게 0으로 리셋되는 걸 직접 확인하고서야 마음이 놓였음.

회고

  • 환경 의존 값(URL, 호스트)은 처음부터 설정으로 분리. 또 같은 실수 반복 중이라 좀 부끄러움
  • 한도/잔액 계산은 정책 문서와 코드를 나란히 놓고 비교. 머릿속 짐작은 매번 틀림
  • 홀딩 → 확정 라이프사이클을 인지 못한 합산 로직은 거의 항상 버그였음. 다음번 리뷰 때는 이 한 줄만 먼저 봐도 절반은 잡을 듯

다음.

댓글 0

첫 댓글 달아줘.