일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- dynamic metadata
- node.js(express) + ws(websocket) + react
- http.createserver
- useimperativehandle 사용할때
- 리액트 19 useref
- 이미지 업로드 과정
- express로 채팅 기능 구현하기
- 회고
- usemutation custom hook
- css module classNames
- React
- CSS module 장점
- app.listen
- useimperativehandle 사용법
- 오블완
- express react
- pure functions
- 리액트로 채팅 기능 구현하기
- trigger additional callbacks
- 코드잇 스프린트 FE 1기
- next.js
- 프리렌더링
- useref 타입
- inferred type error
- 리스티웨이브
- 스프린트 여정 마침
- 티스토리챌린지
- type reference cannot be named error
- components as formulas
- 특정 dom node만 노출시키고 싶을 때
- Today
- Total
Life is connecting the dots .
[Taskify] 팀 프로젝트 회고 본문
기초 프로젝트를 끝낸 게 엊그제 같은데 part3에서 중급프로젝트를 진행하며 연말, 연초를 보냈다. part3에서 만난 우리 팀은 총 4명으로 Next.js를 공부하고 프로젝트를 함께했다. 나도 그렇듯 다른 팀원들도 part2에서 프로젝트에 대한 아쉬움이 남았던 부분들을 팀미팅 시간에 얘기도 하면서 이번 프로젝트에서 시행착오를 줄이기 위해 미리 대화하는 시간을 많이 가졌다. 이번 팀 프로젝트 회고에는 지난번 프로젝트에서 유지했던 방법보다는 새롭게 도입한 부분에 대해 적어보려고 한다.
🔮 프로젝트 소개
이번 중급 프로젝트도 피그마와 API 명세서, 기본 요구사항이 주어진 상태에서 UI와 기능을 구현하는 프로젝트이다. 우리가 선택한 프로젝트는 [🎯 Taskify]로 칸반보드 단위로 팀 일정을 관리하는 서비스이다. 현존하는 그룹웨어보다는 팀단위로 일정을 관리할 수 있고, 대시보드 설정, 팀원 초대, 할 일 생성 등 다양한 기능으로 간편하게 일정을 관리할 수 있는 웹 어플리케이션을 개발했다. 우리가 개발한 기능과 프로젝트에 대한 상세 소개는 깃헙 링크를 통해 확인할 수 있다. 👉 [ 👀 프로젝트 ]
🗺️ 개발 과정
컴포넌트 단위 개발
지난 기초프로젝트에서는 페이지단위로 각자 역할분담을 나눴었는데 이번에는 컴포넌트 단위로 개발 후에 페이지에 조립하는 방법을 선택했다. 공통으로 개발해야 할 컴포넌트가 많았기 때문에 먼저 컴포넌트를 개발 후 연관된 다른 컴포넌트를 개발해 나가는 것으로 하다 보니 더 빠르게 페이지에 적용할 수 있었다.
PR & 이슈 템플릿 적용
프로젝트의 협업 방법으로 매일 팀미팅 시간을 활용한 데일리 스크럼, 디스코드 웹 훅 연동, 코어 타임 설정은 이전 프로젝트와 동일하게 진행했다. 또한 깃헙 이슈를 생성하여 태스크 관리를 했었는데 이번에는 개발 과정을 구체적으로 공유할 수 있도록 이슈, PR 템플릿을 적용했다.
템플릿을 적용하니 통일된 양식으로 문서화할 수 있기 때문에 읽는 사람도 어느 부분에 집중해서 읽어야 할지 고민하지 않아도 된다는 장점이 있다. 특히 PR 템플릿은 기본적인 작업 내용, 스크린샷 뿐만 아니라 [참고 사항], [리뷰어에게]라는 추가 항목도 만들어 두어, 코드리뷰를 할 때 어떤 부분을 중점적으로 봐야 할지 파악하게끔 항목을 구성했다. 해당 컴포넌트를 사용할 때 미리 여러 가지 정보를 공유받을 수 있어서 결과적으로 협업하기 더 수월했다.


코드 리뷰
지난 프로젝트에서는 코드 리뷰와 PR Approve 설정을 따로 하지 않았기 때문에 결과적으로 의사소통 비용이 더 많이 들었었다. 지난번 시행착오를 교훈 삼아 이번 프로젝트에서는 Approve를 최소 1명 이상으로 두었고, 코드 리뷰도 활발히 하기로 정했다. 프로젝트 기간이 3주 동안 모든 팀원의 PR을 확인했고, 이 중 거의 모든 PR에 대해서 코드리뷰를 진행했다. 특히 우리 팀에서는 나와 다른 팀원 1분이 적극적으로 코드리뷰를 주고받으며 개발을 했었는데 후반부에 코드스타일이 맞춰진다는 것을 느꼈고, 코드를 보는 관점이 비슷해진다는 느낌을 받았다. 내가 보지 못한 관점을 리뷰를 통해 알게 된 부분도 많고 기억에 오래 남기 때문에 추후 작성하는 코드에 대해 실수를 줄여주었다. 프로젝트 막바지로 갈수록 버겁게 느껴지기도 했지만 서로 도움 되는 리뷰를 주고받으며 같이 성장하는 느낌을 많이 받았다.
새로운 라이브러리 도입
우리 팀은 프로젝트 기술 스택으로 다음과 같이 정해서 사용했다. 이 중 공통으로 학습한 내용도 있지만 React-query (TanStack-query)는 팀원 모두 사용한 적이 없는 라이브러리였다. 리액트쿼리를 도입하기로 결정한 이유는 우선 사용해보고 싶은 마음이 컸다. 실무에서 많이 사용하는 라이브러리 중 하나이기 때문에 빨리 익숙해지고 싶은 마음이 있었고, 리액트쿼리를 사용함으로써 얻을 수 있는 이점이 많다고 생각했다. 프로젝트 규모가 복잡할수록 서버 데이터가 업데이트될 때 클라이언트 데이터를 동기화하기 위해 많은 state를 사용해야 하는데 리액트쿼리를 사용함으로써 상태 업데이트를 쉽게 할 수 있고, 콜백함수를 이용한 에러 처리도 적용할 수 있어서 사용할수록 많은 장점을 느꼈다.

