SA작성

최길중·2026년 3월 16일
  • 구현할 기능 정리 :

    • 결제 시스템을 위한 최소 상품/주문 기능 구현
    • 인증 기능 추가하기
    • 기반 일반 결제 기능 구현
    • 포인트 기반 멤버십 등급 관리
    • 포인트 기반 결제 기능 구현
    • 포인트 기반 결제 환불 구현
    • project scope

    • 사용자가 상품을 주문하고 결제 및 환불을 진행할 수 있는 기본 결제 시스템을 구현하는 것을 목표로 한다.
    • 주요 범위는 회원, 상품, 주문, 결제, 환불, 포인트, 멤버십, 웹훅 처리이며, 각 기능이 하나의 흐름으로 정상 동작하도록 구현한다.
    • 정기결제, 부분환불, 쿠폰, 고도화된 관리자 기능은 이번 범위에서 제외한다.
  • 결제 실패 정책 (멱등성 문제)

    정책 1: 클라이언트 실패 화면만으로 결제 실패 확정하지 않음
    정책 2: 결제 직후 결과 불명확하면 주문 상태를 PAYMENT_PENDING 으로 둠
    정책 3: 웹훅 또는 PortOne 조회 결과가 paid이면 정상 결제로 확정
    정책 4: 일정 시간 내 조회 결과가 failed이거나 결제 내역이 없으면 실패 처리
    정책 5: 결제 완료 후 내부 주문 반영이 누락되면 재처리 가능하도록 웹훅 로그와 결제 로그를 남김

  • 같은 주문/결제를 여러 주체가 동시에 확정하려고 할 때(동시성 문제)

    결제 결과가 불명확한 상황에서는 동일 주문에 대해 웹훅, 재시도 요청, 재조회가 동시에 발생할 수 있으므로 동시성 문제가 발생할 수 있다.
    이를 방지하기 위해 주문/결제 상태는 PAYMENT_PENDING 상태에서만 최종 확정되도록 조건부 업데이트를 적용하고, payment_id 기준 멱등 처리로 중복 반영을 차단한다.

profile
취준생

0개의 댓글