HUSH 프로젝트 회고

정승렬·2022년 10월 6일
0
  1. 프로젝트 내용 : 러쉬코리아를 모티브로 한 웹페이지 제작

  2. 제작 기간 : 2022. 09. 19 ~ 2022. 09. 30(2주)

  3. 기술 스택 : javaScript, node.js, mysql, express, postman, bcrypt, jwt
    협업 툴 : slack, notion, trello, github

  4. 구현 기능

  • 회원가입
  • 로그인
  • 메인페이지 : 제품검색, 회원 포인트 관리
  • 제품목록 페이지 : 전체, 카테고리별 제품 소개
  • 제품상세 페이지 : 장바구니페이지로 넘어가기 위한 제품 소개 및 장바구니 담기, 제품리뷰
  • 장바구니 페이지 : 장바구니에 담긴 제품 목록 리스트, 주문전 수량 변경 및 상품 삭제 기능
  • 찜목록 페이지 : 제품상세 페이지에서 찜하기한 제품 찜목록 리스트 보여주기
  • 결제 페이지 : 주문요청시 각 상품별 수량, 가격을 제품 테이블(재고)에서 변경 및 이용자 잔액 변경
  1. 역할 소개
    정승렬
    장바구니 상품담기, 장바구니 페이지
    정다영
    회원가입, 로그인, 메인 페이지, 찜목록 페이지, 결제 페이지
    김정훈
    제품목록 페이지, 제품상세 페이지

개인 구현 API

  • 장바구니 페이지 관리(CRUD)

EndPoint

대분류
/cart
소분류
1. [post] ''
2. [post] /listUp
3. [post] /control
4. [delete] ''

각 EndPoint 별 로직

Create : 제품상세 페이지에서 장바구니로 상품 담기

[post] (addCart)

  1. 로그인 시 부여된 Access Token을 이용해 이용자를 특정
  2. 제품 상세페이지에서 해당 상품을 장바구니에 담을때 Access Token(header), 상품Id, 수량(body)을 전달 받아 carts 테이블에 해당 이용자의 raw 생성

Read : 장바구니 페이지에 상품 목록 보여주기

[get] /listUp (listUpCart)

carts 테이블에 생성된 제품의 정보를 다른 정보와 함께 정보 전달

carts 테이블을 시작으로 products, categories 테이블을 Left Join을 통해 해당 정보를 가져옴
return값

  • 썸네일img, 상품이름, 카테고리 이름, 수량, 가격, 제품id

Update

[post] /control (quantControl)

장바구니 페이지에서의 수량 조절 API
1. 로그인 시 부여된 Access Token을 이용해 이용자를 특정
2. 장바구니 페이지에서 수량을 조절할때 마다 post 요청으로 Access Token(header), 상품id, 수량(body)을 전달 받아 carts 테이블의 해당 raw 수정

return 값

  • listUp 함수 호출(변경된 내용 출력)

Delete

[delete] listDelete

장바구니 페이지에서 상품 삭제 API
장바구니 페이지에서 삭제 요청시
delete 요청으로 Access Token, 상품id를 전달 받아 carts 테이블의 해당 raw 삭제

return 값

  • listUp 함수 호출(삭제된 내용 출력)

개인 회고

프로젝트 시작 전 레이어드 패턴도 모르던 내가, git도 할줄 몰랐던 내가,
프론트에서 요청사항이 들어오면 구현 가능여부를 판단하고 있고, 다른 조원들과 git으로 프로젝트 리뷰를 받고있는 나를 발견하게 되었다.

전공자임에도 불구하고 구현능력에 대해서는 나 자신부터 스스로의 능력에 대해 불확실성을 가지고 있었지만, 이번 팀프로젝트를 하면서 팀원들과 서로 배우고 알려주면서 서로 성장할 수 있는 계기가 되었다고 생각한다.

이번 1차 프로젝트에서는 어려운 API 구현보다, 팀에서 필요한 내용 중, 내가 알고있는 내용, 내가 구현 할 수 있는 내용을 위주로 구현해보고 개발 과정의 흐름을 파악하는 것을 1차적인 목표로 삼았다.

http 통신에 대해 이론적으로만 패킷을 주고 받고 통신을 할 수 있다고만 알고 있었지 내부 구현 로직은 전혀 몰랐었다.

하지만 이번 프로젝트를 하면서 새로 배운점

1-1 http 통신방법 중에 인자 전달 : 로그인을 통해 생성된 토큰을 헤더에서 읽어 인가된 사용자를 판별하는 방법
1-2 패킷의 바디에 전달된 데이터를 읽어오고, 프론트에서 필요한 데이터를 바디에 싣어 보내는 방법

2 Git & GitHub 사용방법
Git에 대해 전혀 모르는 상태에서 처음으로 조원들과 Git으로 작성한 코드를 공유하고 내가 만든 코드에 대해 멘토님들의 리뷰를 받고 하는 과정이 즐거웠다. 학교를 다니면서 프로젝트를 할때는 같은 조원들이어도 usb 저장장치로 서로 코드를 옮기거나 코드 텍스트를 주고받는 식으로 프로젝트를 완성을 했지만 그때 Git을 알았다면 좀더 수월한 프로젝트가 되지 않았을까 하는 생각이 든다.
절대 지금 Git에 대해 많은것을 알고 있는 상태가 아니기 때문에 앞으로 2차 프로젝트를 진행하면서 좀더 Git에 대해 배우고 현업에 나가서도 Git으로 소통할 수 있는 개발자가 되는게 남은 2주간의 목표가 되었다.

이번 프로젝트를 하면서 아쉬웠던 점

1 초기 기획의 중요성
러쉬 코리아를 모티브로 한 웹페이지 제작이라고 해서, 기획이 다 잡혀있는건 아니었다.
해당 웹페이지를 보고 우리조에서 구현할 내용, 구현하지 않을 내용, 구현한다면 어떻게 페이지 흐름을 구성하고, 그 안에서 백엔드 개발자는 데이터를 어떻게 관리 할 것인가에 대한 초기 기획이 많이 부족했다.

초기 기획에서 데이터의 흐름이라도 꼼꼼하게 정하고 갔더라면 리뷰 중간에 DB테이블을 수정하는 일이 없었을 것이고, 프론트엔드 개발자들과도 수월한 소통이 될 수 있었을 것 같다.

이러한 데이터의 흐름을 명확하게 문서화 할 수 있는게 API 명세서가 있다고 한다. 다음 2차 프로젝트에는 기획단계에서 API명세서를 꼼꼼히 작성하여 이번에 실수를 반복하지 않는 프로젝트가 되었으면하는 바람이 있다.

마치며...

학원을 등록하기까지 많은 고민이 있었고, 다시 개발자의 길에 발을 들여놓기로 한 이후 지금의 나를 되돌아보면 아직도 다른 동기들보다 부족하고 겨우겨우 쫒아간다는 느낌을 많이 받고 있다.
시간을 좀 더 할애해서 학원에서 하는 것을 좀더 공부하고 개발역량을 키우기 위해 알고리즘 공부도 병행하는 쪽으로 공부를 진행해야겠다.

0개의 댓글