본문 바로가기
일기/항해99

[항해99 6기] 클론코딩을 마치며

by 고구밍 2022. 4. 21.

https://youtu.be/7TeThbOcbZ4

 

 

느낀점

더보기

 

1주일간 클론코딩을 진행 하면서,

 

우리가 편하게 사용하는 서비스가 복잡한 경우의 수를 고려하여 API를 짜야 된다는 점을 알게 되었습니다.

 

제가 맡은 부분은 장바구니 기능이였는데,

 


1. 비 로그인에서 로그인으로 전환할 경우

-> 로그인한 사람의 DB에 로컬스토리지의 정보를 POST해줘야 하는 점

 

2. 이미 장바구니에 상품을 담았을 경우

-> 추가로 장바구니에 추가할 때, DB에 상품이 추가되었는지 확인하고,

-> 확인이 된다면 저장된 수량을 수집하여 POST으로 추가된 수량을 더해주는 로직을 짜줘야 한다는 점

 

3. 장바구니에서 수량을 수정하게 되었을 경우

-> 수정된 수량을 하나하나 PUT으로 요청을 해야되는지에 대한 고민

 

제품 주문시에 발생할 수 있는 경우의 수로

 

4. 만약 주문한 제품이 없을 경우와 장바구니에 없는 ProductId가 요청되었을 때의 예외사항 등


고려해야 되는 점이 많다는 점에 놀란 한 주 였던 것 같습니다.

 

조원분들은

프론트 2분, 저를 포함한 백엔드 3명으로 구성이 되었고,

로그인 / 회원가입 / 메인(메인 - 상세페이지) / 장바구니에서

장바구니 api만 구현하였기 때문에 다른 조원분들에게 많은 도움을 못 드렸던 것 같습니다.

 

 

그리고 생성자, 엔티티와 Dto에 요구되는 자료형을 고려하여 Repository에 저장하는 부분과

List <> 형식에서 원하는 자료를 추출하고, 가공한 데이터를 다시 List<>형식으로

담는 것에 대한 개념을 승민님과 승호님께 배워서 감사한 한주였습니다.

 

프론트분들은 2명이라는 적은 인원이였음에도 불구하고, 처음부터 끝까지 최선을 다해주셨습니다. 

또한 API로직에서 이상한 점이 있어도 화내시지 않으셨고,

같이 적극적으로 의견을 내주시는 모습을 때문에, 더 열심히 코딩을 해야겠다는 생각을 하게되었습니다.

 


 

공부해야 되는 것들

 

1. 생성자 & 자료형의 형태를 자유자제로 활용하는 것을 익히기

 

2. 예외처리 exception 공부하기

 

3. 빠르게 코딩하기

 

4. 클린코딩 -> 가독성이 쉽게 코딩을 설계하는 연습

 

 

 

1주일 동안 진행과정

더보기
  • 4/15 금
    • API, DB설계
  • 4/16 토
    • 프론트엔드
      • View 작업시작
      • 로그인, 회원가입, 메인, 장바구니 view완료
    • 백엔드
      • 메인페이지 조회, 배너만들기
      • jwt활용 로그인 완성
  • 4/17 일
    • 프론트엔드
      • 페이지별 뷰 작업 완료
    • 백엔드
      • 상세페이지
  • 4/18 월
    • 프론트엔드
      • 뷰 수정 작업 및 마무리
      • 로그인/회원가입 기능구현
      • 메인화면 기능구현
    • 백엔메인화면 기능구현
      • 장바구니 기능
      • 댓글기능
  • 4/19 화
    • 프론트엔드
      • 상세페이지 기능구현 및 댓글 CRUD
    • 백엔드
      • 장바구니 예외처리
      • 구매하기
  • 4/20 수
    • 프론트엔드
      • 로그인/회원가입 , 상세페이지 서버연결
    • 백엔드
      • 구매하기 예외처리
      • 장바구니 추가 (비로그인 -> 로그인 전환)
  • 4/21 목
    • 테스트 및 배포

 

 

내가 한 일

더보기

https://www.notion.so/d6ccc5c59dd841da9532f1d70a8dac0a?v=ea74b86d8e3848bd85920b580faef273 

 

API 설계 username=아이디,nickname=이름

A new tool for teams & individuals that blends everyday work apps into one.

www.notion.so

 

1. 장보기 API

개별 상품 Cart에 저장

-> If 데이터베이스에 상품이 존재한다면

-> 갯수(qauntity)와 상품의 전체 가격(sum)을

 

sum = sum + 요청한 값

 

로직을 활용하여 set 으로 수정합니다.

 

 

2. 예외성검사

ARC을 통해서 장바구니 담기와 구매에 대해서 예외성 검사를 많이 해보았습니다. 

아래는 테스트 중에 발생한 에러를 잡기위해 예외처리를 추가한 부분입니다.

 

장바구니 담기
주문하기

 

3. 리드미 작성

저번 주에서 예령님께서 만들어 주셨던 리드미를 참고하여 리드미를 작성하였습니다.

조원분들의 종합하여서 타입핑을 하였고, 이미지를 삽입하는 부분이 어려웠지만

구글링을 통해서 무사히 입력하였습니다.

 

https://github.com/clone-marketkurly/MarketCurly

 

GitHub - clone-marketkurly/MarketCurly: 마켓컬리 클론코딩

마켓컬리 클론코딩. Contribute to clone-marketkurly/MarketCurly development by creating an account on GitHub.

github.com

 

 

내가 짠 로직에 대한 설명

더보기

카트 엔티티 설계 

 

 

API작성 중, 프론트에서 체크박스를 통해서 장보기제품을 true, false값으로

주문할 상품을 고를 수 있는 기능을 구현하기 위해서 boolean cecked를 새로 추가하였습니다.

장바구니에 담게되면, 기본적으로 사용자가 구매할 의사가 있기 때문에

-> 기본값을 true로 설정하였습니다.

 

1개 씩 장바구니에 담기

 

카트 컨트롤러

 

 

카트리퀘스트 Dto : 클라이언트에서 보내주는 정보를 받아 줌
장바구니에 1개 저장하기

 


장바구니 전체 조회하기 

 

 


 

장바구니 1개씩 삭제하기 

 

카트 레포지토리
전체조회시 카트 레스폰스 디티오

 

 

링크

더보기