iamkanguk.dev

[해커톤] 제 2회 가천대학교 와글와글 해커톤 참여 전 준비! 본문

행사/해커톤

[해커톤] 제 2회 가천대학교 와글와글 해커톤 참여 전 준비!

iamkanguk 2024. 2. 9. 19:40

 

예전에 UNITHON 이라는 해커톤을 참여한 경험이 있는데, 그 때는 진짜 개발의 ㄱ자도 모르고 해커톤의 ㅎ자도 모르고 참여해서 아쉬운 부분이 되게 많았다. 그래서 이번에 가천대학교 선후배님들이 준비해주신 해커톤 행사에 참여자로 확정이 되어서 수상까지 가능하다면 노려볼라고 한다 하핳..

 

블로그는 그냥 필자가 쓰면서 어떤걸 준비해가면 좋을지?에 대해서 써보려고 한다. 예전에 해커톤하면서 아쉬움도 많았던 만큼 준비해가야할 사항들이 조금씩 머릿속에서 정리가 되는 것 같다.

 

1.  기본 준비물

필자는 이번 해커톤에 참여한다면 다음과 같은 준비물들을 챙겨갈 것 같다.

  • 마우스, 마우스패드, 키보드, 노트북 거치대, 노트북
  • 아이패드 (아이패드로 스크린 쉐어링하면 더 좋긴할 듯?)
  • 각종 충전기들과 멀티탭
  • 겉옷, 텀블러, 세면도구 등
  • 개발하면서 참고할만한 서적 (선택) => 필자는 Node.js 백엔드 개발이기 때문에 Node.js 교과서 책 가져갈거임!

 

2.  개발을 위한 준비물

개발을 위한 준비물? 말은 이상한 거 같은데 어쨌든 1번에서 언급한 물건들은 제외하고 이제 개발에 도움이 될만한 준비물들을 한번 언급해보려고 한다. 참고로 아직 팀원들은 모르는 상태이다.

 

한가지 중요한 점은 해커톤이라는 것이다. 해커톤은 약 1박2일의 시간동안 개발을 하는 것(실질적으로는 24시간도 아님. 여기서 뭐 설명, 디자인 및 기획 설계가 포함되면 얼마 되지도 않음)이기 때문에 기능 구현 속도가 우선이라고 나는 생각한다. 무조건 1순위는 기능 구현이다. 따로 유효성 검사나 이런 것은 후순위에 두어야 한다. 그렇기 때문에 기능 구현 속도를 높이기 위해서는 아래와 같은 환경들이 먼저 구성되어야 한다고 생각한다.

(1) GitHub Convention

어떤 프로젝트를 할 지는 모르겠지만 분명히 GitHub은 사용할 거라고 생각한다. 이전 해커톤에서도 깃헙을 사용했던 것 같은데 이런 컨벤션과 PR 템플릿 등이 없어서 은근히 시간을 많이 뺏겼다. 이번에 백엔드도 혼자하는게 아니라 3-4명 협업이라고 하시는 것 같아서 이런 컨벤션들과 PR 템플릿, 그리고 Branch 규칙 등을 한번 준비해보면 괜찮겠다 싶었다.

(2) (백엔드 한정) ERD 설계 도구

마찬가지로 ERD 설계가 필요한 프로젝트를 한다면, ERD를 설계할 수 있는 툴을 준비해야 한다. ERD 설계할 때 기본적으로 사용하는 컬럼들 (id, created, updated 등)은 세팅해놓아도 은근히 시간절약을 할 수 있다.

 

ERD 설계 도구는 대표적으로는 무료 툴인 ERDCloud가 있다. 따로 툴을 구매하지 않으신 분들이라면 이 툴을 사용하시면 좋을 것 같다. 하지만 필자는 매달 돈을 내면서 사용하는 툴이 있다. AqueryTool이라는 툴인데 이건 유료다. 하지만 진짜 편하다. ERDCloud도 사용해봤는데 필자의 입장에서는 많이 불편했다.

 

AqueryTool은 진짜 실제로 손으로 그리는 것 처럼 DB 설계를 할 수 있는 도구들도 그렇고 디자인이 너무 간결해서 좋은 것 같다. 크게 비싸지는 않으니 한번 사용해보면 좋을 것 같다. 필자는 이번에 해커톤 참여해서 이 툴을 통해서 설계를 해보려고 한다.

(3) Boiler Plate (보일러플레이트) (강추)

