2021 SW 중심대학 공동해커톤 후기

9 minute read

지난 주 토요일(2.6)을 끝으로 2월 4일부터 3일간 과학기술정보통신부가 주최한 SW중심대학 공동 해커톤을 좋은 성과를 내며 끝맺어서 후기를 써보자 한다.

2021 SW중심대학 공동해커톤은 KAIST를 포함해 SW중심대학으로 지정된 39개의 학교에서 출전한 SW개발자 및 디자이너들이 팀을 구성하여 주제에 맞는 앱, 서비스, 라이브러리 등을 구현하는 프로젝트 진행하는 해커톤이다.

학교마다 4명씩 선발이 되어 출전한다는데 학교에서 온 메일을 보고 해커톤 한번 나가볼까 생각해서 내 CV와 예전에 써둔 지원서를 조금 수정해서 제출했고, 운좋게 KAIST 개발자로 출전하는 기회를 얻었다.

코로나19로 인한 상황이 아직까지 이어지고 있어 사회적 거리두기의 일환으로 온라인으로 진행되었고, 총 188명의 참가자들이 모인 대규모 해커톤이었기 때문에 보통은 오프라인으로 한자리에 모여서 다같이 커피와 핫식스를 몸에 주입하면서 밤새도록 코딩하는 해커톤의 참맛(?)을 느낄 수는 없다는것이 아쉬웠지만.. ‘온라인으로 소통하는 것에 어느정도 익숙해진 대학생인 만큼 Slack과 Zoom을 통해 어찌어찌 잘 해낼 수 있지 않을까? 예컨데 줌을 켜두고 24시간 잠을 안자고 다들 잘 코딩을 하는지 볼 수 있게 한다거나..’ 라는 생각으로 아쉽지만 온라인으로 최선을 다해보려고 했다.

2021 SW 중심대학 공동해커톤 포스터와 세부일정표

아이디어 등록 및 팀빌딩

해커톤 행사 개시 전 5일동안 아이디어를 등록할 수 있는 시간이 있었다. 뭔가 번뜩이는 아이디어는 없었고, 혹시나 이번에 해보면 좋을 괜찮은 아이디어가 있을까 내 개인 노션과 노트를 찾아보면서 고민을 하다가, 언택트 상황 속 집중을 위한 솔루션이 있으면 어떨까 생각을 했다. ‘디지털 뉴딜’이라는 조금은 broad한 주제가 주어진 만큼 아이디어의 다양성은 늘어났는데, 어떻게 이 아이디어를 디지털 뉴딜의 목적에 부합하게 엮을 수 있을 지 생각했다.

나는 6번째로 아이디어를 등록을 했다. 생각나는대로 쭉 Rough한 아이디어를 설명하면서 어떠어떠한 기능이 있었으면 좋겠고, 그에 대한 이런 분들을 모십니다! 하는 설명을 올렸다.

연구실에서 갑자기 아이디어가 떠올라 쓱쓱 적어서 올린 아이디어 제안 글

아이디어를 등록하자마자 꽤 많은 분들로부터 바로 Slack으로 연락이 오기 시작했다..!! 본인의 CV와 했던 프로젝트 링크들을 보여주며 제시한 아이디어가 좋아보여서 같이 팀을 하면 좋을 것 같다는 메세지를 보내주셨다.

사실 내가 낸 아이디어 하나로 나보다 훨씬 경험과 실력을 갖고 계신 분들을 내가 골라야 한다는게 조금 민망하기도 했다. 나 포함 5명이 한 팀이 되기 때문에 4명을 모시는 자리에서, 20분이 넘는 분들이 프로젝트에 신청을 해주시고 Slack DM으로 자신의 PR을 해주셔서 이야기를 일일이 나눠보고 그 중에 가장 우리 팀에 맞을 것 같은 분들을 고심하며 신중하게 모시려고 했다. 신청을 해주셨지만 인원이 인원인지라… 마음이 아프지만 우선 영입을 결정한 멤버 외에 미처 못 모신 분들께도 좋은 팀을 찾았으면 하는 응원과 감사한 마음을 한분한분 답장으로 보내드렸다.

신청을 너무 많은 분들이 해주셔서 고민을 많이 했다! 그중에 가장 우리팀에 이상적인 분들을 선정해 영입완료 :)

