Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[고도화] 결제시 동일한 카트에 대한 중복 결제 문제 #118

Closed
Hyeon-Uk opened this issue Aug 20, 2024 · 0 comments · Fixed by #150
Closed

[고도화] 결제시 동일한 카트에 대한 중복 결제 문제 #118

Hyeon-Uk opened this issue Aug 20, 2024 · 0 comments · Fixed by #150
Assignees
Labels
✨ Feature 기능 개발 💪 Improve 기능 고도화 & 개선

Comments

@Hyeon-Uk
Copy link
Contributor

동작 과정

image

배경

사용자는 카트에 담긴 상품들을 결재할 수 있다. 따라서 결재하기에 앞서 주문하고자 하는 상품을 카트에 담는 과정이 선행되어야 한다.

  • 결제할 리스트를 만들기 위한 시퀀스
    1. 카트repository에 저장된 cart를 받아온다.
    2. cart에 저장된 아이템들의 validation을 진행한다.
    3. 모든 validation이 통과하면 order를 만든다
    4. cart를 flush한다.
    5. validation이 통과하지 못하면 cart는 그대로 유지된다.

현재의 코드는 동시성 제어가 부재인 상황이기 때문에, 사용자의 중복 요청(일명 따닥)이 발생하는 경우 중복 결재가 발생할 우려가 있다.

  • 발생 예시
    1. 1번 쓰레드와 2번 쓰레드 모두 customerID가 일치함.(따닥이기때문에)
    2. 1번 쓰레드가 카트repository에 저장된 cart를 받아온다.
    3. 1번 쓰레드가 validation을 진행한다.
    4. 2번 쓰레드도 카트repository에 저장된 cart를 받아온다.
    5. 2번 쓰레드가 validation을 진행한 뒤, 1번과 2번 쓰레드 모두 결제를 진행하여 order를 생성함 ⇒ 중복결제
@Hyeon-Uk Hyeon-Uk added the ✨ Feature 기능 개발 label Aug 20, 2024
@Hyeon-Uk Hyeon-Uk assigned Hyeon-Uk and unassigned Hyeon-Uk Aug 20, 2024
@Hyeon-Uk Hyeon-Uk added the 💪 Improve 기능 고도화 & 개선 label Aug 20, 2024
@github-project-automation github-project-automation bot moved this to Backlog in 3K1K Project Aug 20, 2024
@Dr-KoKo Dr-KoKo linked a pull request Aug 26, 2024 that will close this issue
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ Feature 기능 개발 💪 Improve 기능 고도화 & 개선
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants