24.08.28 21:33 작성
·
41
0
현재 주문 번호를 생성하는 방식은 결제 페이지로부터 들어오는 데이터들을 이용해서 그것을 String 형태로 변형해줌으로써 모든 요청들이 같은 형태의 String Key값을 가지게 되고 그것을 주문 번호로 사용하는 것으로 이해했습니다!
주문 번호의 경우 쿠팡이나 다른 이커머스사들을 확인해보면 숫자 혹은 거기에 문자정도로 생성되어 있고 결제 완료시 주문 번호를 확인해볼 수 있습니다.
이와 같은 방식으로 주문 번호를 생성하려면 위와 같은 방식이 아닌 별도의 로직을 통해서 주문 번호를 생성해야되며, 요청이 1번만 처리되기 위해서 Unique한 값으로 생성되어야 됩니다.
현재 제가 진행하고 있는 프로젝트에서는 결제 페이지로 사용자가 진입했을 때 주문 번호를 특정 로직을 통해 Unique한 값으로 생성해주고 DB를 확인하고 Redis에 기록하는 절차를 진행하여 멱등성을 보장하고 있습니다.
이와 같이 진행하다 보니 주문 번호를 생성하기 위해서 DB에 쿼리를 1회 이상 날리는 상황이 발생하게 되는데 이와 같이 진행하는 것은 안좋은 형태일까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
서정범님, 주문 번호 생성 방식에 대한 질문을 해주셨군요. 주문 번호를 생성하기 위해서 데이터베이스에 쿼리를 날리는 방식은 결제 시스템의 특성과 요구사항에 따라 달라질 수 있습니다. 주문 번호가 유일한 값을 가져야 하고, 특히나 고가용성과 멱등성을 보장해야 하는 결제 시스템의 경우, DB 조회를 통해 유일성을 확보하는 것은 일반적인 접근 방식입니다.
하지만, 데이터베이스에 대한 의존도가 높아질수록 시스템의 병목 현상이 발생할 수 있으며, 트래픽이 급증하는 상황에서는 성능 이슈를 초래할 수 있습니다. 이를 개선하기 위해서는 다음과 같은 방법을 고려할 수 있습니다:
프로젝트의 특성과 요구사항을 꼼꼼히 분석하여 가장 적합한 방안을 선택하는 것이 중요합니다. 이와 관련해서 추가적인 도움이 필요하다면, 기술 커뮤니티나 전문가의 도움을 받는 것도 좋은 방법입니다.