멋사 해커톤 참여기

2019년 6월 1일, 경희대학교에서 멋쟁이 사자처럼의 일부 운영진들이 진행하는 대학생 해커톤이 열렸다. 해커톤에는 대략적으로 50여명 정도의 대학생이 참여를 했으며, 나는 그 해커톤의 연사로 참여를 하게 되었다. 사실 연사라고 표현하기에는 너무 거창하고 스스로가 부족하다고 생각하여 그냥 해커톤에서 대학생들의 시간을 뺏는 사람 정도였다라고 생각한다 😅

일단 글을 시작하기 전에 이러한 좋은 기회를 준 멋쟁이 사자처럼의 운영진 분들과 함께 연사로 참여해준 숨고의 동욱님, 그리고 티몬에서 함께 일을 하는 철현님, 허승님께 감사하다는 말을 드리고 싶다. 🙏 (물론 그 분들이 이 글을 볼지는 미지수이지만.. 🙄)

어떠한 질문을 받았니?

연사분들과 함께 해커톤을 진행 중인 장소 안으로 들어가기 전까지만 해도 다들 걱정이 많았다. 무엇보다 우리가 어떠한 질문을 받을지, 어떠한 주제로 라이트닝 토크가 진행되는지, 우리에게 무엇을 기대하는지 어떠한 가이드도 받지 못했기 때문이다. 하지만 막상 들어가서 우리의 걱정이 기우였다는 것을 깨닫기까지는 얼마나 걸리지 않았다.

소개가 끝나고 나서 바로 첫 질문을 받기 시작했을 때는 2분 정도 밖에 손을 들지 않아 속으로 “생각보다 우리에게 질문이 별로 없구나. 괜히 시간을 뺏는게 아닐까?” 라는 걱정을 했다. 하지만 첫번째 질문에 대한 답이 끝나고 나서 두번째 질문을 받는다고 했을 때, 7분이 넘는 분들이 질문을 위해 적극적으로 손을 들었다.

/images/review/likelion-hackerton-review01.jpg

그 모습을 보고 한편으로 “과연 나는 사람들이 많이 모인 공적인 자리에서 남들 앞에서 용기내어 누군가에게 질문을 한적이 있었던가?” 라는 생각이 들 정도로 깜짝 놀랐다. 대학생분들이 우리에게 궁금했던 것은 다음과 같았다.

  • 👉 개발자라는 직업을 선택할 때, 비전공자로서의 두려움은 없었나요?
  • 👉 개발자/기획자가 되기 위해 어떻게 공부 혹은 노력을 했나요?
  • 👉 언제 “개발자/기획자로서의 길이 내 길이다” 라는 확신이 들었나요?
  • 👉 이후 취업을 하기 위해 어떤 언어/프레임워크를 공부하면 될까요?
  • 👉 성장을 할 때 가장 중요한 것은 무엇이라고 생각하나요?
  • 👉 해외 취업을 하기 위해서는 어떠한 준비를 해야할까요?
  • 👉 중소기업에 들어가면 대기업으로 이직하기 힘들다고 하는데 그럼 첫회사는 대기업으로 가야할까요?
  • 👉 지금 회사에서 나를 뽑아준 이유는 뭐라고 생각하시나요?

개발자로서의 내 모습은…

사실 돌이켜보면 누구나 한번쯤은 고민했을 법한 주제이다. 하지만 나는 부끄럽게도 적어도 대학생 때는 이러한 고민과 불안감을 가지지 않았다. 어떻게 보면 커리어에 대해서 그들만틈 진지하게 생각해보지 않았을 수도 있다. 내가 개발자로서의 길을 선택한 것은 나 스스로 보기에도 개발을 할 때의 내 모습이 다른 일을 할 때보다 즐거워보인다라는 단순한 이유였다.

