현재 UMC라는 IT 연합 개발 동아리를 진행하고 있다. 학기 중에는 파트 별 교내 스터디를 진행하고, 방학에는 팀을 꾸려 프로젝트를 진행한다. 규모가 꽤나 큰 동아리라, 가까이 위치한 학교 별로 지부로 묶어 프로젝트를 진행 하는데, 대략적으로 4~5개의 대학교가 하나의 지부로 묶여 프로젝트를 진행한다.
UMC는 Pre-Meeting Day라는 행사를 진행한다. 매 기수마다 프로젝트 시작 전, PM분들의 자신의 아이디어에 대한 발표를 진행하는 행사다.
우리 지부는 ERICA, 한국외대, 명지대, 가천대, 경희대 총 5개 학교로 이루어졌고, 약 15~20개 정도의 아이디어가 나왔다. 이번에는 가천대에서 진행 했다.
이 행사를 통해 대부분의 개발자들이 마음에 드는 프로젝트를 정할 것 이라고 생각한다. 나 또한 그랬다. 정말 실력 있으신 PM분들이 많이 계셨다. 실무 경험이 있으신 분도 계셨고, 인턴까지 하면서 UMC를 병행 하시는 분도 계셨다. (대단)
정말 좋은 아이디어가 많았고, 발표를 들으면서 고민이 많았다.
프로젝트 팀 매칭은 다음과 같이 이루어 졌다.
개발자가 1~10순위 까지 프로젝트 진행을 원하는 아이디어를 적어 낸다. 마찬가지로 PM도 파트 별로 원하는 개발자들의 포트폴리오를 보고 1순위부터 10순위 까지 적어 제출한다. 위 우선순위를 통해 매칭이 되는 시스템이었다.
10개의 팀을 골라야 하므로 발표를 정말 주의 깊게 들었다. 이후 뒷풀이에 가서도 다양한 PM분들과 이야기를 나눴다. 집에 오는 버스에서 생각해봤을 때, 내가 진짜 이 프로젝트 진행 하는거 아니면 안되겠다 싶었던 프로젝트가 하나 있었다. 그게 바로 “SPOT” 이었고, 바로 1순위로 적어냈다.
먼저 출시까지 생각하고 프로젝트를 계속 이끌어 갈 생각이 있는지 였다. 과거 진행했던 내 프로젝트들은 전시회를 기준으로 더 이상 디벨롭 되지 않았고, 그게 내게는 항상 아쉬움으로 남았다. 하지만 SPOT PM님은 데모 데이 이후에도 교내 창업 동아리나 공모전을 통해서 꾸준히 활동을 이어나가고 싶다고 이야기 하셨다. 이 점이 나는 매우 끌렸다.
두번째로는 아이디어를 구성하고 있는 기능들에 대해 한 번 도전해보고 싶었다. 구현 난이도가 어마어마하게 높은 기능들은 아니지만, 현재 인기 많은 커뮤니티 서비스들을 구성하고 있는 좋은 기능들 위주로 벤치마킹 하신 것 같아서 한 번 내 힘으로 구현 해보고 싶은 욕심이 생겼다.
마지막으로는 PM분이 자신의 아이디어에 대해 엄청난 확신(?)과 자신감을 가지고 계셨다. 이게 분명 꼭 성공할거야!!! 라는 확신은 아니다. 다른 PM분들은 서비스가 왜 필요하고, 어떤 니즈를 충족 시켜줄 수 있는지에 대해서 짧게 이야기 하고 넘어가신 반면에, SPOT PM님은 이 부분에 대해서 자신감 있게 말씀 해주셨고, 나 역시 공감했다. 이후 진행된 Q&A에서도 정말 막힘 없이 답변 하시는 모습을 보고 꼭 이 프로젝트 해야겠다고 생각 했다.
사실 PM님이 나한테 이것 저것 물어보셨다. 이 기능은 구현 난이도가 어떤지, 이렇게 해도 좋을지… 등등…
예전에 김영한님의 “좋은 PM과 나쁜 PM” 이라는 영상을 봤는데, 개발자가 자기의 프로젝트라고 느끼게 하는 PM이 좋은 PM이다… 뭐 이런 비슷한 이야기를 들은 기억이 난다.
근데 맞는 말 같다. 화면 명세서를 보면서 이것 저것 이야기 나누다 보니 나도 모르게 스며든 것 같다.
프로젝트 매칭 결과가 나왔고, 다행히 “SPOT”에 참여하게 되었다.
PM님도 나를 좋게 봐주셨고, 그래서 잘 매칭 된 것 같다.
하지만, 이제는 실전이다. 이번 기수가 조금 활동이 늦어져서 데모 데이까지 약 한 달 반도 안남았고, 데모 데이 이전까지 기능을 얼른 구현 해야했다. API 연동 과정까지 고려 하면, 적어도 3주 내에 API를 대부분 완성해야했다. 다른 팀에 비해서는 구현 해야할 기능이 꽤나 많았다. 대략 봤을 때도 ERD 설계에 필요한 테이블의 수도 많아 보였고, 필요한 API도 상당히 많을 것이라고 생각 했다.
위 사진은 기능의 우선순위들이다. 데모 데이 이전까지 우선 순위 2번까지의 기능을 마무리 할 수 있도록 요구 하셨다.
이후, 이루어진 팀 회의에서 내가 서버 파트장이 됐다. 이왕 프로젝트 할거면 팀 리더로서의 역할도 한 번 해보는게 좋을 것 같다고 생각했다. 사실 처음 맡아보는 역할이라 걱정 됐지만, 나름 겪어온 다양한 경험을 바탕으로 문제 없이 잘 해보겠다고 했다!
그리고 매 주 토요일마다 대면 개발 시간을 갖기로 했다. 확실히 팀워크도 좋아지고, 파트 별 소통도 수월할 것 이라 생각했다.
첫번째 과제로 이제 각자 ERD 설계와 API 리스트 업을 첫 대면 미팅 전 까지 진행 해보자고 했다.
이후 대면 회의를 통해 각자 작성한 ERD를 바탕으로 피드백 하면서 확정 짓기로 했다. 그리고 작성해온 API 리스트 또한 종합 해서 필요한 API들을 대략적으로 구상 하여 API 명세서의 틀을 잡아 보자고 제안 했다.
물론 ERD 설계와 API 명세서 작성은 중요하고 많은 시간을 투자 해야 하는 작업이라고 생각한다.하지만 팀원 중 한 분은 개인 일정으로 인해 원활한 개발 참여가 어려운 상황이셨고, 한 분은 프로젝트 경험이 많이 없으셨다. 또한 남은 기간에 비해 개발할 기능이 많다고 생각 했기 때문에 첫 주 내에 위 두 작업을 마무리 하고, API 명세서를 작성한 뒤, 빠르게 개발에 들어가야 한다고 생각 했다.
위 이미지가 내가 작성한 ERD다.
팀 리더로써 모범(?)을 보이고자 바로 ERD 설계와 API 리스트 업을 진행 했다. 사실 프로젝트 매칭 이전에도 화면 설계서를 보면서 어떻게 ERD를 설계 할지나 어떤 API가 필요할 지 많이 생각 해보고 고민 했었던터라 크게 어려움 없이 진행 했다.
그래서 제일 먼저 작성해서 Slack을 통해 팀원들에게 공유 했고, 부담 없이 참고 하면서 진행 할 수 있도록 했다!
이후 포스팅을 통해서는 더 디테일한 프로젝트를 진행하며 겪은 이슈나, 느낀 점 또는 내 고민의 과정들을 공유 하고 싶다. 물론 기술적으로 잘못된 내용이 있을 수 있지만, 성장하고 싶은 주니어 개발자의 귀여운 노력으로 봐주시면 감사하겠습니다😃