보일러 플레이트는 흔히 말해서 템플릿이다. 개발 시작을 도와준다고 생각하면 된다. 이거는 해커톤에서는 거의 필수라고 생각한다.

템플릿이 있어야 팀원들에게 공유해서 시작점이 같도록 개발을 시작할 수 있고 개발을 시작하기 좋다.

 

이번 해커톤에서 필자는 Node.js 개발자로 지원을 했는데 정확히 어떤 프레임워크로 작업을 하게 될지는 아직 모른다. express로 할지 아니면 NestJS로 할지는 잘 몰라서 어떻게 준비를 할 지는 모르겠다.

 

아마도 해커톤이니 만큼 NestJS 보다는 가볍고 작업하기 편한 express + Javascript로 준비하지 않을까? 싶기는 하다. 아직 팀원들이 결정되지 않아서 팀원들이 어떤 프레임워크를 사용해봤는지는 모르니깐..

 

NestJS는 cli를 통해서 기본 시작점을 잡을 수도 있고, express는 express-generator 라이브러리를 사용해서 편하게 구축할 수도 있지만 필자가 말하는 보일러플레이트는 단순히 시작점만 잡힌 템플릿이 아닌 기본 기능도 제공할 수 있는 그런 템플릿을 말한다.

 

예를 들어 해커톤에서 로그인은 자주 구현되는 기능인데, 이런 로그인 같은 기능들은 돌려쓰기 하는 경우가 다반사이기 때문에 로그인과 회원 DB 같은 경우에는 그냥 시작점에 바로 세팅해놔도 괜찮을 것 같다는 생각이 들었다.

 

결론은 필자는 간단하게 express로 템플릿을 하나 만들어보려고 한다..! 왜냐면 NestJS는 지금 작업하고 있는 프로젝트가 있어서 중요한 부분 다 빼고 바로 사용하면 되기 때문에 괜찮을 것 같다.

(4) 서버 호스팅 (AWS, GCP, NCP 등) (선택)

이거는 팀원 분들과 의견을 조율해야 하는데 보통 서버 호스팅을 하는지?는 사실 잘 모르겠다. 하지만 대부분 해커톤이 마무리가 되고 추가로 디벨롭을 하는 경우도 많이 봐서... 이건 팀바팀으로 남겨두도록 하겠다.

 

그래도? 미리 준비해가서 나쁠 건 없다고 생각한다. 필자는 지금 프리티어 EC2로 한개 있긴한데 NestJS를 돌리고 있다. 다른 팀원들한테 우선적으로 물어보고 안된다고 하면 필자의 EC2에 하나 더 해야할 것 같긴하다..!

 

3.  마음가짐

일단 위에서 언급했듯이 해커톤은 너무 세세하게 디테일을 신경쓰지 않는 것이 중요하다고 생각한다. 딱 중요한 부분만 빠르게 캐치해서 팀원들과 Task를 분배하고 빠른 구현으로 여러개 기능을 찍어내는 것이 중요하다.

 

Backend에서는 그렇게 기능들을 많이 찍어내놓고 API 문서를 작성해놓을 때 쯤이면 Frontend 분들은 UI 작업을 마쳐놓고 이제 API 연결을 시작할 것이라고 생각한다. 그래서 기능들을 먼저 얼추 찍어놓은 다음에 숨 한번 돌리고 API 연결할 때 발생하는 에러들 처리하고 추가적으로 기능을 구현하면 된다.

 

마지막으로 필자는 첫 해커톤에서 같이 백엔드 협업하는 팀원에게 도움을 많이 드리지 못했다. 그래서 많이 아쉬움이 남는 해커톤이었지만 그래도 나름 재밌는 경험이었고 사람들도 많이 만나서 개발자의 마인드? 라는 걸 배웠던 것 같다.

 

이번에 참여하는 해커톤 같은 경우에도 사실 그럴 수 있다. 나보다 더 뛰어나신 현직자 분들도 오실수도 있기 때문에 오히려 더 배울점도 많을 수 있지만 어쨌든 학생들이 많이 오는 해커톤 행사이기 때문에 이번에는 필자가 조금 주도적으로 참여해서 도움을 줄 수 있고 또 배울 수 있는 그런 개발자의 포지션으로 임해보려고 한다.

 

해커톤 행사에 참여하고 나서는 이제 후기글이랑 작업물을 소개하는 포스팅을 작성할게요! :)