최근에 해커톤을 다녀왔는데, 우수상이라는 좋은 결과를 냈던 과정을 작성해보려고 해요. 해커톤명은 2023 GDSC NAMUTHON(나무톤)이였고, 2023년 12월 28일 ~ 29일로 무박 2일간 진행되었어요.
팀원들과 자기소개하기
팀원들은 저 포함해서 총 4명이였고, 간단한 자기소개를 시작으로 인사를 했어요. 저희 팀원들이 각자 맡은 역할을 다음과 같았어요.
- 본인: 풀스택 개발자(프론트엔드, 백엔드, 인프라)
- 팀원 1: 디자이너(web 및 ppt 디자인)
- 팀원 2: 기획 및 발표 준비
- 팀원 3: 기획 및 발표 준비
4명 중 개발자가 저 혼자여서 처음에는 많이 당황했었지만, 오히려 개발 이외의 나머지 부분들을 전혀 신경 쓰지 않고 개발에만 몰두할 수 있는 환경을 팀원들이 만들어주셔서 편하게 진행할 수 있었어요!
UN-SDGs에서 주제 선정하기
이번 해커톤의 주제는 UN에서 발표한 SDGs(지속가능한발전목표) 17개 중 하나를 선택하여, 해결할 수 있는 솔루션을 만들어내는 것이었습니다.

저희 팀은 4번 양질의 교육(모두를 위한 포용적이고 공평한 양질의 교육 보장 및 평생학습 기회 증진)을 선택해서, "모두가 무료로 평등하게 양질의 교육을 받을 수 있도록 한다"라는 비전을 가진 RedTube를 기획했어요.
저희 팀은 "유튜브가 정말 양질의 정보가 많이 풀려있지만, 어떤 순서로 양질의 정보를 습득해야 하는지 잘 모르겠다"라는 사람들의 불편함을 발견했어요. 그래서 저희는 "RedTube가 양질의 학습 자료들을 사용자에게 큐레이션 할 수 있다면, 더욱 쉽게 양질의 정보를 획득할 것이다"라는 가설을 세워서 기획을 시작했어요.
RedTube 기능 정의하기
해커톤인 만큼 꼭 필요한 기능들만 정의해서 개발을 진행해야 했어요. 딱 3페이지를 제작했어요. 페이지별 기능은 다음과 같습니다!
- 메인페이지: 수강할 수 있는 로드맵을 찾아볼 수 있음
- 로드맵페이지: 로드맵이 어떤 강의들로 이루어졌는지 확인할 수 있음
- 학습페이지: 하나의 강의를 플랫폼 내에서 학습할 수 있음
RedTube의 주 컨텐츠는 유튜브의 무료 강의들을 로드맵화하여 사용자들에게 학습 로드맵을 제시하는 것이기 때문에, 필수적인 페이지만 구성해서 나온 결과였어요.
빠르게 개발할 수 있는 기술스택 정의하기
해커톤인 만큼 꼭 필요한 기능들만 정의해서 개발을 진행해야 했어요. 딱 3페이지를 제작했어요. 페이지별 기능은 다음과 같습니
개발자가 저 혼자였기 때문에, 제가 제일 자신 있는 기술스택을 정의했어요.
- FE: Typescript, Next.JS 13.4, TailwindCSS
- BE: Firebase, Express.JS
- Infra: Vercel, Firebase
Express.JS를 이용하여 간단한 CRUD 구현은 경험이 있었지만, Firebase 위에 배포를 하는 것은 처음 해보는 방법이었어요. 그래도 최대한 인터넷 서칭을 통해 빠르게 배포까지 할 수 있었어요. 저희 팀의 간단한 서비스 아키텍처는 다음과 같아요.

RedTube 개발하기
남은 일은 개발하는 것.. 오후 5시부터 새벽 4시까지 중간중간 식사와 간식시간을 제외하고는 정말 몰두해서 하드코딩을 했답니다.. 그렇게 완성된 RedTube..!

첫 번째 사진은 메인페이지입니다! 준비된 로드맵들을 확인할 수 있도록 UI를 구성했어요.

두 번째 사진은 로드맵페이지입니당. 로드맵이 어떤 강의들로 구성되어 있는지 확인할 수 있도록 UI를 구성했어요.

마지막 사진은 강의를 들을 수 있는 학습페이지입니당. 강의들을 학습하는데 최소한으로 필요한 기능들로 UI를 구성했어요. 강의 목록 부분에 css가 약간 깨진 것 같네요..ㅎ ..
최종 발표와 우수상 수상!
저의 역할은 이제 여기까지... 남은 일은 발표를 맡으신 팀원분이 해결해 주셨어요 ㅎㅅㅎ 저희 팀이 이야기하고 싶었던 부분들 모두 심사위원분들께 잘 전달해주셔서, 우수상이라는 좋은 결과도 받았답니다! 밤을 새우고 찍은 사진이라 많이 초췌한 모습이네요.. ㅋㅋ

해커톤에서 수상은 처음인데, 꽤나 뿌듯한 무박 2일이었어요! 상품으로 구글 로고가 들어간 샤워가방도 받았는데, 꽤나 잘 쓰고 있어요 ㅎㅎ 새로운 해커톤 기회가 생긴다면, 한 번 더 좋은 결과받기를..