중요한 점은 아무리 좋은 기술이라도 프로젝트 기간 내에 습득해서 적용할 수 있는지를 파악해야 한다는 점이다. 해당 라이브러리 도입을 제안한 것이 본인이었기 때문에 빨리 사용법을 익히고 팀원들에게 공유하기 위해 프로젝트 초기에 API 작업을 하면서 리액트쿼리로 CRUD 하는 샘플 코드를 만들어서 PR에 함께 올렸다. 이 때문에 큰 어려움 없이 팀원 모두 새로운 라이브러리를 코드에 잘 적용할 수 있었다. 이후 리액트쿼리에서 사용할 수 있는 다양한 함수들은 실제 코드를 작성하면서 공식문서에서 터득하는 식으로 개발을 진행했다. 이 과정에서 리액트쿼리를 '잘' 사용하기 위해 리스폰스 타입 지정, 콜백함수 활용 등 멘토님께 질문도 많이 드리고, 그만큼 많은 도움을 주셨다. 개발을 하면서 늘 사용하던 기술만 사용할 수 없기에 기술을 습득하는 능력 또한 개발자의 소양이라고 생각하기에 이번 프로젝트에서 좋은 경험을 하게 된 것 같다.
🤔 프로젝트를 마치며
3주 동안 열심히 개발한 프로젝트를 완료하고 진행한 발표 세션에서 우리 팀은 소개 및 역할, 기능 소개, 시연 순서로 발표를 진행했다. 여담이지만 발표를 맡은 우리 팀원 목소리가 마치 아나운서 같아서 발표하는 내내 귀에 쏙쏙 들어왔다. 🍬🍫
이번 프로젝트에 대해 개인적인 회고를 적어보자면 이번에도 아쉬운 점이 있지만 잘한 점이 더 크다는 생각이 들었다. 정말 3주 동안 최선을 다해서 그런지 개발 측면에서도 협업 부분에서도 크게 아쉬움이 남는 부분이 없었다. 다만 이번 프로젝트를 발판 삼아 보완해야 할 점을 적어보자면 두 가지 정도가 생각난다.
우선 feature 단위 PR에 대한 approved를 받고 develop 브랜치에 merge를 할 때 기본 방법을 선택했었다. 하지만 후반부에 커밋내역을 기능 단위로 깔끔하게 하나의 커밋으로 묶을 수 있는 Squash & Merge 방법을 시도했었는데 나중에 main 브랜치로 merge 했을 때 중요한 커밋만 남길 수 있어서 보기도 좋고, 관리하기 더 수월했다. 다음에는 머지 전략을 더 공부해서 프로젝트 처음부터 적용해 나갈 수 있도록 해야겠다.
프로젝트를 하면서 우리 팀이 잘한 것 중에 하나가 시간관리, 일정관리라고 생각한다. 프로젝트에 많은 시간을 할애해서 완성하는 것도 중요하지만 기능 개발에 투입되는 리소스를 판단하고 개발과 휴식의 비율을 잘 조정해서 프로젝트를 진행해 나갔다. 이렇게 진행할 수 있었던 이유는 매일 데일리스크럼 시간에 팀원들의 일정을 서로 꼼꼼히 확인하고, 코드리뷰 등 개발 협업을 통해 맞추고 공유하는 시간을 충분히 가졌기 때문이라고 생각한다. 다만, 이 과정에서 개인적으로 보완할 점은 팀 내에서 협업 관련하여 각자 기여도가 달랐기 때문에 후반부로 갈수록 리뷰해야 하는 양이 많아지다 보니 버겁다는 생각이 들었다. 장기적으로 프로젝트를 해야 할 경우 스스로 하루 루틴을 유지하면서 스트레스 관리 및 리프레시가 필요하다는 것을 느꼈다.
팀프로젝트를 경험하면서 PR, 코드 리뷰를 마음껏 하면서 재밌기도 했고, 단기간에 많이 성장했다. 나와 가장 많이 코드리뷰를 주고받은 팀원은 상세하게 코드리뷰를 받아서 덕분에 많이 도움받고 성장했다고 말씀해 주셨다.😊
또, 리액트쿼리로 개발해 나가면서 페이지네이션을 구현할 때 프론트엔드 관점에서 좀 더 섬세하게 기능을 구현하면서 개발 퀄리티도 높였다. 리팩토링 해야 할 목록을 적어두었는데 해보면서 고도화 작업을 진행해 보려 한다. 이번에도 역시나 이 모든 과정들이 좋은 개발 경험으로 남아 공부를 할 때도 새로운 프로젝트를 할 때도 좋은 동기부여가 될 거라 생각한다.
'회고 > 프로젝트' 카테고리의 다른 글
[오픈마인드] 팀프로젝트 회고 (0) | 2023.11.19 |
---|---|
[커마디] 첫 팀프로젝트 회고 (0) | 2023.05.27 |