2020 캠퍼스 핵데이 어떻게 준비했나

Roeniss Moon·2020년 6월 18일
7
post-thumbnail

원래는 후기를 쓸려고 했는데 준비과정 다 적고 나니 진이 빠져서 실제 프로젝트 내용은 서브모듈... 아니 링크를 달았다.

HACKDAY 2020 w/COVID-19

  • 이번 해커톤은 COVID-19로 인해 유례없는 방식으로 진행되었다. 인터넷에서 찾아본 그 어느 핵데이 후기와도 다른 식으로 진행했다. 티셔츠는 그래도 주지..

  • 링크가 언제까지 유효할 지 잘 모르겠지만... 웹플레이어 실시간 채팅이라는 주제로 진행했다.

tl;dr

기회 있을 때 지원하세요.

어떻게 준비했나

코딩테스트 (PS)

코테를 준비했다고 표현하는게 좀 찝찝한데... 왜냐면 나는 결국 문제를 시간 안에 못풀었기 때문이다.

총 세 문제가 나왔는데 1, 2번 문제는 쉬웠다. 알고리즘 문제라기보단, 기초적인 요구사항 구현에 가까웠다. 심심해서 문제를 준비해봤다.

"당신은 교역 상점의 주인이다. 찾아오는 손님들은 상점의 물건을 구매하거나, 혹은 자신의 물건을 상점에 판매하려고 한다. 상점에 재고가 충분하다면 판매하고, 상점에 재고가 모자라다면 손님의 물건을 살 수도 있다. 각 물건은 상점에 최대 10개까지만 보관이 가능하다. 모든 물건은 1골드로 거래된다. 상점 주인은 최대한의 노력을 다해 구매/판매해야만 한다.

예를 들어 상점에 '주전자'가 6개 있다고 해보자. 첫 번째 손님이 '주전자'를 3개 구매하려고 한다면, 3개를 판매한다. 두 번째 손님이 '주전자'를 11개 판매하려고 한다면, 현재 보유한 '주전자'가 3개이기 때문에 7개만 구매할 수 있다. 세 번째 손님이 '주전자'를 13개 구매하려고 한다면, 현재 보유한 '주전자'가 10개이기 때문에 10개만 판매할 수 있다. 최종적으로 상점은 6골드를 얻었다.

상점에 보유한 물건과 재고의 개수가 2차원 배열로 주어지고, N차원 배열에 N명의 손님들의 상태가 표시된다. 손님의 상태는 (1) 판매 또는 구매 플래그, (2) 물건 이름, (3) 물건 개수가 1차원 배열로 표시된다. 모든 손님과의 거래가 종료되었을 때 처음에 비해서 몇 골드 늘었는지 또는 줄었는지 그 값을 리턴하라."

이런 느낌의 문제가 1, 2번이었다. 별로 어렵지는 않은데 읽을 게 많고 잔실수 조심해야 하는 문제들. 함정도 한 두 군데 있었음.


반면 3번 문제는 ⭐️혼모노⭐️였다. 백준으로 따지면 난이도 골드🏅2~3 쯤이 아닐까 싶다. 주제는 DP였다.

그런데 위에서 언급했듯이 나는 이 문제를 틀렸다. 그날 밤 8시쯤 되서야 답을 냈다. 그럼 남들 다 맞추는 1, 2번 문제만 통과했다는 것인데, 왜 내가 뽑혔을까?

네 가지 정도 이유를 추측해 볼 수 있다.

  1. 3번 문제를 푼 사람이 너무 적어서 그 사람들 다 뽑고도 TO가 남았다

  2. 사실 1, 2번만 풀면 되는 테스트였다~ 내지는 코테가 아예 선발에 별로 영향을 미치지 않았다.

  3. 내 자소서가 일류라서 안뽑을 수가 없었다.

  4. 코로나라서 평가 기준이 완화되었다.

일단 4번은 어느 정도 설득력이 있다. 왜냐면 평균 3명 정도였던 그동안의 핵데이와 다르게 이번엔 평균 5명 정도가 한 팀에 있었기 때문이다.

