들어가다

42 이너서클 완성까지 남은 과제는 단 2개! 정말 끝이 가까워진 지금, 42에 대해 많이 생각하고 있습니다. 이곳에서 많은 것을 배웠고 앞으로의 프로젝트와 앞으로 할 일에 대해 많은 자신감을 얻었습니다. 배운 것을 다듬고 연마할 시간이 있다고 생각했을 무렵, 코알리콘 해커톤 발표가 42일 이내에 왔습니다. 실력을 갈고 닦을 시간이 필요해서 이번 해커톤이 좋은 기회가 될 것 같아서 우승을 목표로 이번 해커톤에 참가하게 되었습니다.
그룹 회의

인사가 전부라는 말이 있듯이 해커톤의 승패는 어떤 팀원을 만나느냐에 따라 결정되는 것 같아요. 이번 해커톤에서는 그룹 배정이 제 의도를 반영하지 않고 완전 랜덤으로 이루어졌고, 게한과 성욱 3명이 팀을 구성했습니다. 우리의 첫인상은 매우 단순해 보인다. 다른 팀원들이 누가 주도할지, 어떤 주제로 해커톤을 개최할지, 어떤 역할을 할지 하루 종일 토론하는 동안 우리의 경우 이 모든 것을 결정하는 데 1시간밖에 걸리지 않았다.
처음 만난 사람과 해커톤을 하면서 이렇게 빨리 결정을 내릴 수 있을까? 그걸 원하실 수도 있겠지만 이렇게 빠른 결정이 가능했다는 점에서 우리의 팀워크는 예상됐던 것 같다. 팀장으로서 떠오른 아이디어를 두 개씩 이야기한 끝에 그 중 가장 좋았던 ‘평가 데이터 기반 솔루션’을 개발하기로 했다. 역할에 관해서도 1주일이라는 시간을 고려하여 우리가 잘하는 것을 하기로 했으나(1주일은 새로운 것을 배우고 적용하기에는 너무 짧다고 생각했습니다), 제 경우에는 평가 데이터를 전달하고 삽입하는 역할이었습니다. DB와 CI/CD로. 인프라 구축 및 구축(DNS, CORS 등의 문제 해결)을 하기로 했습니다.
최근 42.gg에서 일한 일선 경험이 있는 성욱이 일선 일을 했고, 최근 42mogle 프로젝트를 일하면서 CICD와 유통에 관심이 있었던 나는 인프라와 데이터 가져오기 일을 했고, gehan은 최근 JAVA를 설계하고 Spring을 사용하여 백엔드 API를 구현했습니다. 다들 관심사가 다르고 하고 싶은 게 있어서 빨리 팀을 꾸려서 팀워크를 아낄 수 있었던 것 같아요.
우여곡절과 교통사고의 제네시스 과정

해커톤이 시작되고 다음날 주제에 대한 생각을 발전시킨 후 우리는 함께 모여 어떻게 일할 것인지 결정했습니다. 물론 우리에게 가장 친숙한 Github가 우리의 코드 저장소 역할을 하기로 했고 일정도 Github를 통해 정하기로 합의했습니다. 그가 한 모든 일은 프로젝트를 통해 관리되었고 각각은 repo 문제로 설명되었습니다. 이렇게 서로가 무엇을 하고 있는지 바로 알 수 있게 함으로써 서로의 페이스를 맞추며 진화했다.
가장 먼저 눈에 띈 것은 성욱의 환대였다. 그는 Figma를 한 번도 다루지 않았다고 말했지만 Figma를 통해 자신의 UI에 대해 영리하게 말했습니다. 그래서 공공전광판에 UI를 올려놓고 앞으로 어떤 데이터가 필요할지, 어떤 API가 필요할지 이야기를 나눴다. 이렇게 하면 전면 패널에서 사용자에게 제공할 데이터가 사용자 경험에 비추어 먼저 제시되므로 다음 부분은 정말 쉽게 해결할 수 있었습니다.
데이터가 필요한 이유는 결국 사용자가 사용할 수 있기 때문인데, 다른 프로젝트를 할 때는 수신과 DB가 따로 있는 것 같아서 이번 경험을 통해 많이 배웠습니다. 데이터가 필요한 이유는 무엇입니까? 고민을 거듭하다 보니 사용자에게 꼭 필요한 데이터이기 때문에 이에 따라 DB를 구성하는 것이 중요하다는 것을 깨달은 순간이었습니다.
이것이 우리가 매우 몰입적인 환경에서 7일 동안 코딩한 방법입니다. 그런데 몰입 6일째 해커톤을 위해 개포로 가던 중 안 좋은 일이 생겼다. 거의 개포네에 다다랐던 수서역 근처에서 앞을 함부로 바라보고 있던 내 뒤차가 뒤에서 나를 들이받았다. 시속 2~30마일로 그리 빠르지는 않았지만 피로가 누적된 상황에서 뒤에서 받다 보니 몸이 안에서부터 망가졌다. 하지만 토요일이고 해커톤이 다음날이기 때문에 나머지 해커톤은 판매용으로도 타이레놀을 사용하여 진행했습니다.
분포! 황홀한 이 순간

