인프런 커뮤니티 질문&답변
cancel관련질문
해결된 질문
작성
·
51
1
안녕하세요.
강의내용중 payment는 자기가 취소되어있는지 모르지만 대신 cancel은 payment를 사용한다고 말씀하시는데
이게 어떤의미인지 잘 이해가 되지 않습니다.
상태반영은 order쪽에 하는데 cancel이 payment를 사용한다?? 이게 어떤의미일까요??
답변 2
0
안녕하세요 질문 감사드립니다!
현재 코드를 보시면 Payment 는 현재 취소에 대한 상태를 갖고 있지 않습니다, 고로 말 그대로 payment 는 자기가 취소 되었는지 취소 안 되었는지에 대해서는 모르고 있는 구조입니다!
반대로 Cancel 은 paymentId 를 통해서 payment 를 알고 있습니다. 그리고 취소 비즈니스 로직 처리 시 payment 를 불러와서 처리를 진행합니다. 즉 사용하는 구조인거죠!
그럼 결제에 대한 최종적 상태를 어떻게 관리하는가? 물론 payment 의 존재여부 cancel 의 존재여부로 상태를 체크할 수 있지만 결제와 취소의 최종적 상태 이전에 핵심은 주문이라는 것을 나타내기 위한 구조라고 이해해주시면 될 것 같습니다.
주문은 자기가 결제 됬는지, 취소 됬는지 알고 있습니다. 그리고 결제와 취소 라는 개념의 행위 자체가 주문을 위한 행위라고 정의한 것 이기 때문에 주문이 중심이 되고 최종적 상태를 갖고 있는 형태라고 봐주시면 이해가 되실 것 같습니다!
답변과 코드를 한번 살펴보시고 느껴보시면 대략 어떤 느낌인지 아실 수 있을 것 같습니다!
모쪼록 답이 되었길 바랍니다! 감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다. Cola님.
강의 내용을 조금 해석해 보자면, 여기서는 결제(Payment)와 취소(Cancel)라는 두 개의 개념이 어떻게 상호작용하는지를 설명하고 있는 것 같습니다. 결제 시스템에서 결제가 취소되었는지를 인지하지 못한다 하더라도, 취소 처리가 결제 기록을 참조하여 이를 명시적으로 조작할 수 있다는 의미로 보여집니다.
결제가 취소된 상태를 인지하지 못한다는 것
- 결제 시스템의 독립성: 결제 시스템은 주로 동작 이력을 기록하고 결제가 성공적으로 이루어졌는지를 담당합니다. 이 시스템은 자체적으로 결제의 취소 여부를 알지 못하지만, 결제 내역은 저장되어 있습니다.
취소가 결제를 사용하는 상황
- 취소 시스템의 의존성: 취소(Cancel) 기능은 취소 시점에 결제 내역을 참조하여, 해당 결제가 이루어졌는지를 확인하고 이를 바탕으로 취소 처리를 합니다. 즉, 결제 내역의 정보는 취소 처리 단계에서 필요하게 됩니다.
상태 반영은 Order에서
- Order 상태 관리: 결제나 취소와 관련된 최종 상태 변경은 주로 주문(Order) 시스템에서 관리됩니다. 예를 들어, 주문이 완료된 상태에서 결제가 취소되면 이를 주문 시스템에 반영하여 주문 상태를 ‘취소됨’으로 변경해야 합니다.
관련하여 결제와 취소 트랜잭션의 흐름과 구조에 관해 더 깊이 있는 설명은 다음의 기존 답변을 참고하시면 좋을 것 같습니다:
- 🔗 Controller에서 비즈니스 로직 흐름이 나타나는 것에 대하여..: 결제 및 취소 트랜잭션 구조에 대한 설명이 포함되어 있습니다.
제가 제공해 드린 답변이 의미가 있었기를 바라며, 추가적으로 궁금한 점이 있으시면 언제든지 이어서 질문해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





감사합니다!