부스트캠프 해커톤 회고

DongHwan·2021년 9월 25일
2

회고

목록 보기
5/21
post-thumbnail

추석이 끝나고 9월 23일부터 24일 이틀간 부스트캠프에서 해커톤, 이름하여 부커톤을 진행했다. 처음에는 25일 토요일에 카카오 블라인드 코테가 있어서 그냥 이틀은 쉴까했지만, 부커톤하면서 팀원들이랑 같이 얘기하면서 할 생각으로 참가했다.

일정

시작은 11시부터 다음날 오후 3시까지였다. 해커톤이었지만, 중간중간 쉬는 타임도 있었다. 같이 모여서 이야기하는 시간도 있었고, 잠시 휴식을 취하는 시간도 있었다. 큰 틀은 해커톤이지만, 중간중간 친목을 다지는 것을 목표로 한 일정으로 생각되었다.

이틀동안 개발만 쭉 진행하는 것도 나쁘지는 않으나, 중간중간 공식적인 쉬는 타임이 있으니 지치지않고 개발을 할 수 있었던 것 같다.

부커톤 시작

우선 우리팀은 나 포함 총 4명이었다. 각자 선호하는 분야는 운이 좋게도 백엔드 2명, 프론트엔드 2명으로 딱 절반으로 분포되었다. 그래서 나중에 역할 분담할 때, 많이 편했다.

부커톤의 주제는 부커톤 참가 신청을 할 때 폼으로 제출한 아이디어 중에 선택하는 것이었다. 괜찮은 아이디어가 많아 다같이 어떤 아이디어를 선택할까 고민했었다. 그러다 1일 1커밋 공부를 하는 사람들이 많다고 생각했기에, 이런 사람들을 위한 아이디어를 선택하였다.
스터디를 하는 사람들끼리 오늘 커밋을 했는지 여부를 확인할 수 있게하고, 만약 오후 11시까지 커밋을 하지않았다면 메일을 보내주는 서비스였다.

아이디어가 정해진 후, 어떤 기술 스택을 사용할 지, 구현해야할 부분이 어디인지, 역할 분담은 어떻게 할 것인지 등을 고민하고 기획하였다. 프론트엔드 분들은 React를 사용하기로 했고, 백엔드는 Express와 MongoDB를 사용하기로 했다. 또, 배포 서버는 nCloud를 이용하기로 하고 개발을 시작했다.

나는 백엔드 개발을 맡았고, 다른 백엔드 개발자분과 이야기해서 우선 로그인 쪽을 맡기로 했다. 로그인은 Github OAuth Login을 사용하기로 했다. 그런데 OAuth로 로그인을 구현하는 것은 처음이라 우선 공부부터 했다.

부커톤 첫날 15시에 중간 발표가 있었다. 100초라는 짧은 시간동안 어떤 아이디어를 개발할 것인지, 어떻게 기획을 했는지 등을 발표하는 시간이었다.
그 때, 프론트엔드 개발자분께서 작성해둔 Figma 프로토타입을 봤는데, 이쁘게 잘 만드셨다... 내가 만들면 무조건 검은 배경에 흰색 글자인데, 역시 프론트엔드 공부하시는 분들은 대단한거 같다.

18시에는 한시간 정도 휴식타임이었다. 팀원들이랑 skribbl하면서 놀았다. 제일 좋은 OS는 윈도우다

사진은 따로 없지만, 20시에도 1시간 정도 운영진분들과 이야기하는 시간이 있었다. 공식적인 이야기를 하는게 아니라, 진짜 놀면서 얘기하는 시간이었다. 해커톤인데 쉬는 타임이 어딨냐면서 싫어하는 사람도 분명 있겠지만, 나는 이렇게 사람냄새나는 시간들이 좋았다.

이후로는 진짜 개발을 하는 시간이었다. 나는 기존에 개발하던 OAuth 로그인 구현을 끝내고, Github API를 연동하는 부분까지 개발을 진행했다. Github API를 사용해야할 부분이 스터디원들의 당일 커밋을 가져오는 것과 특정 인원의 최근 한달 커밋을 가져오는 부분이었다.

적당히 개발을 진행하다가, 새벽 2시쯤에 프론트엔드와 백엔드영역을 합치고 자기로 했다. 해커톤은 원래 밤을 새야 제맛이지만, 행복한 개발을 위해 잠은 포기할 수 없었다. 다행히 브렌치를 합치고 리액트 프로젝트를 빌드하고 서버와 연결하는 것까지 어떠한 문제도 없었다.

