2019 NAVER CAMPUS HACKDAY WINTER에 참가한 후기를 적어보려 합니다.

네이버 핵데이 2019 포스터

핵데이를 어떻게 알게 되었고 왜 지원했는가?

얼마 전 네이버 커넥트 재단에서 운영하는 부스트 코스 에이스 웹 과정을 진행 했었다.

부스트 코스란?
  • 네이버에서 무료로 제공하는 강의 코스인데 커리큘럼이 굉장히 잘 짜여있고 강의의 퀄리티도 좋다. 중간 중간 진행해야하는 프로젝트가 핵심인데 요게 아주 재미있다.

나는 원래 부스트 캠프를 하고 싶어서 지원을 했었는데 2차 코테에서 떨어지는 바람에 부스트 코스를 진행하게 되었다. 크ㅡ읍...

부스트 코스는 주어진 프로젝트를 모두 수료하면 "네트워킹 데이" 라고 네이버 본사에서 진행하는 행사에 참여할 수 있는데, 여기서는 스타트업 기업들과 부스트 코스 수료자를 연결 시켜준다. 나도 역시 이 행사에 참여했었고 행사 막바지에 네이버 신입사원 한 분이 무대에 올라와서 자신의 이야기를 해주는 시간이 있었는데... 이 분께서 핵데이에 대해 말씀을 해주셔서 처음 알게 되었다.

집에 가는 길에 가벼운 마음으로 핵데이를 찾아보았는데, 서류 지원 후 온라인 코딩 테스트까지 본다고 나와있는 걸 보고 마음이 무거워졌다.

그래도 지원 안하고 후회할 바엔 지원하고 후회하자 ~ 라는 생각에 집에 도착하자마자 지원서를 썼고 운이 좋게 코딩 테스트까지 통과하여 최종 선발까지 되었다. (우왕)

어떤 주제를 선정했는가?

이번 핵데이는 23가지의 서로 다른 주제들이 있었고 한 가지를 주제의 팀원이 되어 진행하는 방식이였다.

올 해 들어 본격적으로 코딩 공부를 시작하게 되면서 부전공인 컴공의 cs 과목들을 한꺼번에 수강하고 정보처리기사 시험을 치루다보니 짜투리 시간을 내서 코딩을 할 시간이 많이 없었다. 그래서 내가 코드를 한 줄 한 줄 짜면서 무언가 만들어보고 싶다는 마음이 점점 커졌다.

그렇게 여름 방학이 시작되고 내가 하고 싶었던 것들, 만들어 보고 싶었던 것들을 하나씩 진행해보기 시작했는데 그 중 하나가 인스타그램을 똑같이 만들어 보는 것이였다. 하나씩 만들어 보던 중에 핵데이를 알게 되었고 정말 신기하게도 핵데이의 여러 주제 중 마지막 주제가 "구독 기반의 sns 서비스 만들어보기(ex 인스타그램, 트위터)" 였다. 그래서 지원서를 쓸 때 해당 주제를 망설임 없이 골랐다.

핵데이 시작하기 전 들었던 생각, 마음가짐 등등

솔직히 말하면 처음에 우리 팀 주제가 그렇게 어려운 주제는 아니라고 생각했다.

"간단한 CRUD 만 구현하고 프론트를 보기 좋게 구현하면 되는게 아닐까?" 라고 생각했던 과거의 내 머리통을 진짜 세게 한 대만 치고 싶다.

"트래픽이 많다", "서버가 터졌다", "로딩 시간이 길다" 등 들어본 얘기 들은 많으나 여태까지 단순하게 그 이유를 유저가 많기 때문이라고만 생각했었고 유저가 많기 때문에 생기는 문제점들에 대해서는 생각해보지 않았다.

그렇다. 이번 주제의 핵심은 대용량 트래픽과 대용량 데이터를 어떻게 처리하느냐 였다.

핵데이 당일이 되기 전까지 출퇴근을 하면서 구독과 관련된 내용들을 많이 찾아보았는데 기존의 트위터, 페이스북, 인스타그램과 같은 엄청난 수의 유저를 가지고 있는 기업들의 아키텍처를 보며 많이 공부했다. 그 과정에서 처음 알게되는 흥미로운 내용들이 굉장히 많았고 그 내용들은 조그만했던 내 생각의 틀을 많이 넓혀주었다.

그리고 핵데이 당일 날이 되었다.

핵데이 후기

내가 겪은 일정을 생각나는 대로 간단하게 정리

  • 네이버 그린팩토리에서 춘천으로 출발 ~ 도착은 오후 3시쯤?
  • 네이버X폴햄 콜라보 기념품과 박스에 간식들 쓸어 담고 멘토, 멘티님들과 우리들 만의 회의실로 이동
  • 4시 ~ 6시 : 환경 세팅, 코딩 쪼끔
  • 6시 ~ 7시 반 : 밥 먹고 개인 숙소 구경
  • 7시 반 ~ 아침 6시 : 불코딩
  • 아침 6시 ~ 10시 : 취침 and 기상 and 샤워 때리고 잠 깨기
  • 10시 ~ 12시 : 물코딩 (멘토님의 코드 리뷰)
  • 12시 ~ 12시 반 : 빠른 밥
  • 12시 반 ~ 3시 : 회고의 시간이라 쓰고 반성의 시간이라 읽는다
  • 3시 ~ : 춘천에서 서울로 출발, 일정 끝

