밤 새워 하는 해커톤은 별로지만..

서문

오픈핵에 참가한 학생들은 두가지 참가 배경이 있다.

  1. 교수님이 그냥 보내서
  2. 참가자가 원해서

저는 이 두가지 이유로 가게 되었습니다.

교수님! 저희 학교는 오픈핵 안가나요? 조교님도 모르시고 계시던데..

?? : 아 그거? 학생들 선별하기 번거로워서 일단 너로 이미 적어놨다.

행사 이전에 준비한 것들

웹 프런트엔드 작업을 한 경험이 몇 번 있어서, 이를 기반한 기술 스택을 보완할 대략 3가지 분야를 종강 이후에 살펴봤습니다.

  1. 자바스크립트 언어 패턴을 더 닦기 위해 자료를 찾아보았다1
  2. 테스트 주도 개발(TDD)
  3. PWA(Progressive Web App)
  4. React Hook:
    1. React Hook 강좌 - @public_danuel
  5. “실전 리엑트 프로그래밍 - 이재승”을 읽음.

테스트 주도 개발의 경우 인프런 - 테스트주도개발(TDD)로 만드는 NodeJS API 서버 등 온라인 강의, 단위 테스팅 도구의 공식 문서를 참고했다.

PWA는 오프라인 캐시, 백그라운드 알림 기능을 제공하는 웹 기술 스택이다. 혹시나 네이티브 애플리케이션과 유사한 경험이 요구되는 앱을 개발할 경우를 고려하여 미리 살펴보았다.

React Hook는 함수 기반의 리엑트 컴포넌트로, 기존의 클래스 기반의 컴포넌트보다 간결한 코드 구조를 작성이 가능함. Vue를 주로 사용하는데, 다른 참가자와 React로 협업할 경우를 고려하여 닦아본 기술이다.

Model-View-Controller 구조를 이해하고자 순수 자바스크립트로 단일 페이지 애플리케이션 데모를 만들 정도로, 웹 기술의 기본 개념에 대한 이해도가 높았다고 생각했지만, 상당히 빠르게 돌아가는 해커톤 현장에서 낯선 도구(리엑트)로 협업하기에는 많은 변수들이 존재하고 있었다. 이건 마지막의 회고 부분에서 자세히 설명한다.

어려움이 없을 거라 생각했지만 해커톤 현장에서는 상당히 빠르게 돌아가는 해커톤

사소한 디테일을 존중하는 행사 프로세스

나는 교수님이 추천해주시는 공기관이나 교내에서 진행하는 교육 사업은 별로 가지 않는 편이다. 항상 정장 입은 분들은 기술 혁신을 꿈꾸지만 그 혁신으로 자신의 밥그릇이 끊기는 것을 두려워해 보이는 것 같았다. (그래서 기술을 규제하는 등..) 아무튼 나는 그런 색안경을 끼고 있다.

오픈 핵은 좀 별개로 규모도 엄청나면서 디테일도 좋은 흔치 않은 행사인 것 같다.

어느 정도 규모 있는 외부 기술 행사처럼 비슷하거나 더 좋은 점을 뽑자면

  1. 다양하고 뛰어나신 멘토 분들
  2. 엄숙하지 않고 가식 없고 솔직하게 유머스럽게 행사 진행
  3. 해커톤의 브랜드 정체성(BI) 및 경험: BI는 2번 항목과 좀 겹치는 것 같고 경험적인 면에서는 양면 명찰을 채택하여 네임택이 가려졌는지 안 가려 졌는지 고민할 필요가 없었다.

협업

평소 문제를 제 시간 내에 해결하는 것에 어려움을 느끼는 성향이라,

  • 사전에 배경지식을 더 쌓아서 익숙한 문제로 만들어 낸다.
  • 잠시 다른 것을 하거나 아예 포기한다(..)

이런 대안을 사용 중인데, 혼자서 여유가 있다는 전제 하에 이루어지는 경우라서, 데드라인이 정해진 팀 단위 업무에는 능률이 나빠서 이번 해커톤을 통해 협업의 경우도 뼈아프게 고려하게 되었습니다.

오픈핵의 정체성이 뭔가 혁신적인 제품을 만드는 것을 요구하지 않지만, 팀마다 열성적으로 진지하게 임하시는 곳도 있었고, 느슨하지만 팀의 화목을 추구하는 곳도 있었습니다.

전자의 팀(일명 드림팀)이 수상 목록에 올라가지 않았을까..라고 생각이 들 수 있지만, 후자의 팀(느슨하고 화목한)이 기술 스택과 코딩 실력을 별개로 아이디어가 좋다면 수상 목록에 다수 포함되었던 것 같습니다.

질문과 멘토링

문제를 해결하지 못하면 잠시 포기하는(?) 독특한 방법 때문에 질문을 하는 것에 익숙치 않는 편이다.

데드라인이 있고 한 파트만 지체되면 파토가 나버리는 해커톤에선 기술적, 협업적으로 부채가 되므로 질문을 적극적으로 해야 되는 상황이었다.

멘토 분께 React의 타입 작성 쪽으로 많은 도움을 받았는데 정말 감사했다.

해커톤 이후 네트워킹 시간에 1인분 이상 하는 개발자가 되려면 어떻게 해야 될지, 지금 이 시기 때 뭘하면 좋을지 멘토 분들께 물어보기도 했고, 그냥 기술 관련해서 수다 떠는 것도 괜찮았었다.

마지막: 회고

React를 쓰게 되면서 변수가 많이 생겼다고 했는데, 반성할 부분이 대충 두가지와 같다.

  1. React의 Hook 대신 Class 컴포넌트를 쓰게 되었는데, Class 기반 리엑트 타입에 익숙하지 않았음
  2. TypeScript 기반으로 프로토타입을 제작하기에는 시간 맞추기 어렵다.

잘 쓰던 도구를 놔두고 다른 도구를 선택한 것은 높은 위험 부담을 가져왔고, 나는 아직까진 손이 비교적 덜가는 VueJS가 좋은 것 같다.

해커톤 이전에 공부했던 내용 중 TDD는 구현하기에 바빠서 별로 쓰지 못했고 나머지도 예상과 달리 별로 쓰이지 않았다.

그 어느 공부처럼 꾸준히 학습하고 평소대로 결과를 내는 것이 답인 것 같음.

앞으로는 내향적인 성격을 개선 할 겸, 질문을 소홀히 하지 않기 위해 상품으로 받은 브라운 라인 인형을 책상 위에 올려두고 고무 오리 디버깅이나 할까나 보다.


  1. “함수형 자바스크립트“, 루이스 아텐시오 [return]