June 26, 2022
데브코스의 절반 이상을 함께한 팀원들과의 프로젝트가 끝났다.
우여곡절이 많았지만, 처음에 완성하고자 하는 방향성으로 잘 나아간 프로젝트라고 생각한다.
GitHub - prgrms-fe-devcourse/FEDC2LUVOOKJieun: 📚 지금 당신에게 필요한 책, <러북>
프로젝트를 하면서 가장 기억에 남는 부분과 핵심이라고 생각하는 부분이다.
컴포넌트의 재사용성에 대한 자료를 꽤 찾아봤던 것 같다. 그 중에서 제일 기억에 남는 것은 FeConf Korean에서 원지혁님이 발표하신 컴포넌트 다시 생각하기. 였는데, 내용 중에서 리모트 데이터 스키마의 숨은 의존성 이라는 내용이 특히나 와닿았다.
특히, 프로젝트 전날에 API 스펙의 변경되는 이슈가 있었는데, API 스펙과 강하게 연결되어있던 몇 요소 들에서 문제가 생겨 버렸다.
Promise.all
을 통하여 id를 통하여 다시 요청하는 함수를 통하여 id 값을 통하여 값을 불러오도록 하였다. 위의 컴포넌트 다시 생각하기의 발표에서 위에서는 ID만 받고 스키마는 전역 상태에서만 받자 는 내용이 생각났다.제대로 된 협업을 경험한 적이 거의 없었어서, 이번 프로젝트에서 특히나, 협업과 동료들을 통해서 많은 내용을 배울 수 있었다. 특히나 개발자들이 자주 사용하는 소통 툴을 이용하여 개발자 다운 소통을 할 수 있었다.
기본적으로 팀원들이 다 함께 있을 수 있는 환경이기도 했지만(마지막 날을 제외하면 거의 하루종일 같은 팀 내에서 의사소통이 가능한 환경이였다), 그럼에도 불구하고 발생할 수 있는, 불가피한 소통의 간극을 매우기 위해, 그리고 논의에 시간이 필요한 내용들을 나누기 위하여 노션에 각자 안건을 모아둘 수 있는 공간을 만들고 매일 시작스크럼마다 해당 내용을 공유하였다.
이런 방식으로 안건을 모아두어서 느낀 이점 중 하나는 실시간으로 말하는 것과 비교하여 어느정도 내 생각을 글로 정리할 수 있는 기회가 생겼다는 것이다. 단순히 “~가 편해서”, “~를 강의에서 사용하니까”와 같은 이유가 아니라 도입을 제안하고, 다른 팀원분들을 설득하기 위해서 나름의 이유를 생각하면서 조금 더 영혼을 탑재한 개발을 할 수 있었던 것 같다.
위에서 언급했다싶이, 개발자 다운 소통을 체험하기 위하여 다양한 소통 툴을 이용하였다. 여기서 개발자 다운 소통이 뭐냐?라고 물어보실 수 있어서 한 번 내 생각을 정리해보자면, 내가 생각하는 이상적인 개발자다운 소통이란 협업에 있어서 인간으로서의 소통 과 개발(코드)로서의 소통이 합쳐진 모양이라고 생각한다. 왜냐하면 나는 (여기서는 간략하게만 이야기하겠다. 이 이야기를 더 듣고 싶다면 개인적으로 연락을…) 개발에 있어서의 “소통”이라는 면은 사람과 사람, 사람과 컴퓨터, 컴퓨터와 컴퓨터의 여러 주체를 아우르는 소통이고, 이 소통은 얽혀있는 형태로 나타난다. (또한 이런 여러 주체들의 소통에서도 소통 방식에 따라서 말과 말의 소통, 말과 코드의 소통, 코드와 코드의 소통으로 다시 얽힌다고 생각하지만, 이걸로 글을 쓰게 된다면 앞으로 4시간 동안은 글을 써야하므로 이만 줄이도록 하겠다)
이런 소통 방식들은 이 애플리케이션들이 가지고 있는 실시간성의 강도에 따라서 각기 다른 형태로 사용하였는데, 팀 작업에서 어떻게 사용하였는지에 대한 이야기는 다음과 같다.
Github PR - 우리 팀의 경우 2명이상의 Approve를 받아야 merge 할 수 있는 룰이 있었는데, 덕분에 하기싫어도 코드 리뷰에 상당한 비중을 쏟을 수 밖에 없었고, 이 때 쏟은 비중은 이 후에 다른 팀원들이 만든 컴포넌트나 기능들을 활용할 때 시간을 크게 줄여줬다. 특히나 다른 분들도 열심히 코드리뷰를 해 주셔서, 다른 방식으로 작성된 코드들을 모두가 활용할 수 있었다.
개인적으로, 우리 팀의 작업 중 가장 마음에 들었던 부분 중 하나가, 코드를 작성할 때 남의 코드에 대해서 이해하지 못한 부분이 나도 없었고, 팀원들도 크게 없었다는 것이다. 이렇게 코드를 짜는 것과 코드를 읽는 것 역시 소통이라는 관점에서 생각해보면 위에서 말했던 대로 협업을 구성하는 ‘인간으로서의 소통’ 적인 면과, ‘개발로서의 소통’적인 면을 모두 잘 충족한 형태였던 것 같다.
Notion - 가장 실시간성이 떨어지는 방식이였다. 처음에는 Notion의 업데이트 소식을 슬랙 채널 알림으로 구독하려고 했으나, 생각보다 Notion의 세세한 방식까지 알림을 보내주는 바람에 채널에 Notion을 구독하지는 못하였다.
따라서 Notion은 비동기소통을 위한 장으로 주로 사용하였다. 또한 그런 특성덕분에 다른 소통 방식에 비하여 조금 더 정제된 내용을 작성할 수가 있었고, 이것은 문서화에 크게 도움이 되었다.
개발하면서 맞닦드린 일들과 공부한 내용을 조금씩 정리하였다.
사실은 3일에 한번 씩 쓰는게 목표였는데 시간이 지날 수록 개발 내용이 많아지고
버그 픽스가 많아지면서 점점 텀이 늘어나고 퀄리티도 조금씩 떨어지지만ㅋㅋㅋ
큼직큼직한 사건들은 다 기록할 수 있었어서 의미있는 기록이라고 생각한다.