그리고 2번도 상당히 유력하다. 과거 핵데이에 참여한 친구 둘을 알고 있는데 둘 다 3번을 못 풀고 합격했기 때문이다. (문제 스타일은 매년 비슷하게 'easy 2 hard 1'인 듯 하다)

자소서 (서류)

"주제를 선정하고 본인이 그 주제를 수행 할 수 있다는 근거를 보이시오"

라는 질문에 다음과 같이 대답했다.

"내가 생각할 때 이 주제는 a, b, c 세 가지 Programming skills을 필요로 한다. 그리고 나는 그 세 개를 다 갖춘 지원자다. 그동안 α\alpha, β\beta 프로젝트를 통해 이 세가지를 a, b, c를 모두 갖출 수 있었다."

일단 이 프로젝트를 할 준비가 되었음을 알렸다.

"나는 협업도 잘한다. 오픈소스 PL도 지속적으로 진행중."

핵데이는 기본적으로 해커톤이다. 그리고 해커톤은 짧은 시간에 다른 사람과 잘 소통해야 된다,고 생각해서 이 내용을 넣었다. 그리고 요즘 코딩 세계(?)에서 줄기차게 강조하는 것이 "개발 능력만큼 커뮤니케이션도 중요하다"라는 문장이기 때문에 언급했다.

"그리고 나는 이 주제에 관심이 진짜 많다."

이 주제는 video streaming과 socket 통신이 주 소재였다. 그런데 나는 그 둘을 다 제대로 접해본 적이 없는 상태였다. 그래서 그런 부족한 점을 덮기 위해 이 프로젝트의 기획에 대한 이해가 높다는 점을 어필하려고 했다. '유튜브 live, 아프리카 TV, 티비플'을 언급하면서 말이다.

본인 프로젝트 소개하는 문항과 SW 개발 관련 대외활동 적는 칸이 있었는데 남들 적는대로 적었다.

깃헙

깃헙을 '관리'했다. 관리라는게 굉장히 애매한 표현인데... 취업이나 면접이나 이런 대외활동을 의식하면서 특정 방향으로 유도했다기보단, 깃헙을 사용한 커뮤니케이션의 양을 늘렸다고 보는 게 맞는 것 같다. 구체적으론 이런 느낌이다.

  • JetBrains IDE에는 Key Promoter X라는 플러그인이 있는데, 내가 단축키를 쓰지 않는 방식으로 뭔가 액션을 취하면 화면 구석에 "이 기능은 이 단축키를 쓰면 돼요!"라고 알려준다. 그런데 vscode에는 이런 게 없더라. 검색을 몇 번 해보면 이런걸 만들어 달라는 이슈까지 도달할 수 있는데 여기에 "Key Promoter X is very helpful. I hope this feature be added as soon as possible"라는 댓글을 달았다. 기술적으로 상당히 곤란하다는 VSC 메인테이너의 코멘트를 보고 댓글을 지웠음

  • 이 글이 작성되고 있는 velog의 깃헙에 가서 이래저래 기능을 건의했다. 지금 보니 이슈 페이지 1 페이지에 내가 올린 것만 다섯 개다. 그냥 조금이라도 신경쓰이는 부분이 있으면 별 생각없이 이슈를 남기는 편이다. 한 걸음 더 나아가 PL을 할 수도 있겠지만 부담부담..😅

  • 나무위키와 매우 유사한 위키 엔진인 openNamu 오픈소스에서 몇 개의 PRs를 던진 적이 있다. 이 오픈소스로 개인 위키를 생성해 사용할 때 작은 불편함을 느껴서 issues를 날렸는데, 굉장히 빨리 답변을 받았다. 이게 상당히 용기를 주어, PR까지 나아갈 수 있었다. 한국어로 한국인들과 이슈를 논할 수 있다는 것은 편안하면서도, 안정감을 준다. 파이썬이나 자바스크립트를 하시는 분이라면 한 번쯤 이슈들을 확인해보시길. 여기도 인력은 언제나 모자라다.. 흑흑.

  • 루비콘에서 기회를 마련해주어, 사이드 프로젝트의 일원으로 참가할 수 있었다. (지금도 이 팀은 전진중이다!) 덕분에 코드 커밋을 꾸준히 할 수 있었다. 아무래도 싱글 프로젝트는 추진력이 팍팍 떨어지는 경향이 있다.

