본문 바로가기

개인공부 기록/node.js

1차 프로젝트 회고록

길다면 길었고 짧다면 짧았던 1차 프로젝트가 종료하였습니다.

매번 혼자 코딩하다 여러 사람과 맞춰가며 하는 프로젝트는 처음이었는데 힘들었던 점, 좋았던 점, 아쉬웠던 점 등 느낀 게 많았던 거 같습니다. 항상 부족했던 저를 많이 도와준 위즐리 팀원 분들께 감사하단 말씀을 하고 싶네요!

Wesely 클론코딩 사이트 메인화면

클론 대상: Wisely(와이즐리) - https://www.wiselycompany.com/home/main

시연 영상: https://www.youtube.com/watch?v=LgIgJsmdHhU&ab_channel=%EB%B0%95%EB%AA%85%ED%98%B8

팀명: Wesely(위즐리)

팀원: 6명 - FE(3명), BE(3명)

기간: 2022.08.16 ~ 08.25 (10일)

담당 역할: 장바구니(카트) 페이지

 

처음 선정된 사이트를 팀원들과 둘러보았을 때는 생각보다 간단하지 않나?라는 생각을 했습니다. 그도 그럴 것이 전체 상품수가 35개인데 카테고리가 7개라 한 카테고리당 평균 5개의 상품만 들어가기 때문이었죠 하지만 그것은 햇병아리들의 착각에 불과했을 뿐 생각보다 간단하지 않았습니다.

 

초기 세팅!! 맨날 했던 거 같은데 왜 안 되는 거니?

네 제가 처음 Node.js를 배우면서 제일 먼저 한 게 초기 세팅이었는데 백지에 하려고 하니 기억도 안 나고 어렵더군요 그래서 이전에 했던 것들을 참고해가며 세팅을 했는데요 사실 처음 할 때는 하라는 대로 했을 뿐이고 동작이 성공하고 난 뒤에는 매번 잘 돌아가니 거의 신경을 쓰지 않았던 것 같습니다. 당연히 결과물을 내는 것도 중요하지만 결과물을 내기 위한 기본 환경을 세팅하는 것도 반복 숙달되도록 신경을 써야겠다는 점을 느꼈습니다.

 

ERD 구성하기

혼자 작성해 본 Wesely ERD 첫번째 안

그렇게 사이트에 대한 기초 작업에 착수하게 되었습니다. 그래서 첫 번째로 제일 기초가 되는 ERD작성을 시작하였는데요 제품 상세 페이지에 들어가 보니 상품에 옵션이 많게는 두 개 적게는 하나도 없는 상품들이 뒤섞여 있었습니다. 그래서 혼자 ERD를 작성해볼 때는  옵션에 대한 부분을 세세하게 나눠 테이블을 구성하였는데 다른 팀원 분께서 굳이 옵션 종류 별로 테이블을 구성해야 하는지, 전체 수량이 적기 때문에 하나의 테이블에 다 넣어도 괜찮지 않냐는 의견을 주셨고, 멘토님 리뷰 시간에도 부족한 피드백을 받아 대대적으로 수정 작업에 들어가게 되었습니다.

 

2번째 ERD

그래서 수정하게 된 ERD에는 커머스 사이트에서 고객의 여정을 반영하고 추후 배송, 마이페이지 등의 추가 기능 구현을 염두하여 테이블을 구성하게 되었습니다.

 

더미 데이터 만들기

아래 이야기를 하겠지만 장바구니 페이지는 구현이 어렵지 않다고 판단하였기 때문에 추가로 더미 데이터를 만드는 작업도 같이 진행하였습니다. 다행히도 제품이 서른여 개 정도라 직접 만드는 방법을 선택하였습니다. 사실 데이터를 만드는 것은 얼마든지 만들 수 있지만 MySQL DB에 입력하는 게 문제가 되는 작업이었던 것 같습니다. 다행히도 스택오버플로우에서 'fast-csv'라는 모듈을 알게 되어 금방 완료할 수 있게 되었습니다.

본격적인 API 작성

장바구니 기능 구현을 하며 생각한 흐름은 다음과 같았습니다.

1. 유저가 장바구니에 상품을 담는다 ( carts 테이블에 정보가 들어오고, 쌓인다)

2. 유저가 장바구니 페이지에 접속한다 (carts 테이블에 담긴 정보를 프런트에 보내준다)

3. 유저가 장바구니 페이지에서 상품을 삭제하거나, 수량을 수정한다. (carts 테이블에 정보를 보내 삭제 또는 업데이트를 한다)

 

