"처음으로 제대로 된 팀프로젝트를 경험한 것 같다."
대학에서 jsp
를 활용한 웹프로젝트와 아두이노
,라즈베리파이
를 활용한 프로젝트를 경험했었다.
그럼 프로젝트 경험은 있네??!
팀 프로젝트라고 하기에 부르기에 애매한 프로젝트들이 많았다.
깃
,깃허브
와 같은 협업툴을 사용하지 않아 코드들은 카카오톡이나 txt파일로 주고받고 붙여넣기도 하고 그 과정에 버전이 안맞아 어느 로컬에선 되고 안되고 잦은 오류들을 많이 만났다.
또한 협업이라고 하기엔 한 명이 프로젝트를 거의 다 하게되는 상황도 많이 나왔었다.
그렇다면 위코드에선??
팀프로젝트로 처음 깃
버전관리 소프트웨어를 사용하고 깃허브
를 이용해 초기세팅 맞춰놓은 상태에서 기능 별로 branch
를 나눠 작업하고 서로 붙여보는 과정이 너무나 재밌었다.
또한 프론트와 백엔드로 나뉘어져 협업을 한 것도 정말 좋았다.
마켓홀리팀의 구성원은 프론트 4명 , 백엔드 2명
필요한 기능이 무엇인지 공통으로 사용될 속성은 무엇인지와 같은 전반적인 마켓컬리에 대해서 조사를 했다.
마켓컬리 프로젝트에 필요한 특이사항등을 파악한 후 CRA 초기세팅을 했다.
공통으로 사용될 속성등을 조사하고 common.scss
, reset.scss
, Route
를 만들었다.
개발 방법론으론 스크럼 방식을 택했다.
프로젝트 후반부로 갈수록 뭐가 더 많이 추가되었다.
스크럼 방식?? 어떻게??
먼저 프론트엔드와 백엔드 모두 각자 맡은 기능들을 구현하는데 프론트에서 데이터를 출력할 준비가 되어있고 백엔드에서도 데이터를 뿌려줄 준비가 되어있다면 해당하는 기능들을 붙여서 테스트 하는 방식으로 진행했다.
이렇게 하나하나 붙여보면서 개발을 진행하다보니 발생할 수 있는 버그, 문제들을 빨리 발견하고 수정할 수 있고 개발 진행이 어느정도 되었는지 알 수 있었다.
백엔드와 통신할 때 작성한 로직이 이상없이 작동할 때의 기분은 👍🏻😃🤪
프로젝트 관리 협업툴인 Trello를 사용했다.
우리팀은 Trello카테고리를 아래와 같이 만들었다.
파란색 : 프론트
주황색 : 백엔드
생성한 티켓은 위와 같이 세부적으로 만들어야할 기능들을 Checklist 항목으로 만들어 진행하였다.
이외에도 Slack을 적극활용하여 팀과 소통을 원활히 할 수 있도록 했다. (아래는 야근 하는 팀원들)
새벽까지도 코딩하던 우리팀들 열정 칭찬해 👍🏻👍🏻
이번 프로젝트에서 내가 맡게 된 기능은 Nav와 상품 상세 페이지!!
이기능은 지금 생각해보면 정말 간단했지만 처음 구현하려고 했을 때 너무 힘들었다.
전체 카테고리에 마우스가 Hover됐을 때 리스트를 출력해야하고 출력된 리스트에서 해당하는 Main 리스트에 Hover하면 Sub 리스트가 나와야한다.
간단하게 말해 처음 호버됐을 때 리스트(Main)들을 클릭했을 때와 그 리스트(Main)의 리스트(Sub)를 클릭했을 때 서버로 보내는 요청을 다르게 해야했다.
위와 같이 Link에 state
값으로 checkCategory
항목을 넣어줘 해결했다.
상품 상세페이지에서는 각 제품마다 소개하는 목록이 다르다.
판매단위, 중량단위, 배송구분, 포장타입, 알레르기 정보, 유통기한 등 있는 것도 있고 없는 것들도 있어서 잘 구분해서 화면에 보여줘야했다.
id
값을 주고 <a href="#id">
할 수도 있지만 Nav바가 상단에 고정되어있어서 사라져버리기 때문에 직접 구현해야했다.자기가 자기자신한테 이런 말 하기엔 좀 남사스럽지만....
즐거운 코딩을 하면서 받는 어쩔 수 없는 스트레스들
"같은 팀원끼리 웃으면서 재밌게 열심히하자" 라는 마음에 최대한 많이 웃게 할려고 노력한 것 같다. 웃으면 팀 분위기도 덩달아 같이 좋아지니!!
다음 프로젝트도 이 기능은 챙겨가야 할 것 같다.
정차역 없는 초고속 열차("일단 만들어")
위와 같이 불필요한 state
값들을 너무 남발했던 것 같다.
저 state
값을 바꾸기 위해 함수 하나가 생기고 코드도 길어지니 코드 길이 또한 길어지는 역효과들이 많이 나왔다. state
변수를 생성할 땐 한 번 더 생각하고 만들어야겠다.
컴포넌트 재사용성에 대해 조금 더 고민해야겠다라는 마음가짐.. 기존에 컴포넌트 재사용은 리스트만큼 map()
을 돌려서 컴포넌트에 들어가는 데이터들만 바꿔주면 된다고 생각했는데 컴포넌트 재사용성 세션을 듣고 충격을 받았다.. 그 세션을 듣고 내가 짠 코드를 보니 어디서부터 리펙토링을 해야할지 감을 못잡았다..
해당하는 기능을 master
브랜치로 push 하고 PR에 달리는 코드리뷰를 계속해서 하다보니 첫 달에 비해 확실히 조금 더 생각하고 코딩하는 습관이 길러진 것 같다. 그때의 나는 정차역 없는 초고속 열차("일단 만들어")였다. 이젠 버려야지! 😃
.json
으로 데이터가 날아오는데 예를 들어 mock data
에 만들어놓은 키 값이 백엔드와 틀리거나, 할인율
의 default 값이 0
,null
인지.. 처음 나는 당연히 0
이겠지 했는데 다른 프론트 팀원은 undefined
로 생각하기도 해서 서로 더욱 소통을 열심히 해야겠다는 마음가짐이 생겼다.2주가 이렇게 짧다는 것을 이번 프로젝트를 하면서 다시 느꼈다. 사실 금방할 줄 알고 첫 주에 설렁설렁하다가 그 다음 주에 피본 것도 있다. 😂
이번 1차 프로젝트에 겪었던 경험을 발판삼아서 2차 프로젝트에는 더욱 더 잘할 수 있도록 노력해야겠다.
끝으로 서로 힘들어도 다른 팀원에게 화, 짜증 한 번 안내고 모르는 것들은 서로 도와주고 파이팅하는 분위기를 끝까지 이끌어간 마켓홀리팀원 모두에게 너무나 감사하다 x 999. (2차도 이대로 쭉..??)
마지막으로 같이 일하고 싶은 개발자가 되도록 열심히 노력하자!!
찬호님~~~!! 첫 플젝 수고 많으셨어요 🤘🏻
안되면 될때까지..!! 2차 플젝도 화이팅🏅