프로젝트

'15분이면 충분하다' 프로젝트 회고(42 코알리숑 해커톤)

susong 2023. 3. 24. 00:28
728x90

들어가면서

언제나 카뎃을 위해 힘써주시는 폴베님. 늘 감사합니다

42 이너서클을 끝내기까지 남은 과제 단 2개! 이제 정말 끝이 다가오니, 42에 대한 생각이 많아졌다. 이 곳에서 배운 것들이 너무 많아 앞으로 할 프로젝트에 있어서 자신감도 많이 붙었고, 앞으로 무엇을 해야할지에 대해서도 확신이 생겼다. 이제 내게 남은 것은 배운 것들을 갈고 닦는 시간이라고 생각할 무렵, 42내에 코알리숑 해커톤 공지가 올라왔다. 실력을 갈고닦을 순간이 필요했던 내게 이 해커톤은 좋은 기회가 될 것 같았고 우승을 목표로 이번 해커톤에 참여하게 되었다.


조별 만남

일주일 간 동고동락한 팀원들

'인사가 만사'라는 말이 있듯, 나는 해커톤에서 어떤 팀원을 만나냐가 결과물을 결정한다고 생각한다. 이번 해커톤은 내 의사가 반영되지 않는 완전한 랜덤으로 조별 매칭이 이루어졌고, gehan님과 sungwook님 이렇게 3명이서 팀을 이루게 되었다. 우리의 첫 인상은 매우 담백했던 것 같다. 다른 팀원들은 누가 조장을 할 것인지, 어떤 주제로 해커톤을 할 것인지 혹은 어떤 역할을 맡을 것인지에 대해서 하루종일 이야기하는 반면에, 우리팀의 경우에는 이 모든 것을 결정하는데 1시간밖에 걸리지 않았다. 

 

처음만난 사람과 해커톤을 하면서 그렇게 빠르게 의사결정이 가능한가? 싶을 수 있지만, 이렇게 빠른결정이 가능했던 것을 보니 우리의 팀워크가 잘 맞을 것이 예고되었던 것 같다. 우리는 내가 조장을 맡고, 서로 2개씩 생각했던 아이디어를 이야기 한 후 이 중 가장 괜찮았던 '평가 데이터 기반 솔루션'을 제작하기로 했다. 또, 역할에 있어서는 1주일이라는 시간을 고려 각자 잘하는 것을 하기로 했는데(1주일은 새로운 것을 배워서 적용하기에는 너무 촉박하다고 생각했다), 나 같은 경우에는 평가 데이터를 가져와서 DB에 넣는 역할 그리고 CI/CD 구축, 인프라 구축(DNS, CORS등 과같은 문제 해결)을 하기로 했다. 

 

가장 최근에 42.gg를 하면서 프론트 경험이 있으셨던 sungwook님은 프론트 작업을, 최근에 42mogle 프로젝트를 하면서 CICD 및 배포에 관심이 많았던 나는 인프라 및 데이터를 가져오는 일을, 그리고 gehan님은 최근에 JAVA spring을 살려 백엔드 API를 설계 및 구현해주셨다. 모두 관심사와 하고싶은 것들이 다르기에 빠르게 팀을 구성하고 팀웍을 살릴 수 있었던 것 같다.


우여곡절의 개발과정과 교통사고

우리는 Github를 통해 개발을 공유했고, 진행과정은 Project와 레포별 Issue를 이용했다.

해커톤이 시작되고 다음날 주제와 관련하여 각자 생각을 발전시킨 후, 우리는 모여서 우리가 어떻게 일할 것인지부터 결정했다. 우리에게 가장 친숙한 Github가 당연하게도 우리의 코드 보관소 역할을 하기로 결정되었고, 또한 우리는 Github를 통해서 일정을 결정하기로 합의했다. 자신이 하고 있는 모든 일들은 Projects를 통해서 관리되었고, 각각은 레포의 Issue를 통해서 설명되었다. 그렇게 서로가 지금 어떤 일을 하고 있는지 즉각적으로 알 수 있게 함으로써, 서로의 템포를 맞추며 개발을 해 나갔다.

 