그런데 브라우저에서 페이지를 받아보니 스타일들이 적용이 안되는 문제가 발생했다. 고생끝에 발견한 버그의 이유는 Styled-Component를 쓸 때, @import를 사용하면 안된다는 매우 단순한 이유였다. 그런데 아무런 에러가 발생하지 않았기에 발견하는데 시간이 오래 걸렸고, 덕분에 새벽 3시가 넘어서 자게 되었다...

다음날도 마찬가지로 개발을 진행하였고, 2시정도에 모여서 마지막 Merge를 한 후 부족한 부분들을 마저 개발하고 3시에 개발시간은 종료되었다.

(사진을 클릭하면, 개발을 진행한 Github 페이지로 이동할 수 있다.)

3시부터 2시간동안은 데모를 발표하는 시간이었다. 아쉽게도 완전히 개발을 끝내지 못했지만, 데모를 보여주기에는 나쁘지않은 정도로 개발이 되었다. 팀원이 4명이었기 때문에, 각자 30분씩 데모를 발표하고 나머지는 다른 팀의 데모를 보러갔다. 다들 이틀이라는 짧은 시간동안 완성도 높은 프로젝트들을 개발한 것이 대단했다. 그리고 우리팀의 프로젝트 역시 다른 팀들의 반응이 좋았기에 만족스러웠다.

데모 시간이 끝나곤 팀원들과 모여서 이야기를 하다가 끝냈다. 아무래도 프로젝트 개발이 완전히 끝난게 아니라 아쉽긴하지만, 팀원들이 모두 좋은 분들이라 같이 재미있게 해커톤을 할 수 있었다.

프로젝트를 왜 완전히 끝내지 못했는가?

나를 포함하여 팀원들 모두 충분히 프로젝트를 끝낼 수 있을 정도의 실력이 있었다고 생각한다. 그런데 프로젝트를 끝내지 못한 것에 대해 생각을 해보았고, 내가 잘못한 것들에 대해 적어보고자 한다.

우선 프론트엔드 개발자분들이 리액트로 개발을 진행하기때문에, 백엔드 부분에서 빠르게 API를 만들어서 제공해줘야 개발이 용이할 것이다. 그래서 개발을 하던 중간중간에 서버에 결과물들을 올려가며 연동해줄 필요가 있었다. 그런데 나도 내가 맡은 부분만 개발하다보니 이런 것을 신경써주지 못했고, 그 때문에 프론트 개발자분들이 개발을 진행하기 많이 버거웠을 것이다.

또, 기획단계에서부터 API를 어떻게 제공할 것인지 제대로 정하고 명세를 작성했어야 했다. 이번 해커톤에서는 그런 과정이 부실했었다. 앞의 경우와 마찬가지의 이유로 이러한 명세가 제대로 작성되어 있지 않으니, 프론트 개발자분들이 개발에 도움을 주지 못했다.

마지막으로 결과물들을 자주 합쳐보지 않았다는 것 역시 큰 문제였다. 백엔드와 프론트엔드 영역 내부에서는 서로 주기적으로 PR을 보내고 병합하였지만, 백엔드와 프론트엔드 사이에는 중간에 한두번씩만 병합을 했다. 자주자주 결과물들을 합쳐보아야 문제를 빠르게 파악하고 해결할 수 있는데, 그러지 못한 것이 아주 아쉽다.

앞에서 말한 이유들은 내가 아직 경험이 적다는 것을 명백하게 보여주는 사례라고 생각한다. 혼자 개발하는 것은 잘할지라도, 남들과 함께 협업하는 것이 부족하다는 증거이다. 최근에는 단순히 혼자 개발하는 것보다 협업하여 개발하는 역량을 키우려고 노력하고 있지만, 아직 부족한 것은 사실이다. 이번 부커톤을 좋은 경험으로 삼고 더 성장할 발판으로 만들자.

맺음말

우선 부커톤을 참가한 것에 대해서는 매우 만족한다. 부커톤을 하면서 내가 부족했던 점들을 더 알 수 있었고, 조금 더 경험이 쌓였다고 생각한다. 그리고 그런 것을 제외하더라도, 팀원들이랑 같이 개발하고 이야기하던게 재미있었기 때문에, 참가한 것을 후회하지 않는다.

부커톤이 없었다면 그냥 이틀동안 쉬면서 적당히 시간을 보냈을 것 같은데, 이런 기회를 마련해준 부스트캠프 운영진 분들에게 감사하다.

마지막으로 프로젝트를 완전히 끝내지 못한 것이 아쉽기에, 프로젝트 심사가 끝나면 부족한 부분들을 더 개발해서 진짜로 쓸 수 있도록 만들 생각이다.

profile
날 어떻게 한줄로 소개해~

0개의 댓글