해커톤 홈페이지에는 참가자들이 자신의 프로필을 올릴 수 있는데, 우리 팀원들을 포함해서 다른 분들의 소개란을 보니 경험이 장난이 아니었다. 소개란에 적힌 소개 뿐 아니라 GitHub 프로필, CV까지 참고하면서 많은 뛰어난 분들이 이번 해커톤에 참여했다는 것을 알았다. 개발 블로그를 운영하시는 분들도 꽤 있고, 유튜브로 개발강의를 업로드하시는 분들도 있어서 나도 열심히 Medium과 Github에 기록을 남기려고 한다(나중에 알았지만 우리팀 지오도 ‘공돌이 지오’라는 채널로 업로드를 하고 있었더라.. 역시 능력자!) 일이 많고 아직 쓸 일이 많지 않아서 미뤄왔지만, 나도 조만간 내 도메인을 하나 파서 내 소개 페이지를 운영해야겠다는 생각을 했었다ㅎㅎ 그리고 나름 개발 경력이 많다고 생각했던 나는, 우물안 개구리였으며 세상에는 개발을 사랑하는 사람들이 많다는 것을 느꼈다! 해커톤 기간 동안 SW중심대학의 다양한 개발자, 디자이너 분들을 보면서 정말정말 많은 자극을 받았다.

해커톤 공식행사 하루 전날! 나는 우리팀의 팀원들을 다 모아서 미리 한번 서로 안면을 트고 아이디어를 구체화할 수 있도록 줌으로 모여보기로 했다. 화면으로 첫만남이었지만 우리팀 모두 성격이 좋아 금방 화기애애해 진 것 같다. 병규형과 지희누나의 노련함 덕분에 나이가 다르지만 (26살~22살까지 각각 누군지는 비밀..)

금새 말을 편하게 트고 아이스 브레이킹을 하면서 자기소개를 하고, 해커톤때 원활한 진행을 위해 미리 우리팀의 Notion, Github Repository, Slack 팀채널 등을 준비하고 아이디어에 대한 구체화 방향을 이야기할 수 있어서 좋았다.

+) 아 그리고 해커톤 굿즈는 내가 배송일을 잘못 가늠해서 기숙사로 신청한 바람에ㅠ 해커톤 시작 전 서울 본가에 올라온 나는 해커톤이 끝나고 대전에 내려가서야 언박싱을 할 예정…

첫째날

아이디어 피칭 및 팀빌딩

우리팀은 이미 팀빌딩을 마쳤지만 (아직 다른 팀들의 팀빌딩이 끝나지 않았고, 확정이 아니라 팀 멤버가 변동될 수 있기 때문에) 2분동안 아이디어를 제안한 팀장들이 발표하는 시간을 가졌다. 다른 팀들이 아이디어 소개를 하면서 팀빌딩을 하는 중에 우리팀은 우리의 아이디어를 더욱 자세히 하기 위해 줌으로 미팅을 계속했다. Why How What에 기반한 Ideation Meeting을 진행해준 지희누나 너무나 멋져…

개발 스타트!

드디어 해커톤의 꽃.. 개발 또 개발을 시작했다. 우리는 웹 기반 서비스로 진행할 것이고, 개발 Stack을 전날 Front-end는 React와 Antd UI Framework, Backend는 Node.js, Django를 이용한 서버 구현, MySQL, redis를 이용한 DB, 그리고 EC2, S3 등의 클라우드 서비스를 이용하기로 결정했기 때문에 빠르게 시작할 수 있었다. 바로 각자의 포지션을 맡아 개발에 몰두했다.

온라인으로 진행되는 해커톤이었기에 우리가 항상 옆에 붙여서 어느 파트를 개발하고 있는지, 어떻게 상황이 진행되고 있는지 알기가 힘들었다. 소통에 더욱 힘을 써야하는 해커톤이었다. 그래서 우리는 Slack의 우리팀 채널과 DM을 활발히 이용하면서 소통을 했고, 노션의 스케줄 칸반보드를 이용해 Not Started — In Progress — Completed를 공유했고, 3시간에 한번씩 Zoom 회의실에 접속해 30분 정도 진행상황 공유 시간을 가졌다. 지금까지 각자 어디를 구현했고, 앞으로 어떻게 했으면 좋겠는지 이야기를 나눌 수 있는 시간이 되어서 온라인임에도 불구하고 각자의 상황을 실시간으로 파악하고 효율적인 개발을 할 수 있었던 것 같다.