일요일 목표 배포로 우리는 임무를 완수했습니다. 일요일 오후 5시 11분, 42서울에 공식 배포한다고 발표했는데, 해커톤 프로젝트 중 1주일 이내에 배포할 수 있는 유일한 팀이라 많은 관심을 받았습니다. 스크린샷에서 보듯이 많은 분들이 수많은 반응과 댓글을 통해 저희 서비스에 대한 관심을 표현해 주셨습니다.
사실 제 입장에서는 저희 서비스가 너무 훌륭해서 일주일 만에 완성된 프로젝트라고 보기 힘들 정도였어요. 각자 맡은 역할을 다 했고 결과가 너무 좋아서 연립대표로 뽑히리라는 데 의심의 여지가 없었기 때문일 것이다. 귀하는 여전히 당사 서비스에 액세스하고 사용할 수 있습니다. 프로젝트 링크 안으로 들어가면 우리가 한 일을 볼 수 있습니다. 첫 페이지에 나오는 액세스 코드에 “Evaluation Harvest”라고 쓸 수 있습니다.
이 서비스를 기획한 이유는 평가에 대한 데이터 액세스가 부족했기 때문입니다. 42 서울시는 동료 평가를 통해 학습을 진행합니다. 또한 모든 평가 기록은 데이터베이스에 상세하게 축적됩니다. 그러나 아무도 이 데이터를 처리하여 가치나 이익을 창출한 적이 없기 때문에 우리는 스스로 하기로 결정했습니다.
42의 멤버들은 배포 후 데이터에서 자신의 평점 성향을 보고 흥분했습니다. 우리 웹사이트는 건물 주변의 많은 화면에 소개되었고 우리 서비스에 대한 이야기는 복도와 지나가는 엘리베이터의 중심 무대를 차지했습니다. 평가 스타일만 들어본 사람들이 우리의 선택이 옳았다는 것을 어렴풋이 증명했다는 사실.
사용 후

하나
배포 후 많은 연락과 관심을 받았습니다. 저희 서비스를 경험하신 많은 분들이 저희 서비스에 대한 실제 경험을 바탕으로 피드백을 주셨습니다. 우리 서비스는 매일 약 2,500명의 방문자(중복 포함)를 발생시켰고 실제로 우리 서비스를 사용하는 것을 좋아하는 것을 보았기 때문에 행복한 마음으로 서비스를 계속 개발했습니다(42 서울에는 약 1,400명, 즉 전 직원이 약 2회 접속)
아쉽게도 우리 코알리촌 대표로서 1차 심사에서 결선 진출이 허락되지 않았다. 여기에는 여러 가지 이유가 있겠지만 우선 이번 해커톤에서는 우리 경쟁사들이 매우 잘했고 매출이 매우 중요한 요소였지만 교통사고 후유증으로 입원을 하게 되면서 이 분야의 인력 부족도 있었다. 정말 열심히 해서 기대가 컸고 그래서 아쉬움이 더 컸지만 다음을 기약하며 우승팀을 축하하는 시간을 가졌습니다.

해커톤이 끝난 후에도 우리 서비스의 필요성은 여전했고 많은 분들이 서비스 유지를 요청해 주셨습니다. 해커톤 종료 후 유지보수를 위해 서버를 다운하자고 이야기를 나눴으나, 한동안 서비스가 중단됐다가 21일 예고 없이 서비스를 재개했다. 서버가 일시적으로 중단된 이유는 GoogleGA의 적용 때문이었지만, 그 전에는 Vercel을 통해 제공되는 분석에 의존하여 누락되었다고 느꼈습니다. 무료인 경우에는 하루를 초과하는 녹화물은 유실되고 성능 감사가 가능하지만 실제 사용자 이벤트를 추적하는 것은 제한적이므로 분석 도구가 필수적이라고 판단했습니다.
우여곡절 끝에 GoogleGA를 포함해 재배포했고, 이를 통해 우리 서비스 이용자들이 우리 서비스를 어떻게 이용하는지 알 수 있게 됐다. 통계를 통해 만든 서비스를 이용하는 사람들이 마주하는 색다른 경험이었습니다. 실제로 제가 만든 서비스에 많은 분들이 관심을 갖고 계시다는 것을 알게 되었습니다. 사역의 성공에 기뻐하면서 내가 가고 있는 길이 옳다는 확신도 생겼습니다.
해커톤은 끝났지만 저희 팀은 다시 한 번 더 나은 서비스 품질을 위해 노력하겠습니다. 이번 해커톤은 실제 사용자들에게 우리의 서비스를 검증하는 과정이었다고 생각합니다. 아쉽게 수상은 못했지만 수많은 유저들과의 교류를 통해 우리 서비스의 단점과 장점을 배울 수 있었습니다. 이를 통해 다양한 버그를 수정하고 사용자가 원하는 기능을 추가하여 42에서 가장 인기있는 서비스로 만들 계획입니다. 또한 국내에서만 사용하는 기능이 아닌 전 세계 42개 교회 모두에서 사용할 수 있는 국제적인 서비스로 발전시키기 위해 노력하고 있습니다.
지금까지 해왔던 것보다 앞으로 무엇을 하게 될지 기대가 되는 날입니다.