중간 팀 프로젝트 회고!

JaeungE·2022년 6월 26일
2

회고

목록 보기
2/3

프로그래머스 프론트엔드 데브코스 2기를 진행하면서 아기다리 고기다리던 첫 번째 팀 프로젝트!

약 2주 정도의 기간 동안 주어진 시간에 비해 많은 기능을 구현하려다 보니 아쉬운 부분도 많았지만, 해당 기간동안 배울 점은 굉장히 많았다고 생각한다.

그렇게 완성된 결과를 간략하게 표현해보자면.....



어쨌든 돌아가기는 한다.

그럼 이제 본격적인 회고를 시작해보자!





프로젝트 소개🧐


다양한 주제를 가지고 여러 사람들과 의견을 나눌 수 있는 토론 커뮤니티(온라인 콜로세움) 서비스!

배포 주소: https://melodic-fenglisu-afc3b8.netlify.app/



주제 선정

프로젝트 주제는 각자 아이디어를 내고, API에 따라 구현이 어려울 것 같은 프로젝트는 배제한 뒤 각자 투표를 통해서 선정되었다.

요즘 자주 거론되는 깻잎 논쟁, 새우 논쟁, ~~논쟁 등 다양한 논쟁에 대해서 의견을 한 곳에 모아볼 수 있는 서비스가 있으면 재밌을 것 같다고 의견을 제시해주신 팀원이 있었는데, 다른 팀원들도 모두 좋은 아이디어라고 생각해서 이 부분에서는 의견 충돌이 없었던 것 같다.

주제 선정과 같은 방식으로 서비스 이름 선정도 일사천리로 진행되었다.

왠지 초특가로 진행될 것 같은 이름이 보이지만 일단 넘어가자.



기술 스택

기술 스택은 좀 더 나은 UI를 위해서 라이브러리를 가져다 썼다는 것을 제외하고는, 초기 기획 단계에서 정했던 내용에서 크게 벗어나지는 않은 것 같다.

또한 팀원의 제안으로 기존에 사용해보지 못 했던 도구들을 사용해서 프로젝트를 진행해 보았는데, 특히 Jira각 팀원이 어떤 기능을 담당하고 있고, 작업이 어디까지 진행되었는지 한 눈에 파악하기에 편해서 덕분에 매일 아침 진행하는 회의 시간이 조금은 짧아졌지 않았나? 생각된다.





다양한 이슈들💥


주어진 시간이 길지 않기 때문에 초기 기획을 빠르게 끝내고 최대한 빠르게 개발을 시작했는데, 이것이 추후 지옥문이 열리는 시발점이였다.

이 부분은 나중에 얘기하기로 하고 일단 일어난 일들을 정리해보자.



서버 폭.발.🌟

게시물 좋아요 기능을 구현하고 있었는데, 더미 데이터로 테스트까지 모두 마친 뒤 문제가 없다고 생각해서 API 연동 작업을 하고 있었다.

그렇게 API 연동까지 무사히 마치고 테스트를 위해서 버튼을 클릭했는데 네트워크 에러가 발생했다.

대수롭지 않게 로직에 문제가 있나보다~ 하고 수정하려는 찰나, 팀원 중 한 분이 말씀하시길

저희 서버가 다운됐는데요?



아....

원인은 서버에 네트워크 요청 시 특정 테이블의 id를 의존하는 요청이면, 존재하지 않는 id로 요청을 보낸 경우 서버가 죽어버렸다.

처음에는 원인도 몰라서 헤매다가, 결국 비슷한 문제로 서버가 터지고 난 뒤에 원인을 특정했기 때문에 해당 문제로 전체적인 작업이 꽤 딜레이 됐었다.



일정 관리

팀원들 중 한 분을 제외하고는 모두 팀 프로젝트 경험이 전무했기 때문에, 일정 산출에 있어서 부족한 부분이 많았다.

그래서 초기 기획 단계에서 정한 일정과, 실제로 프로젝트 중간에 변경된 일정은 아래처럼 희망편과 절망편으로 나뉘게 됐다.

희망편(좌), 절망편(우)

bug hotfix는 거들 뿐…



코드 리뷰