Notion을 이용해 지속적으로 상황을 공유하는 동시에 Zoom, Slack으로 열심히 팀내 소통을 했다

둘째날

어제 하루종일 개발을 하다가 한 3시간 정도 수면을 취하고, 다시 일어나서 부리나케 다시 개발을 집중했다.

개발.. 그리고 또 개발.. (React랑 Back-end공부 좀 더 해야겠다는 것을 뼈저리게 느낌)

내가 commit을 한번 할 때 병규형이 다섯번은 하는 기염을 토해내는 바람에(연플을 홀로 구축해서 운영하고 있는 병규형… 그는 거의 풀스택에 가깝다… 존경한다), 점점 나의 포지션은 개발자에서 기획자 쪽으로 바뀌게 되었다. 기획(PM)을 주로 맡으면서 개발자-디자이너의 소통을 돕고 발표자료 준비나 미팅로그 정리를 하는 동시에 Front-end는 병규형이 만든 큰 틀 안에서 디테일한 부분을 수정하거나 시간이 오래 걸리지 않는 마이너한 부분들을 개발했다. 나는 해커톤을 하면서 계속 좋은 팀장과 기획자의 역할은 무엇인지 고민하며 실천하려고 노력했던 것 같다.

우리 서비스의 핵심은 집중도를 AI가 실시간으로 감지해서 이를 스스로 확인할 수 있도록 해주는 것이지, 기존의 Zoom, Meet처럼 화상회의 플랫폼의 느낌을 지양하고자 했다. 하지만 WebRTC API (웹브라우저 간에 플러그인 도움 없이 통신할 수 있는 기술)을 이용해서 화상 ‘도’ 가능할 수 있도록 하면 빠른 구현이 가능할 것 같고, 오픈소스 사용을 적극 권장하는 이번 해커톤에서 나쁠 것은 없어 보였기 때문에 OpenVidu를 이용해서 실시간 영상 전송이 가능하도록 했다. 여기에 그냥 영상 전송 뿐 아니라 이모지를 입힌 썸네일을 5초 간격으로 포워딩하는 서버도 필요했기 때문에 이 부분은 지희누나가 Node.js를 이용해서 Thumbnail서버를 따로 구현했다. 지오는 TensorFlow를 이용해 얼굴의 방향까지 파악해주는 Face Recognition 부분을 개발하면서 선보였는데, 중간중간 진행된 내용을 보여줄때마다 우리가 봐도 재밌어서 감탄을 연발했다.. (능력자!)

개발 4명이 열코딩을 하는 동시에 우리팀의 소중한 디자이너 예준누나가 디자인을 지속적으로 보여주면 우리의 컨펌을 받으면서 좋은 디자인으로 발전하고 있었다.

Pool에 함께 Dive In(집중하다) 하는 듯한 전체적인 디자인 컨셉. 장시간 켜두는 서비스이기 때문에 어두운 테마를 사용했다.

이름 정하는것도 정말 어려웠다…ㅋㅋ 다양한 아이디어를 내다가 둘째날 우리 서비스명도 확정을 하게 됐는데 처음에 내가 아이디어 피칭을 하면서 FocusWithMe(가제)로 냈던 것은 우리의 팀명으로 쓰기로 했고, 우리 서비스 전반적인 컨셉을 Pool(수영장)에 함께 빠져 몰입할 수 있는 느낌을 주기 위해 “Dive In” 이라는 이름으로 가기로 했다. 이름을 확정하니 마음 한켠이 편안해진 기분..

그리고 해커톤 기간 동안 현업에 계시면서 각 분야에 전문성을 가진 멘토분들께 멘토링을 받을 수 있었다. 나는 둘째날부터 멘토분들께 멘토링을 신청해 현재 우리의 프로젝트를 보여주면서 홍보와 어필(?)을 하는 동시에 피드백을 받고, 개발과 창업에 대한 진로에 대한 고민도 나누었다. 다른 팀원들은 개발에 특히 더 바빠 주로 내가 혼자 멘토링에 들어갔기에 열심히 메모장에 멘토링 로그를 타이핑해 팀원들과 슬랙에 공유했다. 우리의 프로젝트의 피봇팅과 전반적인 기능에 대한 피드백을 받았는데, 모든 멘토분들께서 값진 피드백과 함께 우리팀의 서비스를 좋게 봐주셔서 감사했다.

멘토링을 받으면서 기록한 노트

셋째날 + 대망의 프로젝트 제출

