본문 바로가기
Recap/프로젝트 회고

[협업 프로젝트] 1주차 회고

by yerin.dev 2024. 4. 2.

개요

팀 프로젝트를 시작했다. 팀원은 프론트엔드 3명, 백엔드 3명이다.
그리고 내가 팀장이 되었다. 아무래도 협업 경험이 있는 팀원이 아무도 없었기 때문에 미리 열심히 공부를 했다. 성공적인 팀프로젝트를 위해서 여러가지 생각할 것이 많아서 정신이 없었다.
1주차인 만큼, 여러 툴들을 활용한 소통 환경 세팅과 기획에 주력했다.

 

 

1주차에 진행한 것들

소통

협업 프로젝트는 시작부터 끝까지 제일 중요한 것이 소통인 것 같다.
우선 슬랙, 노션을 이용해서 소통하기로 했는데 슬랙의 허들이 3인부터는 유료 플랜인 것을 뒤늦게 발견하고 디스코드를 이용해서 데일리 스크럼을 진행하기로 했다. 회의록도 꼬박꼬박 남겨서 놓치는 부분이 없도록 했다.

 

기획

그리고 가장 중요한, 주제를 정하는 날! 팀원들끼리 여러 의견을 교환했고 최종적으로는 '공동구매'라는 컨셉을 가져가기로 했다. 주제 자체는 금방 정했지만, 이 기획을 어떻게 다른 사람들에게도 잘 전달할 수 있을지에 대해서 오래 고민했다. 우리끼리는 이해가 쉽게 되더라도, 아무것도 모르는 사람들에게도 쉽게 이해시키는 게 목적이었던지라 회의도 두시간씩 하면서 여러 번 기획문서를 갈아 엎었다.
우리가 이해한 바를 구구절절 설명한다고 무조건 이해도가 올라가지 않는다. 모든 상황, 기획에 대해서 꼼꼼하게 고민하고 이해한 뒤에 글은 최대한 간단하게 쓰는 것이 좋다(는 걸 깨달았다.).

'나'를 위한 글을 쓰지 말고, '읽는 사람'을 위한 글을 쓰자.

 

읽는 사람을 위한 글?

  • 항목 별로 분류가 잘 된 글. 마크다운을 잘 활용해보자!
  • 중요한 부분에 볼드, 밑줄 등의 효과를 사용해서 키워드가 한 눈에 보이도록.
  • 구구절절 절대 금지! 길다고 무조건 좋은 게 아니다.

 

이 정도의 배움을 얻었다. 쉽게 읽히는 글을 쓰는 사람이 되어야 겠다.

기획문서를 쓰는데 시간을 3-4일 정도 썼지만, 한 번 제대로 쓰고 나니 다른 부분은 나름 수월하게 진행되었던 것 같다. 팀 이름과 서비스 이름도 정하고, 기능 정의, 와이어 프레임, API 명세서 등을 작성했다.

 

요약하자면 이런 프로젝트를 시작하게 되었다.

 

  • 1인 가구를 타겟으로 한 서비스
  • 혼자 사기 부담스러운 물건들이 있는 경우에 글을 올려 함께 살 사람들을 구하는 커뮤니티.
  • 채팅, 참여 요청 시 알림, 위치 기반 검색, 평가 등의 기능 제공.

 

 

기술

프론트엔드에서 사용하기로 한 기술들은 다음과 같다.

  • react
  • typescript
  • axios
  • react query
  • zustand
  • tailwindcss
  • react-hook-form
  • 다음 주소 API, 카카오 지도 API

 

우선 타입스크립트 사용에 대해서는 팀원(프론트엔드 3명) 모두가 동의를 했다. 나도 지난 개인 프로젝트에서 처음 제대로 사용을 했었는데 개발 과정에서 길잡이 같은 역할을 해주었다고 생각하기 때문에, 너무 만족스러웠다. 쓰지 않을 이유가 없었다.


그리고 CSS는, 다른 팀원 분들이 각각 이전 프로젝트에서 css module, styled component를 사용하셨는데 이번에는 tailwindcss를 써보고 싶다고 적극 제안을 주셔서, 지난 개인 프로젝트에 이어 이번에도 tailwindcss를 사용하게 되었다. 사실 나는 shadcn/ui 같은 라이브러리도 사용하고 싶었는데, 다른 팀원분들께서 직접 tailwindcss를 사용해서 스타일링하는 능력을 증명하는 게 좋을 것 같다고 하셨고, 나도 동의하게 되었다.

 

전역 상태 관리 라이브러리는 세 팀원 모두 이전에 recoil을 사용했다는 점이 신기했다. 다만 이번에는 다른 라이브러리를 사용해보자는 데에 의견이 모였다. 아무래도 현업에서는 아직 redux가 많이 쓰이기도 해서 redux 이야기도 나왔는데 프로젝트 규모, 우리에게 주어진 시간에 비해서 너무 복잡한 라이브러리가 아닐까 싶었다. 그래서 요즘 많이 쓰이기도 하고, redux와 같은 flux pattern을 사용하는 zustand를 제안했다. 처음에는 너무 어려울까봐 '그냥 jotai 쓸 걸 그랬나..? 라는 생각을 잠시 했지만, 공부해보니 zustand도 별 것 아니었다. 이에 관련해서는 따로 포스팅해야겠다.

 

 

마무리, 그리고 했던 생각들.

함께 일하고 싶은 팀원, 동료가 되고 싶다.

 

팀 프로젝트, 뭐 별 거 있을까? 혼자 하던 것을 여러 명이 하는 거 아냐? 하고 안일하게 생각했는데 시작한 지 1주일만에 많은 것을 배우고 또 느꼈다. 가장 큰 생각은 '함께 일하고 싶은 사람'이 되고 싶다는 것.

 

소통을 위해서는 이해가 전제되어야 한다. 전체적인 프로젝트에 대한 이해도가 높아야 다른 팀원이 이야기하는 것에 대해 이해하는 데에 막힘이 없을 것이라고 생각했다. 나는 프론트엔드 개발자지만, 백엔드에서 어떤 일을 하는지에 대해서도 조금씩 더 공부해보고 싶다는 생각이 들었다. 그리고 최대한 빨리 피드백을 줄 수 있는, 믿음직스러운 동료가 되어야겠다는 생각.

 

전체적인 개발 프로세스에 대한 생각.

(아직 이 부분에 대해서는 더 알아가고 있어서 글이 두서없을 수 있다.)
어쨌든 프론트엔드 개발과 백엔드 개발은 이렇게 독립적으로 이루어지는거구나 싶었다. 백엔드에서 제공한 API를 사용하는 건 맞지만, 그 API가 나오길 기다리는 게 아니라 mock server를 이용해서 개발을 해나가야 한다. 게다가 프로젝트가 완성되어도 백엔드의 서버는 계속 유지할 수 없고, 포트폴리오 제출 시에는 따로 이 사이트를 유지시킬 다른 방법을 찾아야 한다. msw를 사용할지, json-server를 사용할지에 대해서 고민하고 있다.

 

 

본격 개발 시작

기획이 끝나고 전체적인 프로젝트 세팅, 깃헙 레포도 만들었으니 이제 진짜 개발 시작이다! 팀원들과 좋은 팀워크를 만들어나가며 2주차도 열심히 해보자!