프로젝트 및 기능 소개
- 로컬 푸드 마켓 '미래식당' 사이트에 사용된 API 들을 참고하여 필요 기능들을 개발한 클론 프로젝트 (https://meesig.com)
- 사이트 선정이유 - 팀원 모두가 처음으로 진행한 프로젝트인 만큼 웹서비스에서 보편적으로 구현되는 기능들을 이해하고, 적용할 수 있는 것을 목표로 선정
- 유튜브 시연영상 - https://youtu.be/f1He2K5uwyI (약 4분)
- 개발기간 - 2022-08-29 ~ 2022-09-08 (11DAYS)
- 개발인원 - 프론트엔드 4명(박예선,박찬영,이은지,임지영), 백엔드 2명(김민우,이윤재)
- 사용된 기술 및 스택(백엔드) - Javascript, Node.js, Express, MySQL, Postman, JWT, bcrypt, Slack, Trello, Notion
- 자세한 내용은 아래의 깃허브 레포 README를 통해 확인 가능합니다.
배운점들
1. 장바구니 API - 상품별 배송비의 부과
- 서비스의 특성상 상품마다 배송비가 추가되어야 했다. 배송비는 5만원 이상일 경우 무료 그 외엔 3,500원 부과. 모듈화를 통해 분리된 코드에서 데이터를 가공하는 부분을 적용하는 것이 어려웠다. 데이터를 가져오는 modles 모듈에서는 데이터를 가져오는 쿼리문만 작성하고 그것을 가공하는 것은 service 모듈에서 별도의 코드로 구현하였다.
- 아직까지 변수명 작명에 익숙하지가 않다. 데이터에 접근하는 함수는 데이터를 기준으로 작명하고 기능이 적용된 함수명은 기능을 명확하게 이해할 수 있도록 함수명을 작성할 것.
- 위 코드의 단수와 복수의 구분이 나 스스로도 명확하지가 않았다. 하나의 큰 carts(장바구니)라는 틀에 여러가지 cart(상품목록)가 담겨야 하는 구조였는데 변수명을 다르게 하던가 확실하게 구분을 지었어야 했다. cart 자체마다 배송비가 붙고 carts에서 배송비의 합계가 담겨야 한다는 생각에 변수명이 헷갈린 부분이 생겼던 것 같다.
2. 상품조회 API - 상품정렬, 검색, 필터, 페이지 네이션을 한꺼번에 묶기
- 전체 상품 리스트를 조회하는 API
- 전체상품조회/카테고리별 상품조회/상품검색(검색어가 포함된 상품을 찾기)/상품정렬/페이지네이션
- 🔷 다음과 같이 쿼리문을 사용하여 필요한 부분만 사용이 가능하다.
/products 전체상품조회
/products?search= 검색기능
/products?category= 카테고리별 조회
/products?orderBy=lowPrice 낮은 가격순
/products?orderBy=highPrice 높은 가격순
/products?orderBy=viewCount 상품 조회순
/products?orderBy=orderCount 상품 주문순 - 🔷 pagination
/products?page=1&pageSize=6
- 페이지당 기본 6개씩 조회기능구현
- 페이지네이션 쿼리를 입력 안 할 경우 => 전체 상품 데이터 전송
- 상품갯수를 초과하는 페이지를 요청할 경우 - Error 반환 - 🔷 example
ex) /products?category=mealKit&orderBy=viewCount?page=1&pageSize=6 - 처음엔 쿼리문을 통해 여러가지 기능을 너무 한꺼번에 넣는게 아닌가 싶었는데 결과적으로 봤을 때는 오히려 코드가 깔끔해진 것 같다. MODELS 모듈에서 데이터에 대한 가공을 하지 못하다면 SERVICE 모듈에서 쿼리문 형태를 만들어 전달하자는 방법을 떠올렸다. 전달받는 RES가 없을 경우에는 함수에서 return을 "" 으로 반환하여 해당 함수는 무시되게 설정했다.
- 페이지네이션에 대한 개념 자체가 이해하기 힘들었다. LIMIT와 OFFSET이 자꾸만 헷갈린 탓이다. 데이터를 입력하고 실제 결과 값을 눈으로 계속 확인해가며 개념을 이해하고 체득했다. 반복된 훈련이 필요하다.
'기타' 카테고리의 다른 글
밥만 먹는 밥벌레 장군 (1) | 2023.07.12 |
---|---|
CSS3 - HTML img 태그에 넣은 svg 파일의 색상 바꾸기 (0) | 2023.06.08 |
[LeetCode] Group Anagrams (0) | 2023.02.04 |
시리즈 A B C란 (0) | 2023.01.11 |
허준이 교수의 졸업 축사 전문 (2) | 2023.01.10 |