가장 먼저 두각을 들어냈던 것은 Sungwook님의 프론트 분야였다. 피그마를 몇 번 다뤄보신적이 없다고 하셨는데 능숙하게 피그마를 통해서 자신이 생각하는 UI에 대해서 이야기해주셨다. 그렇게 우리는 공용 전자칠판에 UI를 띄우고 앞으로 어떤 데이터가 필요할지 그리고 어떤 API가 필요할지에 대한 이야기를 나누었다. 그렇게 프론트 분야에서 먼저 사용자에게 제공될 데이터를 사용자경험에 비추어서 제시해주니 그 다음은 정말 쉽게 풀리는 부분이 있었다.

 

데이터가 필요한 이유는 결국 사용자가 그것을 쓰기 위함인데, 다른 프로젝트들을 진행할 때에는 프론트와 DB가 따로 작업을 했던 것 같아서 이번 경험을 통해 많이 배울 수 있었다. 데이터가 왜 필요할까? 에 대해서 깊이있게 고민해보고, 결국 사용자를 위해 필요한 데이터이기 때문에 그것에 맞춰 DB를 짜는 것이 중요하다는 것을 깨달은 순간이었다.

 

그렇게 우리는 7일간 아주 몰입한 환경에서 코딩을 진행했다. 하지만, 몰입 6일차 그날도 해커톤을 위해 개포로 가고 있던 내게 안좋은 일이 발생했다. 개포를 거의 다 와가던 수서역 인근에서 내 뒷차가 전방주시태만으로 나를 뒤에서 쳐버린 것이다. 시속 2~30의 그렇게 빠른 속도는 아니었지만, 누적된 피로의 상황에서 뒤에서 받아버리니 내 몸은 내부에서 망가져버렸다. 하지만, 일단은 토요일이고 해커톤이 다음날이기 때문에 배포를 위해서라도 나는 타이레놀과 함께 남은 해커톤을 진행했다. 


배포! 그 황홀한 순간

배포 글 쓰는 순간이 가장 즐겁다.

일요일에 배포를 목표로 둔 우리는 임무를 완수해냈다. 일요일 오후 5시 11분 우리는 42서울을 대상으로 우리 서비스가 정식으로 배포되었음을 안내하였고, 해커톤 프로젝트 중 일주일만에 배포를 해낸 팀은 우리밖에 없었기 때문에 엄청나게 큰 관심을 받았다. 스크린 샷에도 나와있듯, 수많은 반응과 댓글을 통해 많은 사람들이 우리 서비스에 대한 흥미를 표현했다.

 

실제로, 내가 봐도 우리 서비스는 일주일만에 한 프로젝트라고는 보기힘들만큼 훌륭했다. 각자 맡은 역할에 책임감있게 임해서 그런 것일까, 너무나도 멋진 결과물이 나왔고 우리는 우리가 우리 코알리숑 대표로서 선정될 것이라고 믿어 의심치 않았다. 지금도 우리 서비스는 접근해서 이용해볼 수 있는데, 프로젝트 링크 들어가면 우리가 한 결과물을 확인할 수 있다. 처음 페이지에 나오는 접속 코드에는 '평가풍년'을 작성하면 된다.

 

우리가 이 서비스를 기획한 이유는 평가에 대한 데이터적인 접근이 부재함 때문이었다. 42서울은 동료평가를 통해 학습을 진행된다. 또 그 평가의 모든 기록들은 하나하나 자세하게 데이터베이스에 쌓여있다. 하지만, 이런 데이터를 가공해서 어떤 가치나 흥미를 만들어 낸 사람이 지금까지 없었기 때문에 우리는 이것을 직접해내보기로 마음먹었다.

 

배포후에 42일원들은 자신들의 평가성향을 데이터를 통해 보았고, 이에 열광했다. 건물에 있는 많은 화면들에서 우리의 사이트가 보였고 지나가는 복도와 엘리베이터에서도 우리가 만든 서비스에 대한 이야기가 주를 이루었다. 늘 막연하게 주먹구구식으로 평가 스타일을 들어왔던 사람들이 데이터로 나타나는 자신의 모습을 보며 흥분하는 모습은 우리의 선택이 옳았음을 증명해주었다.


