본문 바로가기
회고/영상, 칼럼, 스터디 회고

실용주의 프로그래머 실천사항

코동이 2022. 6. 2.

*실천사항

 

Topic38 우연에 맡기는 프로그래밍

p228 의도적으로 프로그래밍하기

 

 

지금 내가 무엇을 하는가?

계획을 세우고 그것을 바탕으로 진행하라

가정을 기록으로 남겨라 

왜 동작하는지 모르면 실패하는지도 모른다.

 

*문제 정의

현재 어떤 상품이든 1개밖에 구매하지 못한다. 문제는, 고객이 가끔 여러 상품을 구매하기 위해서 결제 절차를 처음부터 끝까지 여러번 반복하는 경우가 있었다. 따라서 다중구매 시스템을 만들어보기로 했다.

 

결제는 중요한 부분인만큼 동작과정을 면밀히 살펴보는 것이 중요하다. 따라서 직접 그림을 그려보면서 해보기로 했다.

 

현재 시스템에서 메인 DB는 대내 시스템에 있으며, 홈페이지 DB들은 대내 시스템을 바라보고 있다.

결제 시, 모든 정보들이 실제 정산을 위해서 대내 시스템 DB에 저장되며 처리된다.

다중 구매 결제를 구현하기 위해서 다음과 같은 결제로직 분석을 했다.

 

 

나이스페이 결제 과정

 

 

결제로직을 분석한 덕분에 고객이 결제를 요청할 때 수량에 따라 요금이 바뀌며 수량정보가 저장되도록 개선했다.

(추후 장바구니를 구현해서 다양한 상품을 복수개로 구매하려고 하였다.)

 

* 새롭게 부딪힌 난관

 

하지만 문제는 부분취소였다.

결제의 모든 정산 처리는 대내 시스템에서 가능한데, 회계팀에서 부분취소가 불가능하다고 한다.

 

여러가지 경우를 생각하고 논의하였다.

 

먼저, 5개를 구매하면 개별적으로 5개의 주문이 생성되는 방식을 생각해본다.

부분 취소를 하면 전체 금액,취소 금액, 잔존 금액을 따로 관리해야 한다. 하지만 지금 이런 관리 기능이 없다.

이력을 관리하고 있지 않기 때문에 부분취소 금액 이력관리를 하려면 결제쪽에서 많은 수정이 필요하다

 

같은 상품에 한해서만 복수개 구매를 구현하며, 여러 개를 사도 주문을 1개로 생성한다.

대내 시스템은 무조건 주문 1개당 1개의 제품만 가지도록 설계되어 있어서 이 역시 수량을 관리하기 위한 기능을 추가해야 한다. 수량칼럼을 추가하게되면 자연스레 주문 관련하여 수정이 많이 필요하다.

 

따라서, 다중 상품 구매까지는 구현이 가능하지만, 부분취소 때문에 많은 제약에 부딪혔다.

무조건 일괄 취소만을 강제한다면 괜찮지 않을까 했지만 같은 문제로 불가능했다. 다른 방법은 없을까 고민중이다.

 

반응형