Front-end 개발을 하면서 동시에 예준누나 디자인 피드백을 주고, 발표자료를 같이 만들다가 5시쯤 눈이 너무 침침해서 한시간 정도 눈을 붙이려던게, 3시간을 자버렸다….. 6:00am에 진행상황미팅을 하기로 했는데 8시에 일어나다니.. 팀장이 놓쳤다는 마음에 미안한 마음이 컸다… (물어보니 그때 깨어있는 팀원이 개발 두명밖에 없어서 그냥 계속 개발했고 큰 문제 없었다고ㅋㅋ…)

Why, How, What에 입각한 발표자료 뚝딱뚝딱…

우선 일어나서 다시 발표자료를 제작하고 우리의 서비스가 얼추 완성이 되가자 바쁜 와중에 시연 영상도 찍었다(영상 맨 앞에 손흔드는게 좋겠다는 지희누나의 아이디어로 그렇게 우리 영상이 시작!)

개발의 경우 원래 AI가 얼굴의 방향 + 손까지 인식을 해서 집중중 / 스마트폰중 / 다른데 보는중 / 자리비움 등 다양한 상황을 인식하고 그 기록을 밑에 타임라인에 표시하게 하여 집중을 오래 유지할 수 있도록 하는 것이 1차 목표였는데, 시간 상 다 구현을 할 수 가 없어(애초에 3일 내에 만들기에는 너무 많은 기능들을 가진 프로젝트였다..ㅎㅎ) 얼굴의 유무와 방향까지는 인식해서 카메라 off모드에서는 이모지를 씌우고, 현재 집중의 유무만 알려줄 수 있는 정도로 완성이 되었다. 처음에 의도했던 reward와 gamification요소가 드러나는 기능이 제대로 드러낼 수 없던 것이 아쉬웠지만, 제출 2시간을 남긴 지금은 가장 핵심적인 core기능만 구현해서 보여주는 것이 중요했다.

제출 시간 1시간 전, 지오가 영상편집으로 컷편집을 해주면 나는 부랴부랴 휴대폰 녹음기로 나레이션 더빙을 하면서(마음이 급하니 NG를 더 자주내는…하) GitHub Repository 체크도 하고, 우리 팀 프로젝트 소개 내용도 수정하고, YouTube에 발표 영상 업로드도 완료하고, 프로젝트 소개 PDF도 완성해서 최종적으로 제출을 완료했다!

하얗게… 불태웠다…..

우리팀을 포함해 총 38개의 모든팀이 프로젝트를 제출 완료했다.

발표와 시상

최종발표는 팀당 3분의 시간이 주어진다.. 발표와 질의응답까지 3분이라 고생해서 열심히 많은 서비스를 소개하는데 너무 짧은 것 같은 것 같다는 생각이 들었지만… 뭐 어쩌겠는가. 모두 그 정도의 발표 시간이 주어지는 상황 속에서 최선을 다하는 수밖에.

Zoom으로 화면공유로 아예 2분 47초에 맞춘 우리의 발표영상을 틀고 질문과 우리 서비스를 실제로 테스트 해볼 수 있도록 도메인 공유는 Slack 전체채널에서 진행했다.

GitHub : https://github.com/teamDiveIn/INTRO

발표와 시연을 마친 후 참가자, SW중심대학 교수, 산업체 전문가의 투표로 결정이 되었는데, 참가자들은 각자 5팀에 투표를 할 수 있었다. 30분간의 투표가 마무리 되고 금새 집계가 되어서 시상을 바로 시작했다. 기업후원상부터 특별상, 우수상, 최우수상, 그리고 대상 순서로 하나씩 유튜브 라이브와 슬랙을 통해 실시간으로 발표했다. 이때 조금 아쉬운 점은, ‘우리는 커먼컴퓨터나 네이버의 관련 기술, API를 활용한 서비스가 아니었기 때문에 기업후원상을 생각지 않았고 메인상을 노려보자! ‘ 생각했는데, 나중에 멘토님께서 네이버상에도 추천을 하려고 하는데 신청을 안해서 클로바 스피커를 받을 수도 있을 기회를 날린것 같다는 것.. 아무튼… 좋은 상을 하나 둘 씩 받는데 우리팀이 점점 호명이 안될 수록 슬랙톡방에서 우리는 설마..? 하는 기대감에 부풀었다.

