팀 프로젝트, 첫 번째 경험
2021년 8월 13일 최종 발표를 마지막으로 부트캠프의 1차 프로젝트가 마무리 되었습니다. 총 6명의 팀원이 ‘LUSH’라는 코스메틱 사이트를 클론하는 프로젝트였죠. 개인적인 기준에선 만족스러운 경험이었습니다. 프로젝트 전보다 자신감이 생겼고, 그 전에 없던 ‘확신’이 들었기 때문이죠. 경험해 보지 않아 막연하게 느껴지던 많은 것이 해소되었습니다. 마치 톨개이트에서 막혔던 차량들이 고속도로에 진입한 후 달려나가듯 더 이상 흔들리는 느낌을 받지 않습니다. 2주의 짧은 경험이 이렇게 많은 도움이 될 지 전혀 상상하지 못했습니다. 물론 어려움도 있었지만, 어려움 마저 해결해나가는 ‘맛’이 있었던 1차 프로젝트를 지금부터 회고해 보려고 합니다.
지금까지의 팀 프로젝트 경험
앞서 말했지만, 어려서부터 개인 스포츠와 개인 프로젝트(팟캐스트, 유튜브, 개인 운동관리)를 구성하는데 익숙했던 저에게 팀으로 협업하는 과정은 늘 동경의 대상이었습니다. 스케이트를 탈 때는 하키 팀원들과 어떻게든 친해지려고 노력했고, 개인 공부만 지겹게 하던 재수가 끝나자 동아리, 그룹 스터디 등등 동료와 함께하는 것에는 되도록 참여하려고 노력했습니다. 스스로를 관리하고 제어하는 것에는 익숙했지만, 남과 함께 공통의 목표로 달려나가는 것에는 익숙하지 않다고 느꼈나봅니다. 노력은 나름 결실을 맺었습니다. 전역 후 진행한 학과 내 연구 프로젝트(대학 인문 역량 강화 사업), KOICA 프로젝트 봉사단(팀 봉사단) 등을 통해서 팀과 협업하는 경험을 쌓고 남들과 함께 이뤄나가는 성취가 홀로 하는 성취와는 다른 즐거움을 준다는 것도 느꼈죠. 특히 개인적으로 내향적이라고 생각했던 그 시기에 저는 일부러 집단의 대표가 되거나 발표를 하는 자리에 스스로를 밀어넣으려고 노력했습니다. 많은 청중 앞에서 올바른 표현과 소통에 익숙하지 않았던 저는 이 점을 극복하기 위해 부단히 노력했습니다. 아직도 100% 만족스럽지 않아서 지금도 가능하다면 대표하는 위치의 경험을 하는 것을 원합니다.(이 이유로 이번 프로젝트에서도 PM 역할을 맡게 되었습니다.) 이런식의 나름의 팀프로젝트 경험은 저를 조금 나아지게 했습니다. 그럼에도 ‘개발’이라는 분야의 프로젝트는 또 다른 경험이었습니다.
SCRUM과 Agile과의 첫 만남
이번 프로젝트를 통해 배웠던 가장 생소한 경험은 SCRUM 방식의 프로젝트 진행이었습니다. 애자일 개발 프로세스를 의미하는 SCRUM 방식은 지금까지 진행한 방식과는 달랐습니다. 기본적인 가치를 제공하는 작은 feature를 만들고 거기에 살을 붙여 나가는 방식의 진행이 흥미롭기도 했죠. 그 전까지 제가 진행한 대부분의 프로젝트는 하나의 최종 목표를 정하고 그곳으로 달려나가는 방식이었습니다. 중간에서 멈추게 되면 아무것도 남지 않는 마치 All-or-Nothing 방식이었습니다. 그러나 SCRUM은 달랐죠. 제품이 제공하는 최소한의 가치를 feature로 만들고 그 기능에서 불편한 점을 개선하거나 부족한 부분을 덧붙이면서 발전해 나갑니다. 중간에 멈추더라도 그동안 개발한 성과만큼 가치를 제공할 수 있는 상황을 만드는 것이죠. 또한 개발 상황에 따라 유동적인 테스트와 소통을 위해 매일의 작은 회의, 한 주동안의 sprint 계획, sprint 후 회고로 이뤄지는 간결하면서 치밀한 프로세스는 인상적이었습니다. 정확히 이행만 된다면 팀원과의 소통을 위해 과도하게 회의나 모임에 의존하지 않아도 되는 효과적인 계발 과정이었죠. 처음 경험했기 때문에 간결한 회의 진행과 효과적인 업무 분배를 순탄하게 진행하지 못했습니다. 그러나 2주차가 되면서 어느정도 능숙해지고 이런 능숙함이 결과물로 반영되는 것을 보며 굉장히 즐겁게 작업하는 경험도 했죠.
가장 중요한 가치부터 차근차근
개인적으로는 제 맡은 페이지가 가진 가장 중요한 본질을 먼저 feature로 생산하고 거기에 살을 붙여 나가는 식으로 개발했습니다. CSS와 레이아웃을 최소한으로 가져가고 전달하는 가치를 먼저 고민했죠. 제 업무는 제품 list를 보여주는 창이었습니다. 때문에 가장 먼저 제품과 카테고리를 보여주는 창을 만들자는 계획을 새웠죠. CSS, 이미지, 소팅 등 고민 없이 아이템만 보여주는 리스트를 만들자고 계획을 세우니 작업은 빠르게 진행되었습니다. 2일 정도만에 백엔드와 소통을 통해 아이템을 보여주는 창이 구축되었습니다. 이후 8일에 걸친 작업은 살 붙이기와 보완, 테스트였습니다. 살 붙이는 과정도 더 중요한 가치를 전달하는 순서로 구성했습니다. 아이템을 보여주는 것을 목표로 삼고 그것을 먼저 완성했습니다. 이후 카테고리 별로 나눠서 보여지는 기능을 추가했죠. 이후에 각 카테고리별로 다른 페이지에서 보여지는 효과를 줬고, 최종적으로 가격순, 제품 특징 순으로 소팅하는 기능을 추가했습니다. 페이지네이션이나 화려한 CSS 작업은 일단 뒤로 미뤘습니다. 물론 보여지는 것이 중요한 frontend지만 리엑트를 이용해 최대한 좋은 코드를 짜고 싶었습니다. 때문에 보여지는 작업보다 내 페이지가 사용자에게 전달하는 가치가 무엇인지 고민하는데 더 시간을 투자했던 프로젝트였습니다. 결과적으로 가치 전달에 집중하다보니 순서대로 업무를 효과적으로 처리할 수 있었고, 이로 인해 시간이 절약되었습니다. 절약된 시간만큼 최종 발표를 앞 두고 CSS에 집중할 수 있었죠.
경험할수록 겸손해진다
물론 제 방법이 맞는지 더 효과적인 방법이 있는지는 모르겠습니다. 그래도 SCRUM 방식 안에서 내 나름의 기준을 세우고 계획하는 경험을 했고, 작은 성공을 맛봤다는 것은 분명 큰 성과였고 자신감이 붙었습니다. 그럼에도 쉽게 사람을 자만하지 못하게 하는 것이 개발이라는 분야의 특징인 것도 경험했습니다. 우리 팀내에는 저보다 훨씬 훌륭하고 겸손하신 프론트엔드 개발자 세 분이 계셨습니다. 매일 매일 그분들을 통해 배우는 내용은 기존에 혼자 공부하던 것보다 훨씬 진한 자극을 줬습니다. 제가 발견하지 못하는 가벼운 시각적 오류나 허술한 구성은 모두 그분들이 고쳐줬습니다. 또 지나치면서 툭툭 조언을 해주시는 분도 계셨는데, 왜 그렇게 생각하지 못했나 하면서 스스로를 반성하게 했죠. 또한 전혀 모르는 분야인 백엔드 팀원들은 제겐 또 다른 멘토였습니다. 첫날엔 그분들의 표현을 한 마디도 못 알아들었지만, 없는 시간을 쪼개 무지한 저를 가르쳐주셨습니다. 덕분에 이제서야 까막눈 정도는 벗어날 수 있었네요. 제가 모르는 분야를 능숙히 다루는 그분들이 너무나 멋졌고 그 덕에 나중에 꼭 node.js를 공부해 봐야겠다는 결심을 굳히게되었죠. 공부하고 알아갈 수록 배울것이 더 보이는 기분입니다. 오만한 제 자신을 겸손하게 만드는 경험이 나쁘지는 않았습니다. 이 역시 프로젝트에서 얻은 큰 성과입니다.
첫 번째 사점 통과
전에도 블로그에 개시했지만 전 모든 일을 운동의 관점에서 해석하길 좋아합니다. 요즘은 달리기에 집중하고 있기 때문에 세상이 다 러닝으로 보이는데요. 이번 프로젝트를 한 마디로 정의하자면 ‘첫 사점 통과’라고 말할 수 있을 것 같네요. 8월 10일 2주차 프로젝트의 복판에서 신기한 경험을 했습니다. 너무 신기해서 다른 동기들과 공유하기도 했는데요. 제 머리속 지금까지 배웠던 지식들이 조금의 규칙성을 가지고 다시 보이기 시작했습니다. 더 똑똑해졌다는 것이 아닙니다. 지식의 정도는 그대로인데, 어떤 지식이 어디에 필요하는지 또한 어디가 어느 정도 부족한지 조금 보이는 경험을 했던 거죠. 그날 코딩은 기가 막히게 잘 됐습니다. 배웠던 컴포넌트와 리엑트 라이프 사이클 규칙이 톱니바퀴처럼 맞물려 쏟아내듯 코드가 나왔죠. 너무나 즐거웠습니다. 아니 정확히 말하자면 편안했습니다. 코딩 한 줄 한 줄이 늘 버거웠는데, 그날은 자연스럽고 편안하게 나왔습니다.
러닝을 하다보면 호흡이 꼬이고 몸이 말을 안 듣는 지점이 옵니다. 학교에선 사점이라고 배웠는데. 달리는 입장에선 영 불편한 요소죠. 저는 개인적으로 5000m를 달리다보면 3번의 사점을 경험합니다. 첫 1km지점에서 한 번, 3500-5000m 지점에서 컨디션에 따라 1-2회 경험합니다. 사점은 달리는 것을 괴롭게 하지만 통과만 하면 너무나도 편안하게 발이 나갑니다. 마치 제가 편안하게 코딩을 했던 경험과 일치하죠. 전 이번 프로젝트를 통해 첫 번째 사점 통과를 경험한 것입니다. 물론 이 사점이 마지막은 아니란 것은 압니다. 그럼에도 이번의 편안한 코딩의 경험은 제가 다음 사점을 만나 코드를 짜는데 어려움을 겪더라도 이겨낼 소중한 기억이 될 것입니다.