Project 우아한남형제들/기획(2)
-
장바구니 기능명세서 수정 : 상황을 통한 통한 효율성 증진
최근 작업한 배달의 민족 '장바구니 추가' 기능에 대한 업데이트와 그 배경에 대해 공유하고자 합니다. 설계상의 오류: 불필요한 유효성 검사 초기 설계에서는 메뉴 ID의 유효성, 재고 상태 확인, 가게 ID의 유효성 등 여러 단계의 검증을 포함했습니다. 작성을 할 때부터 처리해야 하는 유효성 검사도 많은 데다가, MSA 환경이라 분리가 되어 있어 네트워크를 타고 해야 하는 유효성 검사면,, 성능이 무자비하게 안 좋을 거라 생각했습니다. 그래서 이에 대해 팀원들과 주간 회의에서 얘기하다 받은 피드백은 프론트엔드가 어차피 해당 가게의 메뉴를 이미 가져오는 상황에서 요청을 보내는 거라 메뉴 ID의 유효성 검증은 중복되고 불필요한 과정이라는 겁니다. 또한, 재고 상태를 DB에서 관리하는 것이 실제로는 의미가 없다..
2023.11.20 -
결제 취소 기능명세서 수정 : 서비스 분리의 중요성
오늘은 '결제 취소 기능'의 개발 과정에 대한 글을 쓰러 왔습니다. 초기 설계의 오류 : 결제 서비스의 역할 혼동 초기에 결제 취소 기능을 설계할 때, 사용자가 직접 결제를 취소할 수 있는 시나리오를 고려했습니다. 기존의 모놀리식 방식에서는 이러한 방식이 틀리지 않다고 할 수 있습니다. 왜냐하면 모든 서비스에 대한 코드가 다 하나의 시스템 안에 같이 있기 때문이죠. 그러나 이는 결제 서비스의 본질적인 역할에 대한 오해에서 비롯된 것이었습니다. 결제 서비스는 말 그대로 '결제'라는 행위를 관리하는 것이지, 사용자가 직접 취소를 요청하는 것은 아닙니다. 수정된 프로세스 팀원들과의 논의를 통해 실제 배달의 민족에서 결제 취소를 하기 위해서는 고객센터가 이를 수작업으로 고객한테서 취소 요청을 받고 전달하거나, ..
2023.11.20