배포 후 

01
배포 당일 발생한 트래픽(각각 데스크탑과 모바일)

배포를 한 후 우리는 많은 연락과 관심을 받았다. 우리의 서비스를 경험한 많은 사람들이 우리 서비스를 이용한 실제 경험을 바탕으로 우리에게 피드백을 주었다. 우리의 서비스는 하루에만 약 2500명의(중복 포함) 트래픽을 발생시켰고, 실제로 우리 서비스를 사용하며 즐거워하는 모습을 보며 우리는 즐거운 마음으로 더욱 서비스를 발전시켜나갔다.(42서울 일원은 약 1400명이다 즉, 모든 인원이 약 2번정도 우리 서비스에 접속했다)

 

하지만 아쉽게도 1차 심사에서 우리는 우리 코알리숑 대표로서 본선에 진출하지 못하게 되었다. 여러가지 이유가 있겠지만, 일단 우리 경쟁상대가 매우 잘한 것도 있고, 또 이번 해커톤은 세일즈가 매우 중요한 요소였는데 내가 교통사고 후유증으로 인하여 입원을 하게되면서 그런 부분에 있어서 인력이 부족했던 것도 있었다. 정말 열심히 했기에 기대가 컸고 그렇기에 아쉬움은 더욱 컸지만, 우리는 다음을 기약하기로 하고 승리팀을 축하해주는 시간을 가졌다.

 

해커톤이 끝났지만, 우리 서비스에 대한 관심은 여전했다.

해커톤이 끝나도 우리 서비스에 대한 니즈는 여전했고, 많은 사람들이 서비스를 유지해달라는 요청을 했다. 우리는 해커톤을 끝으로 잠시 정비를 위해 서버를 끈다고 이야기했었지만, 잠시만 종료하였을 뿐 21일부터는 공지하지 않고 서비스를 재개하고 있었다. 잠시 서버를 정지했던 이유는 GoogleGA를 적용하기 위함이었는데, 그전까지는 Vercel을 통해 얻을 수 있는 분석에 의존했는데 이것이 부족하다고 느꼈기 때문이다. 무료인 이상 하루가 넘어가는 기록은 모두 소실되었고, 또 퍼포먼스 체크는 가능했지만 사용자들의 실제 이벤트들은 추적이 제한되었기 때문에 우리는 분석도구가 꼭 있어야겠다고 판단했다.

 

그렇게 우리는 우여곡절 끝에 GoogleGA를 포함해서 다시 배포하였고, 이를통해 우리 서비스를 사용하는 사람들이 어떻게 우리 서비스를 이용하는지 알 수 있게 되었다. 내가 만든 서비스를 사용해주는 사람들을 통계로 마주하는 것은 또 색다른 경험이었다. 실제로 내가 만든 서비스에게 저렇게 많은 사람들이 흥미를 느낌을 알게되었다. 나의 서비스가 잘됨에 기뻐하는 내 모습을 보며 나는 또 내가 걷기 시작한 이 길이 옳았음을 확신하게 되었다.

 

해커톤은 끝났지만, 우리 팀은 다시한번 더 높은 서비스 퀄리티를 위하여 도전을 할 예정이다. 이번 해커톤은 실 사용자들에게 우리 서비스를 검증하는 과정이었다고 생각한다. 아쉽게도 수상에 있어서는 고배를 마셨지만, 수많은 사용자들과의 상호작용을 통해 우리 서비스의 부족함과 장점들을 알 수 있었다. 우리는 이를 통해 여러 버그들을 없애고 사용자가 원하는 기능을 넣어 42에서 가장 대중적인 서비스로 발돋음 시킬 예정이다. 또, 단순히 우리나라에서만 사용하는 기능이 아니라 전세계 42커뮤니티에서 다 사용할 수 있는 그런 국제적인 서비스로 발전시켜보려 한다.

 

지금까지 해낸 것만큼 앞으로 해낼 일에 더욱 설레는 나날이다.

728x90