지난 8월 중순, 부산에서 열린 정션 아시아 2022 해커톤을 다녀왔다. 개인적으로 오프라인 해커톤을 3년만에 다녀왔는데, 너무 즐겁고 인상적이었다. 비록 코로나가 아직 완전히 종식된 것은 아니지만.. 이런 행사가 앞으로도 자주자주 생기길 바라는 마음을 담아서 해커톤 후기를 작성해 본다.
서막
때는 2022년 6월 말, 페이스북을 보다가 우연하게 정션 아시아를 한다는 광고를 처음 보게 되었던 것 같다. 대회를 나가고 싶었고 사전에 팀을 꾸려서 나가고 싶어서 보자마자 페북, 링크드인, 슬랙 채널 등등에 팀을 구한다는 글을 바로 올렸다
감사하게도 내가 참여하고 있는 글또 커뮤니티 분들이 빠르게 응답을 주셨고, 넥스터즈라는 IT 연합 동아리 분도 연락을 주셔서 다섯 명 팀 빌딩은 완료되었다. 나는 이런 팀빌딩을 할 때 보통 FCFS(First Come First Served, 한국말로 선착순) 방식으로 하는 편이다. 그 방식이 경험적으로 좋은 구성원들을 모을 확률이 제일 높았던 것 같다.
결과적으로 우리 팀은 프론트엔드 개발자 둘, 백엔드 개발자 둘, 디자이너 하나 이렇게 다섯 명으로 팀빌딩이 되었다. 시간이 되는 사람들끼리는 7월에 한 번 점심을 같이 먹었고, 모두가 다 같이 완전체로 모인 날짜는 해커톤 당일이었던 것 같다.
여담으로, 결과 발표가 7월 31일에 나온다고 했는데.. 그날 저녁까지 아무런 연락이 없어서 떨어진 줄 알았다. ㅠㅠ 그날 밤 9시 넘어서 이렇게 메일을 받고 팀원들과 자축했던 기억이 난다. ㅎㅎ 나중에 들어보니 해커톤 지원 과정에서도 경쟁률이 꽤 높았다고 했다고 한다.
DAY 1 (8/19 금)
8월 19일 금요일 오전 같은 팀이었던 용호님과 아침에 수서역에서 SRT를 타고 부산으로 갔다. 부산의 날씨가 그날 엄청 더웠다. 짧게 부산역 근처에 둘러볼 곳들을 보고 서면으로 가서 점심을 먹은 뒤에 굿닥 부산 오피스를 방문했다. 그리고 나서.. 행사 장소인 벡스코로 향했다.
(후기를 쓰면서 드는 생각인데.. 사진을 생각보다 많이 안 찍었던 것 같아서 아쉬움이 많다 ㅠㅠ 다음부터는 이런 해커톤 대회 나가면 일정에도 집중하면서 사진을 많이 찍어야겠다)
저녁 6시부터 등록을 받기 시작했는데, 시간에 맞춰서 가니 줄이 참 길었다. 참가자가 약 310명 정도 되고 팀 수도 대략 68팀 정도 되었다고 한다. 이렇게 많은 사람이 참여하는 해커톤 대회는 처음이었어서 신기했다. ㅎㅎ 그리고 국적도 21개국에서 참여를 했다고 했는데 되게 다양한 나라에서 온 사람들이 많이 보였다.
아무래도 접수 시간이 오래 걸려서 시작 시간이 조금 딜레이가 되었고, 7시 반쯤 공식적인 오프닝 세레모니가 시작이 되었다. 시작되고 나서 각각의 트랙별로 주제를 소개하는 시간이 주어졌다. AWS, ZEP, Chainapsis, Microsoft 이렇게 4개의 스폰서가 각각 트랙에 맞는 주제를 제시했고 10:30까지 각 팀은 팀 명과 트랙을 선정해야 했다.
각각의 트랙별로 주제는 다음과 같았다.
- AWS : AWS를 활용해서 Serverless 게임을 만들어 보아라
- ZEP : ZEP Script를 활용한 어떠한 형태의 서비스도 좋으니 만들어 보아라
- Chainapsis : Chainapsis에서 제공하는 서비스를 사용한 자유 주제 블록체인 서비스를 만들어 보아라
- Microsoft : MS Office 365, Azure 등을 활용한 협업 툴을 만들어 보아라
우리 팀은 짧은 시간동안 트랙별 소개를 듣고 어떤 트랙을 고를지 결정을 했어야 했다. 각자가 트랙별로 하고 싶은 아이디어를 자유롭게 내고, 그걸 바탕으로 아이디어 리스트 업을 했다. 10개 정도 나왔고, 여기서 AWS 트랙은 탈락했다.
8개의 아이디어를 바탕으로 간단하게 아이디어 제안자가 설명하고 기술적인 검토를 빠르게 하면서 이게 가능/불가능 한지 여부를 따져본 후 1차 선택을 했다. 그 때 각 트랙별로 하나씩 아이디어가 남았고 이 세 가지 아이디어를 조금 더 deep dive 해보면서 결과적으로 ZEP 트랙을 선택하게 되었다. 개인적으로 나는 ZEP을 이번 해커톤 이전에 써본 적이 없어서 되게 생소했고 선택할 것이라고 전혀 예상을 못 했는데 팀에서 과반수 이상이 선택해서 이 결정은 따르기로 했다.
팀 이름은 TonightSpark 라고 지었는데 중의적인 의미가 있다. 우리가 오늘 밤 스파크를 낸다는 의미로 Tonight + Spark 라는 뜻도 있고, 해커톤이 2박3일이므로 Two Nights Spark 라는 의미도 있다. ㅋㅋ
첫째날은 원래 목표가 트랙 정하고 기획 큰 틀에서 잡는 정도까지만 하려고 했었다. 첫째날 용호, 명지, 성후 세 분의 개발자들은 ZEP 트랙 부스에 가서 기술적인 질문들을 하면서 시간을 보냈었고 그 사이 나는 성인이가 만들어준 디자인 가이드를 보면서 환경 설정을 하고 기본적인 디자인 가이드를 반영했다. 첫 날부터 무리하면 안 된다는 생각에 우리 팀은 다 같이 새벽 3시쯤 해산했고 호텔에 가서 푹 자고 일어났다.
DAY 2 (8/20 토)
둘째 날은 밤 12시 1차 제출(1st draft submission)까지 쭉 개발하고 디자인 했다. 아침에 요가 클래스와 몇 가지 이벤트를 하고 점심과 저녁 사이에는 사이드 부스를 돌면서 후원사들이 마련한 이벤트들을 해보았다. 아산나눔재단에서 여러 스타트업들이 오셔서 소개도 했고, OP.GG와 cloudtype 등 후원사 부스를 돌면서 회사 소개도 듣고 준비한 이벤트도 했다. 저녁을 먹고 나서는 근처 센텀시티 가서 조금 머리를 식히고 오기도 했다.
우리 팀은 ZEP 메타버스 지도를 만드는 크리에이터들이 볼 수 있는 유저 행동데이터 시각화 대시보드를 만들기로 했다. 유저가 지도에서 돌아다니면서 특정 영역(Area)을 들어가고 나올 때 해당 enter, leave 이벤트가 발생하는데 그 때 우리에게 필요한 영역 정보, 이벤트 발생 시간, 유저 정보 등을 담은 api call을 서버에 보낸다. 이 부분을 용호님이 맡아서 구현을 하셨는데 아무래도 문서가 모든 정보를 담고 있지 않다보니 ZEP 트랙 부스에 자주 방문해서 질문하는 모습을 볼 수 있었다.
백엔드에서는 이렇게 수집한 유저 데이터를 유저, 영역, 시간이라는 3가지 기준을 가지고 나누어서 데이터를 가공한다. 우리 팀은 이러한 이벤트의 데이터들을 시각화해서 유의미한 인사이트를 주는 것이 가치를 제공할 수 있다고 믿었고, 그러한 관점에서 다음 3가지 기준을 생각해 보았다.
1차 제출 때 100단어 이하로 서비스를 요약해서 설명하라는 과제가 있었는데, 우리 팀에서 제출한 서비스 설명은 다음과 같았다.
Our service name is ZEP.SIGHT.
We target our product to support the map administrator of ZEP by providing meaningful insights with organized charts.
Through our service, ZEP administrators can see the object-related data, classified by participants, time, and areas.
For instance, they can monitor the number of visitors in a specific area over a certain amount of time.
Our product can track these indexes and provide organized and integrated visualization charts.
Team TonightSpark strongly believes that our product can collect meaningful data from a massive ZEP community, and it will bring out the significant business value of the community.
12시에 1차 제출을 하고 나서 본격적으로 서버도 배포가 되었고 이 때 프론트엔드는 마크업을 거의 마무리 한 상태였어서 프론트엔드 쪽에서는 API 연결을 하는데 집중했다. 웹 프론트엔드의 경우 CI/CD를 연결해 놓아서 코드 푸시를 하면서 동시에 배포가 되었는데, 프론트엔드 개발자가 작업물을 배포된 웹 어플리케이션으로 백엔드 개발자에게 공유하면 테스트를 해 보면서 수정하고 백엔드를 수정하는 식으로 둘째 날 새벽 작업을 했었던 것으로 기억한다.
둘째날 새벽에는 이제 남은 시간이 얼마 남지 않았기에 지금까지 작업한 내용을 한 번 마무리를 하고, 앞으로 남은 작업들에 대해서 우선순위와 R&R을 나누었다.
둘째날 새벽에 조금씩 다들 지쳐서 숙소를 잠시 다녀오기도 하고 샤워를 하고 오기도 했다. 이 시간이 해커톤에서 가장 버티기 힘든 시간이 아니었을까 싶다. ㅠㅠ 우리팀은 확실히 다들 나보다 체력이 좋다는 걸 이 시간대에 느꼈던 것 같다. ㅋㅋ 나는 새벽 6시 정도에 도저히 버틸 방법이 없어서 이 때 우리팀이 다같이 숙소로 돌아왔고 나는 2시간 정도 잤는데, 나중에 보니 우리팀은 이 시간에도 작업을 이어서 했다는 사실에 약간 소름 돋았다. ㅋㅋ
DAY 3 (8/21 일)
마지막 날 아침은 정신없이 마지막 버그 고치는 작업의 연속이었고 나는 발표 준비를 했다. 최종 제출(Final Submission)이 오후 12시 30분 이었는데 이 때 데모 url, github url, 영상 파일 등을 일괄적으로 제출해야 했다. 다들 이 때 굉장히 바쁘고 예민했던 오전 시간을 보내지 않았을까 싶다.
여기서 우리가 데모 영상을 제출 기한 안에 촬영하지 못한 이슈가 있었는데, 개인적으로 몇 안 되는 조금 아쉬운 부분이었다. 이 때가 11시 반 ~ 12시 반 사이였는데 나는 발표 준비를 하느라 정신이 없어서 신경을 못 쓰기도 했고 내 책임도 있는 것 같아서 큰 미련은 안 갖기로 했다.
아쉬운 마음에 데모 영상을 블로그에 공유해 본다.
나는 최종 제출을 한 이후에 조금 시간을 가지고 트랙별로 심사위원들이 돌면서 발표를 듣는 것으로 이해하고 천천히 준비를 시작하려고 했다. 그런데.. 최종 제출 딱 하자마자.. 거의 바로 피칭을 준비하라는 안내에 당황+긴장 했다 ㅋㅋㅋ 영어로 피칭을 해야 했고, 혹시 몰라서 발표 스크립트를 작성했는데 다 외우지 못하고 발표를 시작해야 했다. 그래서 아이패드를 거의 보면서 발표를 했다 ㅋㅋㅠㅠ
긴장을 많이 해서 어떻게 발표했는지 기억도 잘 안나고.. 5분 영어 피칭 후에 5분 Q&A는 한국말로 해도 된다고 해서 다행히 좀 편하게 대답할 수 있었다. 되게 질문이 날카로운 것들이 많이 있었어서 내가 바로 대답을 하기 어려운 것들도 있었는데 그런 부분은 팀원들이 다행히 대답을 잘 해주어서 무사히 넘어갈 수 있었던 것 같다. 그리고 발표를 하면서 데모도 같이 보여드렸다. 영상으로 녹화본 제출을 못 해서 많이 아쉬웠는데, 이렇게 데모를 심사위원 분들에게 보여드리니 되게 보고 칭찬을 많이 해 주셔서 기뻤다.
ZEP 트랙이 경쟁률이 제일 높았고, 다른 팀들이 어떤 결과물을 냈는지 보지는 못 했지만 잘하는 팀들이 많아 보여서 나는 내심 순위권 안에만 들어가도 기쁠 것 같다고 생각했었다. 그리고 트랙별 1등만 전체 피칭을 하는데 거기까지는 우리가 갈 거라고 생각을 안 하고 피칭 후에 다른 개발자 분들과 네트워킹 및 휴식 공간에서 수다를 떨면서 시간을 보냈다.
그런데.. 갑자기 ZEP 심사위원 한 분이 오시더니 데모를 한 번 짧게 더 보여달라고 하셨다. 안 보신 분들이 있다고.. 이 때 우리팀에 피곤해서 자는 분들도 있었는데 깨워서 얼른 데모를 하고 혹시 몰라서 발표 준비를 했다. 그리고 나서 놀랍게도 관계자로부터 ZEP 트랙 1등으로 선정이 되었으니 Finalist 발표를 준비하라는 안내를 들었다!!
부랴부랴 발표를 준비하는데.. 우리 팀이 다행히도 마지막 순서여서 발표를 준비할 시간을 조금 벌 수 있었다. 트랙별로 한 팀씩 발표를 하는데, 집중해서 듣지는 못 했지만.. 발표 자료도 완성도가 높았고 데모 영상도 있었으며 스피커들이 다들 영어를 네이티브처럼 잘했던 것으로 기억한다.
내가 여기서 발표를 할 거라고는 전혀 생각을 못 했는데 짧은 시간 동안 최대한 준비를 해서 결국 Finalist 네 번째 순서로 발표를 10분 동안 하고 왔다. 원래는 스크립트를 들고 가려 했다가.. 그건 너무 자신감이 없어 보이기도 하고 ㅋㅋ 나 자신을 믿고 가보기로 했다.
발표 10분을 어떻게 했는지 기억도 안나고.. 발표 후 Q&A 때도 여러번 Sorry를 하며 질문을 되물었던 것 같다. 나름 평소에 Ringle도 하고 영어 공부를 하고 있다고 생각했지만, 역시 실전은 달랐다 ㅠㅠ 영어 공부를 계속 더더더 해야 되는 이유를 찾았던 것 같다.
최종 발표 후에는 동료 평가 투표가 있었고, 이 투표 결과를 바탕으로 최종 우승팀을 가리는 방식이었다. 우리 팀에 데모 영상이 없어서 사실 여러 모로 투표에서 불리했고, 정션 측 관계자와 논의를 여러 차례 했으나 투표 기간 동안에 형평성 이슈로 영상을 디스코드 채널에 올리지는 못 했고, 서비스 직접 써볼 수 있는 소개 페이지 정도만 올릴 수가 있었다.
결과적으로 우리 팀은 최종 우승은 하지 못했다. 개인적으로 다른 세 팀이 정말 잘 했다고 생각해서 아쉽지는 않다.
이렇게 길고 긴 2박 3일간의 해커톤이 마무리가 되었고 ㅎㅎ 다 같이 사진 찍고 마무리 한 뒤, 우리 팀은 광안리에 가서 회를 먹으면서 자축하는 시간을 가지며 이번 부산 일정을 마쳤다 ㅎㅎ
총평
TL;DR
- Junction Asia 2022 해커톤을 2박 3일 부산에서 하고 왔고 너무 즐겁고 유익한 경험이었다.
- 우리 팀 TonightSpark는 ZEP 트랙을 설정해서 ZEP 메타버스 지도에서 유저들의 행동을 이벤트 기반으로 데이터를 분석해서 보여주는 데이터 시각화 대시보드 서비스인 ZEP.SIGHT를 만들었다.
- 감사하게도 우리 팀은 ZEP 트랙 28개 팀 중 1등을 했고, 전체 68개 팀 중 최종 우승은 하지 못했다.(TOP 4)
좋았던 점
- 완전 새로운 조합의 팀원들과 첫 협업을 했는데, 생각보다 너무 손발이 잘 맞았고 다들 열정적으로 참여해 주어서 재밌게 프로젝트를 할 수 있었다.
- ZEP 서비스에 대해서 해커톤 시작 전 이해도가 0에 가까웠는데 해커톤을 하면서 이해도가 올라간 것 같아서 의미가 있다.
- 익숙한 개발에서 벗어나서 새로운 기획과 인사이트가 녹아든 작업을 짧은 시간 할 수 있어서 스릴이 있었다.
아쉬웠던 점
- 영어 발표를 조금 더 완벽하게 준비를 했으면 좋았을 것 같다. ㅎㅎ
- 내 일만 하는 것이 아니라 리더의 위치에서 다른 팀원들의 상황과 입장을 조금더 이해하고 배려할 수 있었어야 했다.
- 체력적으로 많이 달리는 나 자신을 보면서 운동의 중요성을 느꼈다.
- 제출 마감 전 여유있게 필요한 것들을 미리미리 준비해야 할 필요성을 느꼈다.
+ 해커톤 이후 뉴스 기사에 우리 팀에 대한 소개가 짧게 나왔다 ㅎㅎ
'끄적끄적' 카테고리의 다른 글
나는 어쩌다 프로그래밍을 시작하게 되었나 (0) | 2023.01.09 |
---|---|
2주간 부산 워케이션을 다녀왔습니다. (1) | 2022.10.24 |
[연봉] 2~3년차 개발자들은 연봉을 얼마나 받을까? (10) | 2022.04.11 |
트레바리 2005 럽럽-끼리 시즌 후기 (0) | 2020.09.02 |
[스쿼시] Squash Basics #1. 스텝과 움직임 (0) | 2020.05.12 |