이 깃헙이 아무래도 톡톡히 도움이 되지 않았을까 싶다. 내 깃헙이 화려하지도, 대단한 스킬이 있는 것은 아니지만 적어도 뭐가 있긴 하니까 말이다.

어떻게 진행됐나

https://velog.io/@ehdrms2034/2020-네이버-핵데이-참가-후기-2020-Naver-Hackday 저 이 사람이랑 같이했으니까 이거 보시면 됨 ^오^

어떻게 생각하나

  • 핵데이는 모두가 공공연하게 알다시피 현직 네이버 멘토와 함께하는 해커톤 경험, 방학 인턴으로 선발될 수 있는 면접에 초대받을 기회 두 가지 의의를 지니고 있다. 둘 다 개발자를 꿈꾸는 사람들에게는 매우 소중한 경험이다. 그런 점에서, 일단 이 프로젝트에 참여한 것만으로도 복받았다고 생각한다. 하지만 많이 긴장하기도 했다. 실제로 이 다섯 명중에 아마 내가 제일 스트리밍에 대한 개념이 약했을 것이다.

  • 그런데 놀랍게도(?) 막상 프로젝트를 시작하고나선 같은 팀원들과 경쟁하고 있다는 부담이 전혀 들지 않고 그냥 이 프로젝트를 제대로, 잘, 멋있게 만들고 싶다는 생각만 들었다. 우리 다섯 명 다 의욕이 아주 적절하게 과다했다. 지금 생각해보면 팀운이 진짜 좋았다. (각종 해커톤을 경험해본 입장으로서 자신있게 말하는데, 힘든 경쟁을 뚫고 올라왔다고 모두 똑같은 수준의 의욕과 열정을 지니고 있는 것은 아니다) 정말로 괜찮은 분들이었다.

  • 작년에 2019 winter 네이버 핵데이 이슈들 23개 중 절반 이상이 JAVA라며 한탄했는데 올해는 그보다 사정이 확실히 나았다. 사실 이 이슈들은 모두 네이버 각 부서 중 신선한 아이디어가 필요하거나 짬이 모자라거나 인턴을 뽑고 싶은 팀들이 나름대로 각자의 고민을 담아 올라오는 것들이다. 그러니까... 운이 좋으면 JS 관련 팀들이 많이 이슈를 던져주는 구조인 것이다.

  • 하나 더 생각났다. 핵데이는 공고를 굉장히 길게 올려준다. 서류 마감까지 30일 정도의 여유가 있었던 것 같다. 처음엔 "30일 동안 특정 주제를 열심히 공부해서 보여주면 어필이 되겠지"라고 생각했는데 학교랑 병행하기가 정말 쉽지 않더라..;; 결국에는 서류 제출할 때 따로 뭔가 더 만들진 못했다.

짜투리 사진들

첫 온라인 화상 미팅 전 미리 준비한 대략적인 아키텍쳐. 다시봐도 잘생겼다.

nginx 프록시 붙이고 내인생이 달라졌다 ♪

이 날이 우리팀 처음 오프라인으로 모여 기획을 진행한 날인데, 짧은 기간 치고 꽤 괜찮게 얘기가 마무리된 것 같다. 멘토님이 자유방임주의st인줄 알았는데 다시 생각해보니 정말 많이 도와주셨구나. 다시보니 선녀같네...

정해진 날짜가 되자 2020 핵데이 Organization에서 쫓겨났다. 흑흑... 인턴 면접까지 가게 된다면 이 때의 경험을 많이 물어볼 수 있으므로 로컬에 백업해두는 게 좋다.

profile
기능이 아니라 버그예요

3개의 댓글

comment-user-thumbnail
2020년 6월 25일

좋아요 누르고 도망!

1개의 답글
comment-user-thumbnail
2020년 7월 6일

멋지다 멋져

답글 달기