내가 할 수 있을까? 하는 마음으로 시작했는데 정말 다 해낸 2차 프로젝트 회고록을 남겨보려고 합니다.
코로나 바이러스를 비롯한 여러 데이터를 수집, 분석 및 차트와 지도로 시각화한 dataUSA Web사이트 클론 프로젝트입니다.
전체적으로는 React Hooks, styled-component의 사용 및 이해 그리고 Redux를 도입하면서 React에서 각 기술들이 어떻게 작동하는지에 그리고 왜 필요한지에 대하여 탐구해보았습니다.
1차 프로젝트에서는 구현해보지 못했던 소셜로그인 기능을 구현하면서 OAuth 2.0 인증에 대한 개념 이해 및 인증 인가 방식의 흐름을 되짚어보았습니다. 더불어 데이터 시각화를 구현하기 위해 차트 라이브러리를 활용하여 백엔드로부터 받아오는 데이터를 어떠한 기준으로, 어떻게 시각화 할 것인지에 대한 고민과 이에 따른 기능 구현에 집중하였습니다.
DataUSA는 정말 많은 양의 데이터를 받아오고 보여주는 사이트였습니다. 때문에 초반에 저희가 구현할 수 있는 기능에 대해 한계를 느끼기도 하였지만 팀원들과 차근차근 이야기를 나누고 조율하면서 결과적으로는 멋진 사이트를 구현할 수 있었습니다. 또 원래 사이트에는 없는 기능들이 적절하게 녹아들 수 있도록 미약하게나마 기획을 해봄으로써 팀원들과의 소통, 의견 조율, 아이디어 공유 등 협업하는 자세와 대화에 대해서 생각해볼 수 있었던 시간이였습니다.
1차 때와 마찬가지로 협업 시에 효율적으로 작업 할 수 있는 여러 장치들(Agile 방법론, Trello, slack, git)을 적절히 활용하였습니다. 덕분에 데이터 시각화라는 다소 복잡하고 어려워보이는 주제를 수월하게 구현할 수 있었던 것 같습니다.
지난번 프로젝트에서 구현해보지 못해 아쉬웠던 장바구니 기능을 Redux를 활용하여 구현해보았습니다. 컴포넌트에서 데이터를 받아서 props, state로만 처리하던 데이터를 Redux를 활용함으로서 단방향으로 처리하는 흐름에 대하여 탐구해볼 수 있었고 사용 목적을 살펴볼 수 있었습니다.
어떤 일을 끝마치고 나면 홀가분하고 후련한 마음과 동시에 한구석에 자리잡는 아쉬운 점은 늘상 존재하는 것 같습니다. 이번 프로젝트에서도 뿌듯하고 보람찬 마음도 있지만 늘 그렇듯 아쉬움도 남습니다.
우선 제 마음이 조금 조급하지 않았나 하고 돌이켜 생각해봅니다. 프로젝트 중간에 Redux를 배워서 바로 적용해보고 싶은 마음이 앞섰던 탓에 조금 서두른 감이 있었습니다. 이 부분이 팀원들에게 힘든 점이 되지 않았을까 하고 뒤늦은 후회를 했습니다. 팀원들과 뒷풀이에서 허심탄회하게 이야기하며 회포를 풀었습니다..ㅎㅎ 루나, 서노 애정합니다.🧚😻
프로젝트 마지막에 부족한 시간에 Cart페이지를 구현하려고 하다 보니 css에 다소 집착했던 부분도 있었습니다. 레이아웃을 레퍼런스를 통해 잡으려고 하다보니 사이트와 맞지 않는 부분들을 수정하고싶은 욕심에...반나절을 이 집착에 허비하지 않았나 하고 두번째 후회를 적어봅니다...
이 후회들이 모여서 성장을 이룰 것이라고 생각하면서...아쉬운 점을 마치도록 하겠습니다.
기록하고 싶은 코드, 함수, 로직은 일부 따로 정리해두었습니다. 만약 보시다가 오류가 있거나 더 나은 방향이 떠오르신다면 댓글로 언제든지 지적이나 조언 부탁드리겠습니다.
소셜 로그인 기능 구현 ☛ Google 소셜로그인
Redux를 활용하여 장바구니 기능 구현 ☛ Redux + Redux persist