우리 팀은 멘토님 1명, 멘티 3명으로 구성되었고 각자 한 개씩의 컴포넌트를 맡게 되었다. 3명이 따로 저장소를 구성하여 http 통신을 통해 서로 필요한 정보를 요청하고 전달해주는 방식으로 진행했다. 나는 구독 정보를 저장하고, 구독 정보 조회 요청에 따른 응답을 해주는 api 를 만들어야 했다.

프로젝트를 진행할 때 DB 테이블을 먼저 만들곤 했는데 멘토님께서 이 점을 바로 잡아 주셨다. DB 는 마지막 쯤에 설계해도 충분하다는 말씀이 처음에는 이해가 잘 안됬지만 설명을 듣고 나니 이해가 확 되었고 무턱대고 DB 테이블을 먼저 만들었던 내가 창피해졌다.

충분히 생각하고 테스트도 많이 해보고 이런 저런 상황들을 적용해보면서 이렇게 하면 문제가 없겠다 싶을 때 DB 테이블을 작성해도 된다는 것이였다. mock 테스트가 뭔지만 알고 있었고 이게 왜 존재하는지를 몰랐었는데 mock 테스트를 예로 들어주시면서 설명을 해주시니 이해가 쏙쏙 됐다.

당시에 구독 정보를 어떻게 저장하고 조회해야 요청 받은 컴포넌트에 수많은 구독 정보를 문제 없이 빠르게 전달을 해줄 수 있을까 고민을 많이 했는데 문제점을 해결할 무릎을 탁 칠만한 생각이 나질 않았다. 지금 생각해보면 참 바보같이 생각했던 것 같다. 쉽게 갈 수 있는 길을 어렵게 가려고 노력한 느낌이랄까, 결국엔 내 부족한 생각을 멘토님께 말씀드렸더니 여러 문제가 되는 상황을 예로 들어주시면서 그렇게 하면 안되는 이유를 확실하게 알려주셨다.

여태까지 나는 하나만 보고 넓게 여러가지를 보지 않았던 것 같다. 멘토님께서도 느끼셨는지 마지막 회고 시간에 이 점을 말씀 해주셨다. 하나에 꽂히면 넓게 보지 않는다는 멘토님의 말씀이 정말 크게 와닿았다.

그리고 코드를 기계적으로 짠다는 말씀도 해주셨다. 그동안 나는 현재 내가 인턴으로 일을 하고 있는 스타트업에서 운영하는 서비스의 코드들이 뭔가 정답이라고 생각했었다. 그래서 "이런 상황에 이 코드들이 왜 이렇게 짜여있을까" 라기 보다는 "이런 상황에 이 코드들이 이렇게 짜여있는 걸 보니 이런 상황에는 이게 맞구나!" 라고 생각했던 것 같다. 그리고 객체 지향에 대한 이해도가 많이 낮았다는 걸 다시금 깨닫게 되었다.

정리

배운 점

  1. 극한의 상황을 생각해 보기
  2. 대용량 처리 (어떻게 하면 db 에 부하가 덜 가고 빠르게 처리할 수 있는지)
  3. REST API 에 대한 이해
  4. 좋은 API 를 만드는 방법
  5. 구현하고자 하는 서비스 아키텍처를 구성하는 방법
  6. 내 생각을 조리있게 표현하는 방법
  7. 내가 설명을 못하면 개념이 머리속에 박혀있지 않은 것이다

고쳐야 할 점

  1. 객체 지향에 대한 확실한 이해
  2. 한 가지에 꽂히지 말고 넓게 보자
  3. 블로그에 있는 내용들 맹신하지 않기
  4. 책을 통해 확실한 내용을 깊게 공부하기
  5. 기계적으로 코드 짜지 않기

핵데이 시작 전에 설레는 마음으로 이것저것 찾아보는 것부터 시작해서 핵데이가 아쉽게 끝이 날 때까지 배운 것들이 정말 많다.

새롭게 알게 된 지식들 뿐만 아니라 개발자는 무턱대고 코드를 짜서는 절대 안되고 끊임없이 깊게 생각하고 고민하며 그 생각과 고민을 토대로 의사소통을 많이 해야 한다는 걸 몸소 느낄 수 있었다. 많은 걸 알려주시고 많은 걸 느끼게 해주신 멘토님께 진심으로 정말 감사하다는 말씀을 드리고 싶다.

앞으로 무엇을 어떻게 공부해야 하는지와 해결하고자 하는 문제가 있을 때 그 문제에 어떤 방식으로 접근하고 어떻게 생각을 해야하는지 대해서 나름 뚜렷하게 알게 되었다. 나의 마음 속 안의 답답했던 부분들을 시원하게 긁어주었기에 이번 핵데이는 내 인생의 터닝 포인트라고 해도 과언이 아닐 것 같다.

앞으로 그냥 개발자 보다는 개발 잘 하는 개발자가 되고 싶다

#밥존맛 #충전기두고옴 #네이버야1년뒤에보자 #지금은아닌듯 #멘토멘티님들고생많으셨습니다

'경험' 카테고리의 다른 글

나의 이야기, 그리고 취준 기록... 😢  (2) 2020.12.14

+ 따끈한 최근 게시물