물론 이렇게 이야기하면 일부 사람들은 나에게 “그건 괜찮은 환경에 있어서 즐겁다고 느낄 수 있었던 거 아니에요?”라는 역질문을 던질 때가 있다. 하지만 처음 개발 공부를 흥미를 갖고 시작했던 회사는 10명도 채 안되는 조그마한 에이전시였다. 다른 에이전시에 비해 특출날 것 없이 고객사에 뜻대로 작업을 해야하며, 고객사가 원하면 의미없는 야근도 감수해야 했으며, 깊은 지식을 요하는 작업을 하는 것도 아니였다. 그럼에도 불구하고 새로운 것을 공부하는 것이 즐거워 고시 공부하듯 남들보다 빠르게 출근해서 공부를 하고, 퇴근하고 나서도 미친듯이 공부를 했다. (이때가 나의 멘토를 만나게 된 시점과도 비슷한 시점이다.) 아마 이때가 엘런 머스크의 80시간의 법칙을 지켰던 유일한 기간이 아닐까 싶다. (요즘에는 조금 나태해져 80시간까지 채우기는 쉽지 않다.😰)

/images/review/likelion-hackerton-review02.jpg

물론 세상을 바꾸기 위해 공부를 했던 것은 아니다. 단지 내가 좋아하는 분야에 대해 무지한 내 스스로에게 실망하기 싫었기 때문이다. 그렇기 때문에 나에게 있어 비전공자로서의 두려움 혹은 선택에 대한 확신을 생각했던 적도 없었던 것 같다. 말 그대로 좋아서 했던 하나의 취미가 곧 내 일이되었기 때문이다.

/images/review/likelion-hackerton-review03.jpg

무엇보다 앞서의 질문과 같이 성장이 환경에서 나온다고 생각하진 않는다. 물론 이에 대해서는 사람마다 생각하는게 다를 수 있지만, 개인적으로는 스스로 느끼기에 환경이 불만족스럽다라고 하면 환경을 개선하기 위해 최소한의 노력은 해봐야 한다고 생각한다. 물론 개인의 힘으로 환경을 바꾸기란 쉽지 않다. 만약 동료들이 역시 환경을 개선해야한다는 필요성을 느끼면서도 함께 행동하지 않거나 혹은 최악의 경우 동료가 비관주의자라면 그땐 더 좋은 환경을 위해 떠나는게 맞다. 하지만 노력에 따라 개선의 여지가 있다면 환경을 탓하기보단 한번쯤은 나의 주변 환경을 바꾸기 위한 노력을 해봐도 되지 않을까.

무엇을 공부해야 할까?

주기적으로 한 커뮤니티에 제일 많이 올라오는 글 중 하나는 “무엇을 공부해야하나요?” 라는 질문이다. 주기적으로 이런 글이 올라온다는 것이 이제는 놀랍지도 않다. 과거의 회사에서는 VueJS와 타입스크립트를, 현재의 회사에서는 ReactJS와 타입스크립트 조합을 이용하여 개발을 하고 있지만, 단 한번도 프레임워크에 대해서 공부한 적이 없다. 아니, 엄연히 말하면 프레임워크를 학습하고 난후 회사를 입사하거나 혹은 프로젝트를 진행한 적이 없다.

/images/review/likelion-hackerton-review04.jpg

지금 돌이켜보면 놀라운 사실은 전회사에서 VueJS를 이용한 프로젝트를 진행할 때는 VueJS라는 것을 처음 들어봤으며, 지금 회사의 대부분의 팀이 ReactJS를 이용하여 개발을 하지만 회사를 입사할 때는 ReactJS의 존재유무만 알았을 뿐 문법조차 몰랐다. 회사에서 쓰기 전까지는 사실 관심도 가지지 않았으며 공부를 해야할 필요성도 느끼지 못했다. 평소에 내가 공부하는 것들을 대체적으로 회사 서비스에 사용하는 기술이거나 현재 진행 중인 프로젝트에 도입을 해야하는 것 혹은 진행했던 프로젝트를 개선하기 위한 기술들이다.