제가 실제로 작업하는 것은 2,3번이었는데 여러 가지 정보가 필요했던 2번을 빼면 하루 이틀이면 끝날 것이라 예상했기 때문에 빠르게 작업한 뒤 다른 팀원을 도와주거나 추가 구현 페이지(결제, 마이페이지)를 진행하도록 전략을 짠 페이지였습니다. 애초에 역할 분배를 할 때도 그렇게 이야기가 되었고 나름 성공적으로 역할을 수행했던 것 같습니다.

 

프로젝트 마감 이틀 전인데요...?

다른 분들의 프로젝트 회고록을 보면 다들 사건사고가 한 번씩 터져 위기를 극복하셨던 스토리가 하나씩 있으신데 프로젝트 마감 이틀 전까지 순조롭게 프로젝트가 진행되는 것을 보며 우리가 짠 ERD가 부족하지만 프로젝트 진행하는데 문제가 없다는 것과 팀원분들도 자기 몫을 잘해주셔서 잘 진행되고 있구나라는 긍정적인 생각과 한편으로는 에피소드가 없어 회고록에 쓸 말이 없으면 어쩌지 라는 불손한 생각을 같이하고 있었는데요 추가 구현 사항이었던 마이페이지와, 결제 페이지를 구상하고 있던 중 ERD 구성을 변경해야 될 것 같다는 다른 팀원분의 말을 들었때는 금방 해결할 수 있을 거라는 생각을 했습니다. 하지만 변경의 여파는 컸고 대대적인 수정이 필요한 상황이 돼버렸습니다.

 

내가 짠 코드들을 전부 다시 짜야한다?!

프로젝트가 끝나고 난 지금 생각하면 별거 아니었지만, 프로젝트 당시 마감 이틀 전에 변경된 ERD에서 코드를 보니 조금만 수정하면 될 줄 알았던 코드들이 전부 다시 작성을 해야 한다는 것을 알게 되었습니다. 마음이 급해지니 머리도 안 돌아가고, 있던 코드에서 어떻게 조금만 고쳐 쓸 수 없을까 하는 생각들을 많이 했던 것 같습니다. 물론 간단한 코드들의 경우 어찌어찌 수정을 했지만 조금 복잡한 쿼리 문의 경우 전에 돌아갔던 쿼리문 안에서 해결해보려는 시도가 저의 발목을 많이 잡았던 것 같습니다. 다른 팀원 분들에게 물어보고 검색도 해가면서 하나씩 하나씩 차분하게 쌓인 것들을 해결해 나가 다행히 마감전에는 수정을 완료할 수 있었던 것 같습니다.

 

완성한 결과물!!

 

프로젝트 종료 후 남은 것들

개발자가 되기 위해 했던 첫 프로젝트 경험이었던 만큼 잘한 것보단 부족한 것, 미숙한 것이 많았다고 생각합니다. 상하 관계에서 보고 할 때는 제가 놓친 부분이 있다면 상급자들이 추가적인 것들을 질문하여 답변하였지만 프로젝트를 하면서 어떤 것이 중요하고, 중요하지 않은 지를 내가 스스로 판단하여 질문하고, 정보전달을 하는 것이 부족했고 어려웠던 것 같습니다. 어려운 게 아니라 익숙하지 않은 것이라는 이야기가 있는데, 이번 프로젝트에서 익숙하지 않은 것을 익숙하게 만들기 위해 부단히 노력했고 좋은 경험이었던 것 같습니다.

 

회고록은 이 부분을 작성하려고 쓴 게 아닐까 싶네요. 사실 아직도 마감 이틀 전에 ERD를 수정한 것이 이해가 완전히 되지는 않습니다. 그만큼 제가 프로젝트에 대한 이해가 부족했다는 이야기라고 생각합니다. 어떤 변경사항이 있을 때는 그것으로 인해 발생하는 여러 가지 문제점들을 이야기하여야 하는데 그게 부족했기 때문에 변경되고 나서 생각하지 못한 부분에서 여러 가지 문제가 발생하여 진행이 더뎠던 것 같다고 생각합니다. 앞으로는 어떤 변경이 있을 경우 내가 맡은 부분에 대해서는 어떠한 문제가 발생할 수 있는지 남에게 막힘없이 이야기할 수 있고 의견을 낼 수 있도록 맡은 부분에 대한 분석을 더욱더 철저하게 해야겠다는 점을 느꼈습니다.

 

그리고 진행하다 보면 수정사항이 생기게 되는 건 당연합니다. 하지만 변경되었을 때 여파가 고스란히 나에게 와서 내가 생각했던, 작성해놨던 것들이 뒤틀리는 경우에 어떻게 행동해야 되는지는 아직은 잘 모르겠습니다. 어떤 상황에서도 해결 방법을 찾아내고 유연하게 대응하는 사람과 아닌 것은 아니라고 딱 자르는 사람 그 어딘가에 위치할 수 있도록 더욱더 공부하고 노력해야겠습니다.

Recent Posts
Popular Posts
Recent Comments