원래는 각자 맡은 역할에 따라 개발을 진행하고, 완료된 기능은 github에 pr을 올린 뒤 최소 2명이 확인하고 수정 후 merge하는 방식으로 진행됐었다.

하지만 위의 절망편 일정을 보면 시간에 쫒겨 여유가 없었기 때문에 뒤로 가면서 한 명만 확인하고 merge하는 식으로 진행됐는데, 이건 기한에 맞춰서 개발을 끝내려면 어쩔 수 없는 선택이였다고 생각한다.😥



잦아지는 회의

처음에 말했던 초기 기획 단계에서 구체적으로 정의하지 않고 넘어갔던 문제들이, 결국 프로젝트 중 후반부에 터지면서 해당 문제들을 해결하기 위해 회의 횟수가 늘어나는 결과를 낳게 되었다.

팀장으로 해당 부분에 어느정도 책임을 느끼고 자책하고 있었는데, 멘토님이 "모든 프로젝트에 완벽한 계획과 기획은 없다." 라고 말씀해 주셔서 마음이 한결 가벼워 졌었다.





그래서 결과는 어땠는가?🤔


이런 저런 많은 문제들이 있었지만 팀원분들 모두 소통도 잘 되고, 좋은 의견은 적극적으로 수용하며, 열정적으로 개발에 임했기 때문에 무사히 프로젝트를 끝낼 수 있었다고 생각한다. 팀원들에게 정말 감사합니다!😭

아무래도 첫 프로젝트다 보니 기술적인 성장보다는, 협업 시 전체적인 작업 흐름을 익히는 경험이었다고 생각하고, 간단하게 좋았던 점과 아쉬웠던 점을 적어보면 다음과 같다.



좋았던 점

  • 팀원 모두가 적극적으로 의견을 내고, 소통 과정에서 큰 문제가 없었다. 그래서 프로젝트를 진행하면서 서로 감정 상할 일도 없었던 것 같다.

  • 팀원 중 새로운 기술의 도입(라이브러리, 협업 도구)에 부정적이신 분이 없어서 새로운 경험을 해볼 수 있어서 좋았다.

  • 개발 후반부에는 특정 이슈에 대해서 페어 프로그래밍을 자주 진행했는데, 같은 문제에 대해서 서로 의견을 공유하고 더 나은 방향으로 개선하는 과정이 정말 좋았다.



아쉬웠던 점

  • 아무래도 위에서 말했던 초기 기획의 부실함 때문에, 리팩토링 과정에서 고쳐야 할 부분이 굉장히 많았다.

    나는 전체적인 디자인 리팩토링을 담당했었는데, 각 페이지 마다 시멘틱 태그 사용 유무 및 여러 스타일이 달라서 수정하는데 꽤 고생했다.

  • 코드 리뷰를 진행하면서 다른 사람의 코드를 읽어야 하는 일이 많았는데, pr 단위가 커서 코드 리뷰에 시간을 너무 많이 쓰게 되는 경우도 있었다.

  • 짧은 시간 안에 많은 기능을 구현해야 하다 보니, 전체적인 디테일이 조금 떨어지게 된 것 같다. 특히 개발 막바지에는 거의 주먹구구식으로 구현하게 돼서 아쉬움이 많았다.

  • 위와 같은 이유로 컴포넌트 추상화에 신경을 쓰지 못한 것과, 반복적으로 사용되는 로직을 Hook으로 분리하지 못한 것이 많이 아쉬웠다.





마무리


개발을 시작하고 처음 경험해본 팀 프로젝트였는데, 기능 구현할 때 만큼은 정말 재밌게 개발했던 것 같다.

이번 프로젝트에서 아쉬웠던 점은 오히려 다음에 진행할 프로젝트에서 더 나은 개발자로 성장할 수 있는 거름이 되어줄 거라 생각한다.

이렇게 경험을 쌓아가며 프로젝트 초기 단계에서 많은 것을 고려하는 개발자가 될 수 있도록 노력해야 겠다.

앞으로도 화이팅!🔥

2개의 댓글

comment-user-thumbnail
2022년 6월 27일

프로젝트 고생 많으셨습니다 👏👏👏

1개의 답글