2023. 11. 20. 16:56ㆍProject 우아한남형제들/기획
최근 작업한 배달의 민족 '장바구니 추가' 기능에 대한 업데이트와 그 배경에 대해 공유하고자 합니다.
설계상의 오류: 불필요한 유효성 검사
초기 설계에서는 메뉴 ID의 유효성, 재고 상태 확인, 가게 ID의 유효성 등 여러 단계의 검증을 포함했습니다.
작성을 할 때부터 처리해야 하는 유효성 검사도 많은 데다가,
MSA 환경이라 분리가 되어 있어 네트워크를 타고 해야 하는 유효성 검사면,,
성능이 무자비하게 안 좋을 거라 생각했습니다.
그래서 이에 대해 팀원들과 주간 회의에서 얘기하다 받은 피드백은
프론트엔드가 어차피 해당 가게의 메뉴를 이미 가져오는 상황에서 요청을 보내는 거라
메뉴 ID의 유효성 검증은 중복되고 불필요한 과정이라는 겁니다.
또한, 재고 상태를 DB에서 관리하는 것이 실제로는 의미가 없다는 피드백도 받았는 데요.
왜냐하면 실제 배달의 민족 사장님 관점에서 생각해 본다면, 아니 단순 식당 알바를 생각해 보면
가끔 가다 실패한 음식들이 나오기 마련입니다.
이런 경우 사장님은 손님을 위한 음식을 다시 만들게 됩니다.
이때 과연 사장님은 이러한 재고를 일일이 사장님 전용 배민 어플에다가 기록을 할까요?
대답은 절대로 No입니다. 바쁜 와중에 일일이 재고 기록할 시간에, 바쁘게 음식 만들고
어쩔 수 없을 때 고객에게 알리는 게 더 효율적이니까요.
성능 개선: 불필요한 검증 제거
이에 따라, '장바구니 추가' 기능에서 메뉴 ID와 가게 ID의 유효성 검증, 재고 상태 확인 등을 제거하기로 결정했습니다.
이로 인해 서비스의 성능이 향상될 거고, 사용자도 훨씬 더 빠른 장바구니 담기를 경험할 수 있을 겁니다!
개발자로서의 깨달음
이 경험을 통해, 항상 주어진 문제를 다각도에서 바라보고, 실제 사용 환경을 고려해야 함을 깨달았습니다.
또한, 설계 과정에서 불필요한 단계를 제거하여 효율성을 높이는 것이 얼마나 중요한지도 배웠습니다.
원본 노션 링크
https://organic-hunter-0ab.notion.site/d3c65522ea634feaafa8ba7a6eebd4b5?pvs=4
'Project 우아한남형제들 > 기획' 카테고리의 다른 글
결제 취소 기능명세서 수정 : 서비스 분리의 중요성 (1) | 2023.11.20 |
---|