프로그래머스 데브코스에서 처음 팀프로젝트를 진행했다!! 그동안 개인 프로젝트만 해와서 협업할 수 있는 기회인 팀 프로젝트에 대한 기대와 해낼 수 있을지에 대한 두려움으로 시작했다. Vue와 React 강의를 듣고 시작한 SNS 프로젝트로 4명이 팀을 이루어 프로젝트 기획, 아키텍쳐 설계, Git Flow, 코딩 컨벤션, UI/UX 디자인, 컴포넌트 구현, 퍼블리싱, 페이지 기능 구현, router 설정, API 연동, 코드 리팩토리, QA, 배포까지 전 과정을 협업을 통하여 프로젝트를 진행해갔다. 첫 회의에서 라이브러리를 리액트로 결정하였고, 팀원 모두가 리액트를 처음 접해보기에 강의를 듣고 구글링 등을 통하여 서로 모르는 부분은 물어가면서 공부해가며 진행하자고 해서 큰 부담감 없이 시작했다. 처음 개발 환경 구축과 깃 플로우에서 사용법이 익숙하지 않아 조금 헤맨감이 있지만 디스코드 화면공유를 통해 팀원들에게 도움을 받아 다음에는 잊어버리지 않고자 메모해가며 진행했다. 힘들었던 점은, 바텀업 방식으로 프로젝트를 진행하다 보니 컴포넌트나 페이지 기능 구현을 할 때, 팀원끼리 정한 날짜까지 맞춰서 구현하지 못하면 그다음 상황으로 진행이 어렵다고 생각했다. 그래서 내가 해볼 수 있는 노력은 모두 해보고 너무 오랫동안 잡고 있다고 느끼면 현재 온라인 상태인 팀원에게 도움을 요청하여 문제를 해결할 수 있었고 여기서 도움만 받고 끝나는 게 아니라 도움받은 것을 내 것으로 만들어서 나중에 다른 팀원에게 도움이 될 수 있도록 많이 노력했다. 어려웠던 점은, 주제 선정, 주요 기능, 와이어 프레임 구성, 컴포넌트 구현, 퍼블리싱 작업까지는 나름 순탄하게 흘러갔다. 하지만 API를 연동하고 상태 관리를 구현하는 부분에서 기술적으로 큰 어려움이 많이 느꼈다. 프로젝트 제출 기한 일은 정해져있고 그 안에 기능 구현을 해내야 하니 전체를 비슷하게 분배하여 각자 개발하는 방식에서 조금 더 빨리 끝낸 팀원이 덜한 팀원의 일을 가져가서 해결하는 방식으로 방식을 바꾸었다. 팀원의 도움 덕분에 내가 해낼 수 있을 만큼의 할당량을 가지고 구현을 완료할 수 있었다. 강의를 듣기만 했을 때는 구현할 수 있을 것 같았는데 막상 직접 해보니 예기치 못했던 상황이 많았고 기술에 대한 부족함도 몸소 느낄 수 있었다. 앞으로는, 프로로젝트 제출을 마치고 리액트 강의를 기초부터 다시 복습한다는 생각으로 차근차근 들으며 TIL 작성도 잊지 않고 하고 있다! 이번 프로젝트를 통하여 최종 프로젝트에서 프로젝트를 어떻게 해나가야 할지, 기술적으로 어떤 부분을 더 보충해서 프로젝트에 임할지 심각하게 생각해 본 소중한 경험을 했다. 마지막으로 우리 마크 1팀의 재간둥이들이 없었다면 시작도 중간도 마무리도 모두 없었을 정도로 도움을 많이 받고 의지하고 또 협업이란 이런 것이란 걸 많이 배우게 되었다. 너무나도 고생했고 진심으로 고맙다고 남기고 싶다. 👨👨👧👧 💛
- 네명 모두 리액트에 대한 이해도가 부족한 상태에서 시작했지만 다같이 열심히 학습하면서 프로젝트에 임했던 점이 좋았다. - 제한 시간 내에 문서 정리, 일정 조율, 개발, 학습 등 여러가지 일을 병행하며 프로젝트를 진행해야 하는 점이 힘들었지만 그만큼 배울점이 정말 많았다. - 혼자 개발하다가 협업툴을 이용하여 협업을 할 수 있는 환경을 경험할 수 있어 협업 시, 어떤 문제를 겪을 수 있고 조심해야 하는 상황에 대해 미리 경험해볼 수 있어 좋았다. - 아이디어 논의 때 서로 다양한 아이디어를 들을 수 있어 좋았다. - 각자 개인이 작업을 끝내는 데에 소요되는 시간이 차이가 있어 어려움을 겪었는데 개인의 역량을 고려하여 작업을 분배함으로써 해당 문제를 해결하는 경험을 해볼 수 있어 좋았다.
- 프로젝트를 진행하면서 만나게 되는 많은 문제들을 해결해보는 시간을 가질 수 있어 좋았다. - 상태를 관리하기 위해 useState, useReducer 2가지를 직접 사용해보면서 각각의 상황에서의 불편한점과 편한점들을 느껴볼 수 있어 좋았다. - 하나의 기능을 만드는데도 생각보다 고려할점이 많다는점을 느꼈다. 예를 들면 삭제 기능의 경우 단순히 삭제 기능만 추가하는것이 아니라, 글이 정상적으로 삭제된 경우 페이지를 다시 어디로 라우팅해야 하는지 정하기도 하고, 만약 접근권한이 없는 경우에는 어떤 에러를 출력하거나 혹은 아예 삭제 버튼을 보이지 않게 만들지를 고려했어야 했다. - 남들이 사용했던 규칙들, 특히 깃과 같은 경우에 작은 프로젝트에서 사용하기에 너무 과하다고 생각하는 점도 느끼고 팀끼리 협의를 통해 개선하는 좋은 경험을 했다. 예를 들면, 이슈를 작성하고 PR을 작성하면 이후 팀원간의 미팅을 통해 코드 리뷰를 진행해 통과가 되면 머지하는 방식으로 진행을 했는데, 코드 리뷰시 서로 ‘좋아요 좋아요’만 하는 경우가 많아 사실상 매번 스크럼시에 시간을 낭비하는 느낌이 있었다. 이후 코드리뷰는 진행하지 않도록 하고 스크럼 시간도 단축시켜 보다 빠르게 프로젝트를 진행할 수 있었다.
- 첫 팀프로젝트라 그런지 모든 것이 새로웠던 경험이었다. 처음에는 프로젝트를 어떻게 진행하고 협업을 어떤 방식으로 진행할 지에 대한 감이 오질 않아서 막막했지만, 팀원들이 리드해준 덕분에 어느 정도 익숙해진 것 같아 참 좋았다. - 처음에는 무엇보다 깃을 사용하는 데에 있어서 두려움이 있었다. 괜히 내가 잘못해서 작업물이 날아가지 않을까?하는 막연한 두려움이 있었지만, 팀원들과 하나씩 진행해보면서 깃에 대한 이해가 되기 시작했다. 또한, 프로젝트 이전에는 터미널을 이용해서 깃을 사용했지만 보다 쉽게 vscode로 사용하는 법을 배울 수 있었다. 그리고 깃 이외에도 지라와 컨플루언스를 이용하여 문서 정리를 어떻게 체계적으로 하면 좋을지에 대해 배울 수 있는 좋은 계기가 되었던 것 같다. - 리액트 자체가 처음이었기 때문에 학습을 병행하면서 프로젝트를 진행한 점이 조금 힘들었던 것 같다. 하지만 힘든 부분을 공유할 팀원들이 있어서 걱정을 한시름 놓을 수 있었고, 무엇보다도 프로젝트 기한에 맞춰 완성하는 것이 중요하기 때문에 선택과 집중 또한 중요하다고 느꼈다. - 프로젝트를 진행하면서 api를 연동하는 부분에 많은 기초 지식이 부족하다고 느꼈다. 따라서 프로젝트 이후에 부족한 부분을 내것으로 만들어야 겠다는 굵직한 목표가 생겼고 다음 프로젝트에는 더 단단한 내가 되어야겠다.