언젠가 지인과 이야기 하다 2가지 유형의 개발자라는 주제를 가지고 이야기한적이 있다. 첫번째 유형은 플랫폼 성향이 강한 개발자이고, 두번째 유형은 비즈니스 성향이 강한 개발자였다. 첫번째 유형의 개발자는 새로운 기술에 대해 관심이 많으며, 끊임없이 신기술들에 대해 학습을 한다. 반대로 두번째 유형의 개발자는 새로운 기술보다는 비즈니스에 관심이 많다. 이 중 개인적으로 나는 두번째 유형에 가까운 개발자인 것 같다. 그렇기 때문에 개인적으로 학습하는 모든 기술은 회사에서 진행하는 혹은 사이드 프로젝트를 위한 기술이다.

이러한 예 중 기억나는 것은 바로 타입스크립트 도입이었다. 자바스크립트는 동적 언어기 때문에 특성상 자료형이 실행시 결정된다. 그렇기 때문에 자바스크립트를 이용하여 개발할 때 제일 많이 겪는 에러 중 하나는 타입 에러이다. 이러한 에러로 인해 기능이 제대로 작동하지 않을 때도 있으며, 이러한 에러를 찾기 위해서는 실제 실행시켜봐야 알 수 있다보니 에러를 찾고 수정하는 데 까지 걸리는 시간이 길 수 밖에 없다. 이러한 단점은 개발 생산성을 떨어트릴 뿐만 아니라 리팩토링할 때에도 흔히 이야기하는 몸 사리는 코딩을 하게 만들었다. 이러한 문제의 돌파구로 찾은 것이 타입스크립트였다. 타입스크립트는 개발자로 하여금 컴파일 단계에서 타이핑 에러를 감지했으며, 인터페이스로 하여금 전보다 더 예측 가능한 애플리케이션을 만들 수 있도록 했다.

물론 프레임워크나 라이브러리를 깊이 알고 잘 쓴다고 한다면 더할 나위 없이 좋다. 하지만 근본적으로는 대부분의 기술은 어떠한 문제를 해결하기 위해 나온다. 마치 자바스크립트의 동적 타입에 불편함을 느끼고 정적 타입 시스템을 도입하기 위해 나온 타입스크립트라던지, 혹은 브라우저의 DOM을 효율적으로 업데이트 하기 위한 Virtual DOM 개념, 클라이언트의 싱태를 효율적으로 관리하기 위한 flux 패턴과 거기서 파생된 Vuex, Redux 등과 같다. 그렇기 때문에 막연하게 불나방처럼 기술에 달려드는 것보단 기술의 본질에 대해서 공부를 하고, 필요한 시점이 되었을 때 적재적소에 사용하는 것이 어떨까라는 생각을 한다.

멘토 혹은 함께하는 동료 만들기

나는 개인적으로 학원에 대해 마냥 긍정적인 입장은 아니다. 일단은 학원은 상업 기관임에도 마치 교육기관처럼 탈바꿈하려고 하는 것도 그렇지만, 제일 큰 이유는 “X주 완성하기”와 같은 허위 혹은 과대 광고 때문이다. (물론 모든 학원이 그렇다는 것은 아니다.) 하지만 학원에는 분명히 순기능이 존재한다. 개인적으로 학원의 가장 큰 순기능 중 하나는 함께 공부하는 사람들과의 네트워킹으로 인한 동기부여라고 생각한다.

/images/review/likelion-hackerton-review05.jpg

혼자 공부를 하면 내가 옳은 방향으로 가고 있는가에 대한 방향성, 성장 속도에 대한 지표 혹은 혼자 얻을 수 있는 정보에 대한 한계에 부딪히기 쉽다. 하지만 긍적적인 네트워킹을 통한 동료들은 러닝 메이트와 같이 함께 성장하며 함께 나아갈 수 있으며, 나의 성장 속도, 방향에 대한 측정 가능한 지표가 되어줄 수 있다. 또는 내가 지치거나 번아웃이 왔을 때 나를 이끌어 주고나 붙잡아줄 수 있으며, 반대로 내가 동료에게 힘이 되어 줄수도 있다.

