2차팀원들하고 약 한달동안 진행한 프로젝트가 마무리 되었다. 한달이라는 기간은 참 짧은것 같기도하면서 길다고 느껴진다. 처음에 주어진 요구사항을 보고 생각보다 구현해야 할 내용이 많아서 겁먹고 과연 할수 있을지 걱정이 되었는데 협업의 힘은 굉장했다. 다들 열심히 한마음으로 목표를 향해 달려갔기 때문에 가능했던 것 같다.
Yap!(내가 음악 추천해줄게) 서비스는 간단한 음악 공유 사이트다. 기존의 음악 공유 사이트와 다르게 웹 사이트 내에서 이쁜 UI를 통해 실시간으로 스트리밍이 가능하고 다른 사람과 공유할 수 있다.
이외에 채팅, 알림, 검색 등의 기능도 존재한다!
이번 프로젝트를 경험하면서 얻은 지식과 문제들을 노션에 모두 정리하였다!!
사실 클릭해서 들어가보면 정말 별거 아닌 짧은 내용들도 있지만 사소한 내용이라도 나중에 또 사용되거나 할법한 내용들은 키워드만이라도 작성해놨는데 벌써 그 효과를 봤다. 한편으로는 벌써 까먹었나? 싶었을 정도로 스스로가 멍청하다 싶었지만 확실히 기록을 해놓으니까 다음에 와서 보고 적용할때는 그러지 않았을때와 비교했을때 시간단축에 큰 도움을 받을 수 있음을 느낄 수 있었다. 이제 어느정도 기록을 습관화하였는데 앞으로도 개인 공부든 프로젝트든 기록을 이어나가야겠다!!
나는 지금까지 협업에 대한 부정적인 시선을 가지고 있었다. 학교에서 했던 프로젝트를 진행하면서 "이럴거면 혼자 하는게 낫겠다.."라는 생각을 자주하곤 했었다. 업무 분담에 있어서 불균형, 비효율적인 방식, 여러 컨벤션의 차이 등이 주 원인이었다. 원인을 알았지만 문제를 고치는 것은 쉽지 않았다. 팀원들이 한 마음을 가지고 프로젝트가 끝날때까지 목표를 완수를 한다는 것이 뜻대로 되지 않았다. 물론 내가 더 노력을 하지 않아서, 좋은 리더가 아니라서, 또는 좋은 리더를 만나지 못해서 일수도 있지만 별개로 나에게는 이상적인 협업은 그림의 떡이었다.
그래서 협업이라는 것 자체가 과연 효율적인지도 모르겠고 과연 어떻게 해야 잘해야하는지도 몰라서 부정적으로 바라봤던 것이다.
하지만, 데브코스의 2차 팀원은 시작부터 달랐다. 본격적으로 개발을 시작하기 전 처음 일주일 정도는 서비스의 주제, 목표, 컨벤션 등 정할 것이 많았었는데 그 어떤것도 대충하지 않았고 모두가 온 힘을 다해서 제 역할을 해내는 것이 느껴졌다. 시간은 촉박했지만 덕분에 순조로운 출발을 할 수 있었다. 게다가 팀장역할을 맡으신 분이 실력도 좋고 소통을 워낙 잘하셔서 끝내 마음에 드는 서비스를 완성할 수 있었다! 이렇게 팀원들이 모두 으쌰으쌰 하는 마음을 가지고 첫 단추를 잘끼워 개발과 소통을 한다면 이상적인 협업이 가능하구나를 느낄 수 있었다.
우리 팀은 개발전에 이슈를 사전에 모두 생성했었다. 또한 플래닝 포커를 이용해 각각 이슈를 해결하는데 걸리는 예상소요시간을 정했다. 마감일외에 따로 데드라인을 잘게 쪼개서 일정관리까지 하다보니 좀 더 엄격한 룰 안에서 시간관리를 할 수 있어서 좋았지만 후반부에 갈수록 이를 제대로 지키지 못했던 점이 아쉽다. 아무래도 개발을 하다보면 내가 개발하면서 겪었던 문제들을 그라운드 룰에 맞지 않게 오래 고민하게 되는데 이로인해 시간관리를 제대로 하지못해서 발생한 치명적인 에러를 하마터면 마감일 내에 해결하지 못할 뻔했다. 다행히 팀원들이 한 마음으로 도와줘서 문제를 해결할 수 있었다.
프로젝트에 관한것이라면 더 적극적으로 공유하려는 습관이 필요해 보인다. 내가 혼자 학습할 때랑은 아예 다른 협업 환경이므로 시간관리에 좀 더 힘쓰고 긴장해야 한다. 그러기 위해선 문제를 만났을때는 그라운드 룰에 맞춰서 고민을 너무 오래하지 않고 바로바로 팀원과 문제를 공유하고 해결할 수 있어야 한다. 자기객관화를 통해 내 실력에 맞게 혼자 해결해야한다는 욕심을 버리고 반드시 팀원과 거리낌 없이 소통하려 노력하자.
이번 프로젝트를 진행하면서 새롭게 사용하게된 여러 라이브러리가 존재하는데 새로운 라이브러리 학습 시 라이브러리를 사용하지 않았을때와의 비교 학습이 덜 된것 같다. Yap에는 서버 상태 관리 라이브러리인 리액트 쿼리를 사용하였다. 하지만, 리액트 훅에 대해서 그렇게 깊은 이해를 하고 있지 않아서인지 이 라이브러리를 사용하지 않았을때와의 차이점을 중심으로 라이브러리 사용에 있어서 장점을 완전히 깨닫지는 못한 것 같다. 편하기는 한데 구체적으로 설명하기 어려운 느낌..? 이 들었다. 라이브러리를 사용하지않고 지금 구현한 기능을 완성해보면 완벽히 깨닫고 남에게 설명할 수 있을 정도로 차이점을 깨달을 수 있을 것 같다.
앞으로 하고 싶은 구현이라면 미루지 말고 마음껏 해보려한다. 프로젝트를 진행하면서 스스로 제일 부족함을 느꼈던 부분이 구현부분이다. 타입스크립트는 물론이고 리액트 사용에 있어서 전보다 나은 실력을 갖춘건 사실이겠지만 속도감에 있어서 아직 너무 부족함을 느꼈다. 이유를 생각해보니 결국 구현을 많이 안해봐서 인 것 같다. 물론, 구현에는 그냥 코드만 치는 것이 아닌 여러 고민이 수반되어야 한다고 생각한다. 이는 최근에 깨달은 사실이다. 이 프로젝트에서 구현한 코드양보다 이전에 프로젝트에서 구현한 코드양이 10배가 넘는다. 하지만, 모순적으로 이 프로젝트에서 얻은 지식과 경험들이 이전 프로젝트에서 얻은것보다 몇배는 되는것 같다. 결국, 구현에 있어서 성장이란 여러 고민을 통해 많은 코드를 치면서 기르는 것이라 생각한다.
이번 프로젝트는 협업 환경에서 팀원들과 소통을 더 적극적으로 하고, 개인적으로 많은 고민을 통한 구현 능력을 기르는 것이 필수적으로 요구됨을 느낄 수 있는 계기였다.