본문 바로가기
Life

[발표] 해커톤 200% 즐기기: 해커톤이 처음인 사람들을 위한 진입장벽 낮추기

by r4bb1t 2023. 10. 29.
반응형

 

고려대학교 중앙 컴퓨터동아리 KUCC에서 세미나를 진행했습니다. 조금 부끄럽군요..
블로그에는 발표에서 어떤 이야기를 했는지 텍스트로 간단하게 남겨보려고 합니다..^♡^

해커톤이란 무엇인가?

해커톤이 어떤 식으로 진행되는지에 대한 간단한 설명입니다. 팀 빌딩 및 주제 공개 ▶ 아이디에이션 ▶ 개발 ▶ (중간 스피치) ▶ 개발 ▶ (멘토링) ▶ 발표 ▶ 시상으로 진행되는데, 해커톤마다 당연히 차이는 있겠지만 큰 틀은 비슷하게 진행돼요.

발표 전에 설문조사를 받고 간단히 정리해보았는데요, 해커톤에 참여하기 꺼려지는 이유 중 가장 큰 것이 '실력이 부족하다고 생각해서', '다른 팀원에게 폐를 끼칠까봐'였습니다. '진입장벽이 높아서'와 함께 결국 본인의 실력이 부족한 것 같다는 이유가 대다수였어요.

실력이 부족해서?

발표 대상이 대학생이기 때문에, 다들 동아리 내부 해커톤이나 대학생 대상 해커톤 등을 고려하고 계신다고 생각했어요. 웬만한 대학생 대상 해커톤은 실력이 엄청나게 뛰어난 사람들이 기술 차력쇼를 벌이는 행사는 아니에요. (물론 케바케지만..) 부담을 느끼기보다는, 오히려 짧은 시간 안에 많이 배우고 경험을 쌓을 수 있는 기회라고 생각하고 참여하면 좋겠다는 이야기를 하고 싶었습니다.

다른 팀원에게 폐를 끼칠까봐?

물론 자신의 실력이 부족해서, 다른 팀원에게 폐가 될까봐 참여가 꺼려지는 마음이 있을 수 있어요. 하지만 해커톤에 목숨 건 사람은 없다는 거..^0^ 저는, 실력이 상대적으로 떨어지는 팀원과 함께 하는 것도 필요한 경험이라고 생각해요. 물론 모두의 생각이 같을 수는 없겠지만, 해커톤에 참여하는 팀원들도 다른 팀원의 실력이 뛰어나지 않다고 해서 기분 나빠하지 않을 거라고 믿어요. 저도 그렇구요.

해커톤이 뭔지 잘 몰라서?

해커톤 사실 별 거 없습니다! 한 번 나가보는 게 제일 분위기를 이해하기에 가장 좋을 거라 생각해요. 큰 해커톤이 아니더라도, 작은 규모의 동아리나 교내 해커톤도 찾아보면 분명 있을 거예요. 부담 갖지 않고 한번 참여해보면, 이런 행사구나, 하고 조금 부담감이 덜해지지 않을까요?
결론적으로는, 두려워하지 말고 그냥 나가서 실력 쌓고 공부에 대한 의지를 다지자! 라는 생각으로 해커톤에 나가보시면 좋을 것 같아요.

아이디에이션 & 팀 빌딩

해커톤마다 아이디에이션이나 팀 빌딩을 하는 시기는 다 다른데요, 해커톤 전에 팀 빌딩을 할 수 있는 시간을 주는 곳도 있고, 아예 랜덤일 때도 있고, 팀 별로 신청을 받을 때도 있고... 이건 너무 다르지만, 저는 미리 팀을 짜고 나간 적도 있지만 처음 보는 사람들과 합을 맞춰 가는 게 즐거워서 랜덤 매칭을 신청한 적도 많아요. 대신 랜덤 매칭일 경우에는 미리 이야기를 나눌 시간을 주는 경우가 대다수니까, 기술 스택은 맞춰보는 것이 좋습니다!
저는 SKYCC 연합 해커톤에서 랜덤 매칭으로 지원했을 때, 앱 프론트엔드 개발자 분과 한 팀이 되었는데요. 기술 스택을 한 쪽에 맞추기가 어렵다고 판단이 들어서 기획 자체를 웹&앱 둘 다 만들기로 했어요. 발표할 때에도 저희는 이런 기능은 웹 화면으로 보는 게 나을 것 같아서 웹으로 만들었고, 저런 기능은 앱으로 보는 게 나을 것 같아서 앱으로 만들었습니다, 하고 이야기했어요. 기술 스택이 맞지 않아도 돌파구는 있고, 그런 방법을 찾아나가는 것도 해커톤의 묘미가 아닐까 생각합니다😋
아이디에이션은 만약 주제가 당일 공개일 경우.. 정말 쉽지 않은데요. 해커톤이 단순히 기술만 보는 대회가 아니니만큼 아이디에이션에 시간을 많이 쏟게 되는 것 같아요. 2박 3일이었던 고려대학교 여름 해커톤에서는 거의 하루를 꼬박 아이디에이션에 쏟기도 했습니다. 여기서 꿀팁은.. 평소에 '이런 거 있으면 좋겠다'거나, '이걸 활용하면 재밌겠다' 같은 키워드들을 생각해두고 주제가 나오면 그 주제에 맞춰서 미리 생각해둔 키워드나 아이디어들을 조합해보면 새로운 아이디어가 나오는 것 같아요. 경험상 대학생 대상 해커톤에서는 뜬금없고 지엽적인 주제가 나오지는 않았고, 주제 해석에 대한 자율성을 많이 열어주는 경우가 대다수이기 때문에 참고하시면 좋을 것 같습니다. 기업 후원 해커톤 같은 경우에는 기업에서 필요로 하는 서비스들이 주제로 많이 나왔던 것 같아요. 이럴 때는 특히 아이디어가 중요하기 때문에... 참 어렵습니다.

