[리팩토링] 둥지 프로젝트

etc-image-0

 

리팩토링 하는 이유

지금까지 만든 프로젝트 중 가장 만족스럽지 못한 프로젝트였고, 지금의 나는 더 많은 것을 배웠다.

새로운 기술을 배울 때마다 "이 개념을 저기에 썻으면 더 좋았을 걸" 이라 생각하며 둥지 프로젝트를 떠올랐다.

그때 당시에는 단순한 UI가 보기 싫어서 새로운 것을 도전했다. 하지만 지금와서 생각해보니 아쉬운 부분이 많았다.

 

etc-image-1
이전 UI모습

 

쇼핑몰 페이지 성격상 단순한 UI가 많아서 나는 여러 애니메이션을 집어넣어 "특별함"을 추가했다. 하지만 애니메이션을 적용 할 수록 코드는 더 복잡해지고 원하는 동작대로 작동을 안했다.  오히려 더 난잡해지는 느낌이었다. 

 

제목 없는 동영상 - Clipchamp로 제작 (8).gif
바꾼 UI 모습

 

그래서 UI는 단순하고 깔끔하게 다시 만들고 코드 설계를 다시 짜서 성능이 더 좋아지게 만들어 봤다.

이 외에도 상세 페이지, 장바구니 페이지 등등 여러가지를 수정 했다. 자세한 설명은 아래 링크를 통해서 확인 할 수 있다.

 

새로 구현한 기능

1.  React-query를 이용해서 실시간 장바구니 수량 업데이트

 

React-query 사용해서 장바구니 상태 실시간 업데이트 하기

🤔 React-query 사용 이유 오늘 내가 해볼 것은 DB에 있는 장바구니 수량을 실시간으로 반영해주는 아이콘을 만들 것이다. 원래 같았으면 장바구니 버튼 클릭 시 axios 요청을 통해 수량을 setState 함

jin99.tistory.com

 

2. Intersection-observer 와 useInfiniteQuery를 이용해서 무한 스크롤 만들기

 

useInfiniteQuery를 활용한 무한 스크롤 구현하기

🤔 useInfiniteQuery를 사용한 이유 무한 스크롤을 적용시키는 방법은 여러가지가 있다. 하지만 구조는 비슷할 것이다. Intersection-observer를 이용해 특정 영역을 감시하고, 감시된 영역이 보이면 데이

jin99.tistory.com

 

3. Custom Hook 사용해서 카카오 맵 API 관리하기

 

카카오 맵 API를 활용한 강력한 커스텀 훅 만들기

🤔 커스텀 훅을 사용한 이유? 사실 처음부터 커스텀 훅을 사용해 만들 생각은 없었다. 처음 프로젝트를 만들 당시 카카오 맵 API를 활용한 중복된 코드가 많았고, 이를 불편하게 생각한 나는 리

jin99.tistory.com