사회자님께서 너무나 쫄깃하게 밀당을 하시니 더 심장이 쿵쾅댔던 것 같다ㅋㅋ

두구두구두구두구…

대상! FocusWithMe 팀의 Dive In!!!!

과기정통부 장관상과 함께 300만원!!!!! :D

팀장으로써 얼떨떨하게 수상소감 발표중…

동시간 우리 팀채널ㅋㅋㅋㅋ

감격에 찬 우리는 코로나 19 상황이 좀 나아지고 사회적 거리두기가 완화되면 다같이 오프라인으로도 모이기로 약속하며 수상이 끝나고서는 카톡방도 팠다(우리 상탄걸로 소고기 먹어야지!!)

우리팀 최고!!!

정말 부족한 팀장의 주도하에 프론트 구현+백엔드 서폿까지(사실상 풀스택…) 도맡은 병규형, 3일동안 너무너무 고생한 백엔드 마스터 지희누나, 우리의 핵심이었던 ML을 담당한 지오, 그리고 진짜 금손 디자이너 예준누나까지.. 모두 각자의 역할을 200% 달성한 덕분에 좋은 결과를 낼 수 있었던 것 같다. (이번 팀장으로써 최대 업적 = 많은 참여자 분들을 중에 우리 보석같은 팀원들을 영입해 한 팀을 이룰 수 있도록 한 것! 이 아닐까 생각한다ㅎ)

해커톤 기간 동안 우리팀의 아이디어와 진행상황을 보면서 솔직하게 상을 탈 것 같다고 기대하긴 했다..ㅎㅎ 진심 반 장난 반으로 오전 4시쯤에는 예준누나와 발표자료 만들면서 메모장에 수상소감도 끄적였을 정도로ㅋㅋㅋ 근데 다른 팀들의 발표를 보면서 이색적이고 높은 퀄리티를 보여주는 팀들이 많아 재밌게 보면서, 우리가 처음에 고려한 기능들 중 구현을 마처 못한 것들(집중 타임라인, 다양한 상황 인식, 마이페이지 리워드, 친구와 경쟁커뮤니케이션 등)을 다 보여주지 못한 것에 조금은 아쉬움이 남기도 했다. 병규형과 지희누나에게 많이 집중된 개발로 인해서 내가 좀 더 개발쪽으로 도왔다면 구현할 수 도 있지않았을까하는 생각과 다음에 또 해커톤에 참가한다면 실력을 많이 키워 팀에 개발자로 더 큰 공헌을 할 수 있도록 해야겠다는 다짐을 한다.

지난 여름, DHH2020 해커톤에 안드로이드 개발자로 창업팀에 합류해 대상을 수상한 이후로 두번째 해커톤이었다. 첫번째 해커톤은 2–3주간 비즈니스 트랙(창업)에 좀 더 초점을 맞춘 해커톤이었기 때문에 2–3일간 밤샘코딩을 하며 정말 단기간의 레이스를 펼치는 순수 해커톤은 내게 처음이라고 볼 수 있다. 부족한 실력이지만, 두 번의 해커톤 출전에서 두 번 다 1위를 한 것도 참 행운이자 뿌듯한 경험이다. 전국의 다양한 학생들과 교류하며 개발에 대한 열정과 실력을 확인할 수 있었고, 스스로 성장할 수 있는 기회가 될 수 있던 것이 이번 해커톤의 큰 수확이다.

아이디어를 멘토분들 뿐 아니라 많은 분들이 너무 좋게 봐주시는 것 같아 이번 해커톤으로 만나게 된 소중한 사람들과 현 서비스를 deploy해보고 싶다는 욕심이 생긴다. 3월부터 네이버에서 개발 인턴을 시작할 예정이라 시간이 될지, 인턴이 그게 끝나는 대로 4학년이 지나기 전에 군입대를 고려 중이기 때문에.. 가능할지는 모르겠지만 (정말 하고 싶은건 너무 많고 시간은 왜이렇게 부족한지 몸이 두세개였으면 좋겠다) 여튼 좋은 경험과 기억들로 마무리한 해커톤이었고, 더욱 발전하는 내가 될 수 있도록 도약할 일만 남았다.

#SW중심대학협의회 #SW중심대학 #소프트웨어중심대학 #소프트웨어 #과기정통부 #과학기술정보통신부 #인재양성 #사람투자 #10대과제 #당신의꿈에투자합니다 #AI #SW #10만인재양성

Comments