시상

작은 규모의 해커톤은 참가자들끼리 자체 투표를 받기도 하는데요. 보통은 심사위원 분들이 심사를 하시죠. 보통 기술적 난이도보다는 아이디어와 완성도를 보시는 것 같아요. 하지만 이것 역시 케바케..

해커톤에 왜 참가하는가?

해커톤이 뭔지도 잘 모르겠고, 왜 하는지도 잘 모르겠다는 분들도 주변에 의외로 있었어요. 그래서 제가 생각하는 '해커톤에 참여하는 이유'를 이야기해보았습니다.

빠른 프로세스 경험

우선 애자일(Agile)스럽게 협업해보는 경험을 얻을 수 있다고 생각하는데요. 개발자로써는 기획, 디자인, 개발이 같이 이루어질 수밖에 없는 해커톤 특성상 계속해서 변하는 기획과 디자인에 대한 대응을 해보는 경험을 얻을 수 있다는 것이 가장 큰 장점 같아요. 또, 단순히 개발'만' 하는 개발자가 아닌 제품을 이해하고, 제품에 대한 기획까지 함께 하는 프로덕트 엔지니어로서의 역량도 가져갈 수 있다고 생각해요. 또, MVP(최소 기능 제품)을 만들어보는 연습을 할 수 있다는 것도 장점이에요. 꼭 들어가야 하는 필수 기능과 아닌 기능을 구분해서 효율적으로 서비스를 개발하는 일을 경험해볼 수 있다고 생각해요.

새로운 기술 써보기

두 번째로는 제가 해커톤에서 꼭 해보시길 강력하게 추천드리는 건데요, 바로 '새로운 기술 써보기'입니다. 저는 해커톤에 나갈 때, 토이 프로젝트를 할 때나, 팀플을 할 때도 이번에 새로 써볼 기술을 하나 정해요. 예를 들면, 리액트만 써봤는데 이번에는 NextJS를 써보자, 라든가, 이번 프로젝트에서는 GraphQL을 써보자, 같은 라이브러리나 프레임워크를 하나 정하는 것도 좋고요. 평소에는 UI만 짜봤는데 백엔드랑 연결해봐야지! 하는 목표도 좋습니다. 이런 목표를 하나 설정하고 해커톤에 참여하면, 뭔가 결과물이 만족스럽지 않더라도 얻어가는 게 있을 거라고 생각합니다.

흥미

해커톤은 재미있습니다. 밤 새서 달리는 거, 재밌잖아요,, 다른 팀들과 교류하는 기회가 될 수도 있고, 심지어 야식도 주고요? 다른 팀들의 발표를 보고 새로운 인사이트를 얻을 수도 있고요. 재미 하나만 보고 나가도 나쁘지 않습니다..😅 저는 이제 체력이 딸려서 좀 힘들지만요..

멘토링

현직에 계신 분들이 내 문제에 같이 머리를 싸매고 고민해주시는 진귀한(?) 경험을 할 수 있습니다. 모르는 게 있을 때 혼자 끙끙대지 말고 멘토링을 적극 활용하세요! 기술적인 부분 말고도, 기획이나 디자인에도 조언을 구해도 됩니다. 다들 도와주려고 오신 분들이에요. 많이 물어봅시다.

생산성을 위한 도구들

풀 스택 웹 개발을 위한 Next.js, 빠른 배포를 할 수 있는  Vercel, 디자인 라이브러리인  Chakra UI, 빠르게 CSS를 적용할 수 있는 Tailwind CSS와 Tailwind의 컴포넌트 라이브러리인 Daisy UI, 웹 기술로 모바일 앱 개발을 할 수 있는 PWA, Headless CMS인 strapi와 BAAS인 Firebase를 소개했어요. 자세한 내용까지 설명하기엔 너무 길어질 것 같으니 패스합니다. 해커톤처럼 짧은 기간 동안 결과물을 만들어야 하는 상황에서는 있는 걸 갖다 쓰면 좋습니다! 바퀴를 새로 만들지 말고 다양한 바퀴를 입맛대로 골라서 사용해보셔요.