물론 제일 좋은 것은 멘토의 유무이지만, 멘토를 찾기도 쉽지 않다. 설령 찾았다고 해도 개인적인 시간까지 할애해가며 도와주는 멘토를 찾기가 더더욱 쉽지 않다. (글을 써놓고 보니 2년째 나를 지켜봐주시는 멘토분께 새삼 감사함을 느낀다😝) 만약 좋은 멘토를 구하기 어렵다면 컨퍼런스나 커뮤니티를 이용하여 동료를 구해보는 것도 좋을 것 같다.

나에게 있어 오늘의 경험은

무엇보다 해커톤에서 대학생 분들에게 받은 질문을 듣고 느꼈던 그들의 고민의 키워드는 성장미래에 대한 불안감이였다. 그에 대한 답변을 하면서도 나 자신에게도 되묻고 싶었다. 불과 3년 전만 해도 나도 그들과 비슷한 고민을 했었던 것 같다. 아니, 오히려 오늘 만난 대학생분들보다 더 진지하게 고민해보지 못했던 것 같다.

내 이력서에 에이전시인 회사는 딱 1군데이지만 비공식적으로 내 이력서에 적기엔 내 스스로를 너무 초라하게 만드는 에이전시가 더 있었다. 그 중 한군데서는 그래도 에이전시 내에서는 저력이 있었던 작지 않았던 에이전시 였으며, 다음 회사는 임금 체불이라는 나에겐 또 다른 시련을 안겨준 회사도 있었다. 이러한 회사를 다 합쳐서 채 3개월이 되지도 않은 시점에 나는 2번째 회사를 나오며 “스스로를 보며 실패했다”라는 생각을 많이 했다. 그 때까지만 해도 내가 누군가의 앞에서 나의 경험에 대해서 혹은 성장에 대해서 이야기할 기회가 올거라고 생각하지 못했다. 물론 이번에 우연치 않은 기회로 해커톤의 연사로 참여했지만, 앞에서 말했듯 스스로가 연사를 참여할 만큼 대단하다고 생각하진 않는다. 하지만 오늘의 경험으로 인해 나는 과거의 열심히 살지 못했던 내 스스로를 돌아보게 되었으며 오히려 해커톤에 참여함으로써 앞으로도 계속 노력해나가야 하는 부족한 개발자라는 것을 깨닫는 계기가 되었다.

아쉬웠던 점

해커톤에 참여하기 하루 전, “과연 나는 어떠한 질문을 받을까? 그리고 그 질문을 받고 나면 나는 어떻게 대답해줄까”라는 생각을 하다 잠이 들었다. 물론 다행이도 어느 정도 예상했던 예상 범위 안에서 질문을 받았다 하지만 어떠한 주제로 라이트닝 토크가 진행되는지 컨셉이라도 알았더라면 막상 이러한 질문을 받았을 때, 조금더 도움되는 말을 해줄텐데 라는 생각에 많은 아쉬움이 남았다. 물론 이러한 아쉬움 내 스스로에 대한 아쉬움일 수도 있다. 한때는 나역시도 커리어에 대한 비슷한 고민과 걱정을 했었고, 만약 그때 고민과 걱정에 대해 조금더 깊게 생각해보았더라면 아마 오늘의 답변이 다른 이들에게 조금더 도움이 되지 않았을까란 생각을 해봤다.

현재 이커머스회사에서 frontend 개발자로 업무를 진행하고 있는 Martin 입니다. 글을 읽으시고 궁금한 점은 댓글 혹은 메일(hoons0131@gmail.com)로 연락해주시면 빠른 회신 드리도록 하겠습니다. 이 외에도 네트워킹에 대해서는 언제나 환영입니다.:Martin(https://github.com/martinYounghoonKim
Typescript의 기본 유틸 타입
2019년 상반기의 회고