네이버 개발자와 함께하는 해커톤, HACKDAY를 마치며 남기는 회고
지원 과정
사실 올해 HACKDAY SUMMER에 떨어졌던 경험이 있었기에 이번 HACKDAY WINTER는 지원하지 않으려고 했다. 마감 며칠 전, “그래도 지원은 해보자, 잃을게 뭐 있어?” 라는 생각이 들어 급하게 지원서를 작성했다.
2019 HACKDAY WINTER 주제
핵데이는 특이하게 지원서에서 진행할 과제를 2개를 선택해야한다. 그리고 지원서에 희망주제를 수행하는데 필요한 기술과 역량을 작성해야한다. 주제를 제안한 개발자들이 직접 참가자를 선발한다. 그렇기에 개발자 분들이 보기에 함께 개발하고 싶은 마음이 드는 지원서 준비가 필수인 것 같다. 왜 내가 핵데이에 가서 이 주제를 해야하는지를 설득해야한다! 설득은 글로만 하는게 아니라 코드와 함께 해야 설득력이 있는 것 같다.
멘티와 멘토를 모두 경험하신 네이버 개발자분이 쓰신 핵데이 글을 읽어보면 어떤 느낌인지 더 알 수 있다.
대학생이라면 네이버 캠퍼스 핵데이에 참가해야하는 이유 + 지원 꿀팁
이번 핵데이 WINTER에서는 총 23개의 주제로 진행되며 NAVER, NAVER WEBTOON 개발자가 제안한 주제들이었다. 회고를 하면서 확인해 보니 이전 HACKDAY SUMMER 때 보다 주제가 많이 줄어든 것을 확인할 수 있었다. (37개 주제, NAVER, WORKS MOBILE, NAVER LABS, NAVER WEBTOON 개발자 제안)
iOS 주제는 총 4개가 있었는데, SketchBook과 리스트형 플레이어를 선택하였다. 다른 두개의 주제는 공부해도 하기 어려울 것 같아 빠르게 포기하였다. 주제를 선정하고 이전에 핵데이에 합격하신 분의 이야기도 들으며 준비를 진행하였다.
SketchBook
그림 그리는 앱은 만들어본 경험이 없었기 때문에 CGContext를 사용하여 간단한 그림 그리는 앱을 만들어 본 뒤 지원서를 제출하였다.
리스트형 플레이어
기존에 간단하게 유튜브 예전 버전을 클론코딩을 해본적이 있어서 따로 준비는 하지 않고 복습만 하고 지원서를 작성하였다.
코딩 테스트
코딩 테스트는 핵데이 선발에 결정되는 것은 아니지만 지원자 검토 시 참고사항으로 이용될 예정이라고 공지를 했다. 난이도는 어려운 편이 아니기 때문에 지원서를 입증하기 위한 수단 같았다.
HACKDAY로 초대합니다!
핵데이 결과 발표날, 아침부터 일이 있어서 바빠서 정신이 없었는데, 갑자기 메일이 왔다.
[NAVER] 네이버 캠퍼스 핵데이로 초대합니다.
!!! 정말 기대를 안해서 많이 놀랐고 기뻤다. 이전에 핵데이 하셨던 분들에게 정보들과 꿀팁들을 주워 들으며 준비 계획을 세웠다. 주제는 바로 알려주지 않아서 저장소에 초대될 때까지 기다려야했다.
얼마 지나지 않아서 선정된 과제로 저장소에 초대되었고, 저장소 이름은 ‘SketchBook’ 이었다. 해당 주제로 뽑히게 된 이유는 간단한 앱을 미리 만들어보고 이를 지원서에서 어필한게 큰 것 같다.
저장소에 나 혼자만 초대된 것을 보고 멘토님께 혼자하는지를 여쭤봤는데, 정말 혼자 진행한다고 했다. 허헣?
사전미팅
타지에 살아서 컨퍼런스 가는 날 사전미팅을 진행하기로 하였다. 멘토님과 같이 밥을 먹고 핵데이까지 공부할 것들과 먼저 개발해야 할 부분들을 이야기했다. 공부할 게 엄청 많았지만 뭔가 행복했다. 기존에 내가 개발하던 방식을 점검해주시며 다른 방법, 실제 현업에서 사용되는 방식을 제안하셨다. 현업에서 이 방법을 사용하는 이유까지 잘 설명해주셔서 이해할 수 있었고 현업에서 사용되는 방식이니 설레기도 하면서 재밌을 것 같았다. 멘토님이 정말 정말 친절하시고 좋았다.
핵데이 준비 외에도, 물어보고 싶은 것은 아무거나 물어보라고 하셔서 평소에 궁금했던 부분들을 많이 물어볼 수 있어서 너무 좋았다. iOS 개발을 늘 혼자 해왔던 나의 답답함을 해소해주셨다.
HACKDAY 까지
공식문서 중심으로 공부하라고 하셨는데 읽어도 읽어도 무슨 말인지 감이 안와서 거의 이틀동안 공식문서만 읽다 정신이 나갈 것 같아서 개발에 들어갔다. 그 개발도 기존에 사용하지 않았던 방식이라 많이 버벅거리며 개발에 진척이 없어 불안해졌다. 뭔가 멘토님께 질문하기는 애매하다고 생각해 혼자 해결하려고 했던 것 같다. 특히 XIB 사용은 상당히 어색해서 오래 걸렸다. (조금만 더 일찍 더 질문을 했거나 내 상황을 멘토님께 말씀드리고 진행했다면 더 좋았을 것 같다.)
그래서 XIB는 건너 뛰고 다른 작업을 해야겠다는 생각이 들어서 멘토님께 일단 PR 날리고 머지해도 되냐고 여쭤봤는데, 리뷰를 해주신다고 하셨다. 많은 리뷰를 받게 되었고, 사소한 것부터 하나하나 잡아주셔서 정말 큰 도움이 되었다. 주옥같은 리뷰들을 해주시니 신나서 더 개발을 하게 되었던 것 같다. 열심히 리뷰를 반영하여 첫 PR을 마쳤고, 멘토님이 첫 PR을 축하해주셔서 행복했다. 너무 스윗하셨다. 이 때가 핵데이 전날이었는데, 선 그리는 것 까지는 미리 구현을 해야할 것 같아서 완벽하게는 아니었지만 선 그리는 것 까지 개발하여서 갔다.
대회 당일
1시까지 그린팩토리에 모여 간단한 오리엔테이션을 하였다. 이번에 처음 그린팩토리 가봤는데 엄청 좋았다. (이래서 네이버 네이버 하는구나~) 춘천의 네이버 연수원 CONNECT ONE으로 출발하였다. 설레여야하는데, 버스가 더워서 너무 힘들었다. 도착 후 핵데이 후드티를 받고 자리에 앉았다. (나도 핵데이 기념옷을 받는구나!) 커넥트원도 시설이 좋다고 했는데, 정말 좋았다. 경치도 좋았다.
DAY 1
네이버 측에서도 밤을 새우는 것은 권장하지 않았고 간단한 오리엔테이션이 끝나고 짐을 풀고 바로 개발에 들어갔다. 팀원이 나 한명 밖에 없으니 개발은 조금 빠르게 진행될 수 있었던 것 같다. 처음엔 부담스럽다고 생각했지만, 효율적으로 진행할 수 있었고, 무엇보다 1:1 멘토링을 받을 수 있어서 엄청난 행운이었던 같다! XD
핵데이 진행 중에도 멘토님이 정말 배려를 많이 해주시고 편하게 진행할 수 있었다. 덕분에 모르는 것도 바로바로 물어볼 수 있었다. 또한 핵데이가 경쟁을 하지 않고 진행되는 해커톤이여서 스트레스를 받지 않고 내 페이스에 맞게 진행할 수 있었다. 온전히 개발에 집중할 수 있어서 좋았다.
초반에 UI 노가다를 하기도 했고 집중해서 개발을 하다 보니 금방 피곤해졌다. 첫날의 시간은 정말 빨리 가버렸다. 중간중간 내가 힘들어하는게 느껴지면 멘토님이 같이 산책도 하자고 하셨고 산책하며 이야기도 하는 것도 좋았다.
스케치북의 핵심인 지우개 부분을 구현하는 부분에서 막혀서 멘토님과 같이 의논하면서 개발하다 보니 금방 시간은 12시가 되었고 많이 지쳐버렸다. 오늘은 여기까지만 하기로 하고 12시 반쯤에 숙소로 돌아갔는데, 씻고 나니 완전히 졸리지도 않고 뭔가 이대로 자면 안 될 것 같아서 멘토님이 마지막에 해주신 조언을 되새기며 혼자 다시 개발을 하고 새벽 4시에 잠을 잤다.
DAY 2
아침 9시 반쯤에 일어나서 아침을 먹고 다시 멘토님과 만나서 어제 못다한 이슈를 정리하고 다시 개발을 진행하였다. 멘토님은 본인 일도 하시느라 6시에 주무셨다고 한다. 6시요..? 그래도 미소를 잃지 않으시며 친절하게 저를 대하시는 모습을 보며 정말 대단하고 존경스러웠다. 시간이 얼마 남지 않아서 첫날보다는 가이드를 더 잡아주셨다. 첫날에는 내가 좀 삽질하게 일부러 두셨다고 하셨다. 하핳 삽질하면 실력이 많이 는다고 하셨다.
처음 명시되었던 목표를 모두 완성시키지는 못했지만 내가 할 수 있는 만큼은 모두 개발을 했고, 다른 기능을 구현하기에는 시간이 애매하여 개발을 마치고 회고를 진행하였다.
회고
나는 정말 정말 못했다고 생각했는데, 멘토님이 계속 잘했다고 이렇게 많이 한 팀 없을거라고 하셔서… 조금 안심이 되었다. 멘토님은 날개 없는 천사인가? 좋았던 점과 아쉬웠던 점을 서로 얘기하고 추후에 어떻게 공부해야하는지를 알려주셨다. 여전히 공부할게 많았지만, 방향이 잘 잡혀진 것 같아서 좋았다. (실천만 한다면)
- 전체적인 구조는 잘 짜여졌다.
- 코드로 작성된 UI는 유지보수가 힘들다.
- XIB에 익숙해지자
- 레이아웃 코드가 너무 많아 비즈니스 로직이 한눈에 보이지 않는다.
- UI 노가다 작업을 미리 해왔다면 더 좋았을 것 같다.
- git flow 직접 해볼 수 있어서 좋았다.
- GUI 툴 적극 활용
시간이 남아서 내 깃허브도 함께 보며 이런저런 이야기도 했다. 혼자해서 더 여유롭게 마무리도 할 수 있어서 정말 좋았다.
마치며
강연에서나 실제 현업에서 일하는 개발자와 말이나 조금 나눠보지 언제 개발을 같이 해볼 기회가 있을까? 그런 점에서 네이버 핵데이는 정말 소중한 기회인 것 같다. 피와 살이되는 코드리뷰는 물론 어쭙잖게 사용하던 git flow를 직접 경험해보고 git 관련 팁도 많이 얻을 수 있었다. 그리고 많은 iOS 개발 팁들 (Xcode 디버깅, XIB, autoResizingMask 등…)
좋은 기회로 핵데이에 참가해서 소중한 경험을 할 수 있었고, 행복한 추억을 만든 것 같다. 대학생들, 특히 에코노베이션 친구들에게 꼭 해보라고 추천하고싶다!
댓글남기기