해커톤에서 하지 말았으면 좋겠는 것

더 좋은 경험을 위해, 해커톤에서 하지 말았으면 좋겠는 것을 정리해보았습니다. 가장 먼저, 수상에 집착하지 않는 것을 꼭 강조하고 싶어요. 해커톤이 실력을 증명하는 것도 아니고, 해커톤에서 수상하든 못 하든 인생에 큰 영향이 오는 것도 아니니까요. 수상을 못 하더라도 좋은 경험이 될 수 있으면 좋겠습니다. 그리고 해커톤에서 주어진 시간은 짧기 때문에, 필수 기능만 집중해서 만들고 버릴 것은 버리는 결단도 필요합니다. 디테일에 집착하다가 꼭 만들어야 하는 기능을 못 만드는 불상사가 없기를 바라요. (그렇게 되면 너무 아쉽잖아요.) 세 번째로는 협업을 위해서 참여하는 행사인 만큼 대화를 많이 하고 원활한 협업을 하셨으면 좋겠습니다. 마지막으로는 과하게 스트레스 받지 말자, 인데요. 아무래도 몰입하게 만드는 행사이다 보니 개발이 내 맘처럼 안 되면 마음도 조급해지고 열불도 날 수 있지만요.. 하지만 최대한 스트레스 받지 않고 즐기셨으면 해요.

만약 수상을 노린다면

그래도 이왕 참가한 거 수상을 해보자! 가 목표라면 제가 느낀 점들을 조금 공유해드릴 수 있을 것 같아요. 우선 모든 대회나 시험에 통용되는 출제자의 의도 파악이 1순위라고 생각합니다. 심사 기준표를 주는 해커톤이라면, 참고하시면 좋을 것 같고요. 주로 아이디어, 기술, 완성도를 보더라고요. 기업 후원이 걸린 경우, 기업에서 필요로 할만한 것을 만드는 게 좋은 것 같아요. 기업 관계자가 찾아왔다면, 기업 관계자에게 직접 찾아가서 아이디어에 대한 피드백을 얻을 수도 있어요. 물론 공정성을 위해 확답을 주시진 않겠지만, 방향성에 조금 참고할 수 있을 거예요. 혹은 특정 기술에 대한 특별상이 있다면 그쪽을 한번 노려봐요! (AWS, 슬랙 등...) 이왕 만드는 거, 해당 기술을 잘 활용해보는거죠.
해커톤이 기술 차력쇼는 아니라고 상기했듯이, 어쨌든 아이디어가 중요합니다. 꼭 수익성, 사업성이 있어야 할 필요는 없지만 최소한 의미가 있고, 니즈가 있는 제품이라는 것을 설득할 수는 있어야 하겠죠? 물론 흔하거나 뻔한 아이디어도 괜찮지만, 그렇다면 기술이나 완성도에서 승부를 보거나 특별한 포인트가 있으면 좋을 것 같아요. 기획과 발표도 중요한데요. 기존에 개최된 적 있는 해커톤이라면 검색을 통해 다양한 수상작들 발표자료를 참고해보면 좋아요. 발표만 잘 하거나, 기획만 잘 하면 물론 안되지만.. 발표가 좋다면 인상이 깊게 남으니까요. 더 관심이 갈 수밖에 없겠죠? 개인적으로, 발표할 때에는 최대한 우리가 한 걸 자랑한다는 생각으로 발표하는 게 좋은 것 같아요!
더불어, 서비스를 배포하면 정말 좋습니다. 실제로 해보는 것과 발표 때 보기만 하는 건 정말 다르니까요.  다른 팀들이 있는 공개 채널에 테스트 링크를 올려서 반응을 보는 것도 좋고요. 그 과정에서 얻는 피드백이나 버그 발견도 의미가 있을 것 같아요. 만약 배포가 어렵다면 로컬에서 시연은 가능해야 하겠죠?
하지만! 해커톤 수상은 어느정도 운에 의존합니다. 너무 당연한 얘기지만요. 좋은 경험을 하고, 즐거운 시간을 보내는 것을 목적으로 참여하는 것을 강력히 권장드려요. 수상 그 자체가 아닌, 더 나은 경험을 위해 이 발표를 하고, 글을 작성하는 것이기도 하고요. 해커톤을 좋아하는 사람으로써 처음 해커톤에 참여하시는 분들이나, 궁금하신 분들이 조금이나마 부담을 덜고 즐기셨으면 하는 마음입니다. 읽어주셔서 감사해요! 🐰

반응형

댓글