20대의 마지막, 2019년을 돌아보며
이제 필자의 마지막 20대를 보내는 2019년도 어느덧 10일 정도 밖에 남지 않았다. 물론 서른이 된다고 해서 크게 달라지는 것은 없지만, 스무살이 되었을 때 이후 처음으로 나이 앞 자리가 바뀌는 만큼 기분이 싱숭생숭 하기도 하다.
작년에 비해서 올해는 필자에게 많은 의미를 가지는 해였다. 이것 저것 도전해보았고, 또 도전으로 인한 결실을 얻기도 했던 해였다. 그 도전들 중에서는 개발과 관련된 것도 있고, 그냥 필자가 해보고 싶어서 했던 것들도 있는데 뭐가 되었든 작년에 비해 도전 자체를 많이 해봤다는 게 의미있는 것 같다.
그래서 이번 포스팅에서는 필자가 올해 겪었던 대표적인 일들을 시간 순서대로 나열하고 돌아보는 회고를 한 번 작성해보려고 한다.
1년 동안 집필했던 책 출간
먼저 첫 번째로, 작년부터 친구와 함께 집필했었던 커피 한 잔 마시며 끝내는 Vue.JS책이 2019년 7월 말 출간되었다.
제목이 조금 특이하다보니 많은 분들이 “진짜 커피 한 잔만에 끝낼 수 있냐”라고 물어보시는데, 사실 제목은 출판사에서 정해준거라 필자도 잘 모르겠다. (커피 한 잔이 몇 리터라고는 말 안했다)
처음 집필 제의를 받은 것이 2018년 8월 쯤이고, 책 출간이 2019년 7월 31일에 되었으니 총 1년 정도의 기간이 소요된 셈이다. 물론 처음 한 두달 정도는 책의 내용을 기획하고 공동 집필하는 친구와 의견 일치를 보는 기간이었으니 대략 10개월 정도 집필을 했다.
사실 처음에는 내용이 많은 블로그 포스팅 정도로 가볍게 보고 시작했는데, 생각보다 블로그와 다른 점이 굉장히 많았던 것 같다. 블로그 포스팅은 기껏해야 200줄에서 300줄 정도의 짧은 내용을 담고 있지만, 400페이지에 달하는 내용이 한 호흡에 이어져야하는 글쓰기는 굉장히 낯선 경험이었다.
게다가 블로그 포스팅과는 다르게 명확한 기한이 정해져있는 프로젝트였기 때문에, 평일에 퇴근하고 아무리 피곤해도 책을 집필해야해서 집중력을 유지하기가 꽤나 힘들었다.
그리고 책의 내용 뿐 아니라, 책에 들어가는 예제인 SPA 어플리케이션 2개와 API 서버 어플리케이션까지 직접 작성하고 테스트해야하다보니, 아무리 두 명이 함께 한다고 해도 힘든 작업이었다.
그런 이유로 필자와 친구는 최대한의 효율을 내기 위해 여러가지 방법을 모색했는데, 그 중 하나가 Git과 마크다운을 사용하여 책을 집필하자는 아이디어였다.
원래 출판사에서는 MS 워드로 작성해서 보내달라고 했으나, MS 워드는 헤딩이나 각주 등의 스타일 포맷을 지정할 때 일일히 마우스로 클릭해주거나 단축키를 눌러야 해야한다는 문제가 있었다. 그러나 마크다운은 나중에 css
를 사용하여 통일된 스타일을 일괄 적용할 수 있기 때문에 훨씬 효율이 좋았다.
그리고 최종 집필을 마친 후에는 Pandoc이라는 라이브러리를 사용하여 *.md
파일을 *.docx
파일로 변경해서 출판사로 보냈다.
또한 둘 다 직장이든 사이드 프로젝트든 항상 Git을 사용하고 있어 익숙하기 때문에, 예제 어플리케이션과 책 집필 모두 Git을 사용하여 버전 관리를 진행할 수 있었고, 덕분에 많은 작업 시간을 단축하고 버그나 놓친 부분을 잡아낼 수 있었다.
또한 책의 모든 내용은 마크다운으로 작성되고, 코드 리뷰를 통과한 이후에만 마스터 브랜치로 머지될 수 있기 때문에 그 과정에 서로의 의견이 맞지 않는 부분을 합의하고 넘어가기도 좋았던 것 같다.
함께 공동 집필했던 친구는 필자와 굉장히 친한 친구인데, 평소에는 사이드 프로젝트 정도만 함께 하고 이렇게 공적인 업무를 함께 하는 것은 처음이었기 때문에 책을 집필하는 과정에서 서로 일하는 스타일이 안 맞아서 약간의 갈등이 있기도 했다.
그러나 오히려 이런 시간을 통해 서로의 업무 스타일을 제대로 파악할 수 있었고, 서로 안 맞는 부분을 맞춰나갔던 과정 또한 좋은 추억으로 남을 수 있었다.
책 집필 과정에 대한 자세한 내용과 회고는 흔한 개발랭이의 작가 입문기라는 포스팅으로 따로 작성했으니 여기서 확인해볼 수 있다.
블로그를 본격적으로 시작하다
사실 필자는 블로그를 열심히 쓰는 사람은 아니었다. 필자의 아카이브를 보면 2019년 6월부터 급격하게 포스팅 양이 늘기 시작한 것을 볼 수 있는데, 이때가 딱 책 집필이 거의 마무리되고 리뷰어들에게 책에 대한 리뷰를 받고 있던 시점이었다.
또한 2019년 6월 이전 포스팅들은 행성의 궤도 계산하기, 간단한 인공신경망 만들기와 같이 필자가 공부했던 내용들을 남겨놓기 위한 아카이브의 느낌이 강했다면, 2019년 6월 이후 작성된 포스팅들은 자바스크립트, Git과 같이 조금 더 일반적인 내용들에 대해 작성하기 시작한 것을 볼 수 있다.
이때 블로그 포스팅의 양이 늘고 주제가 바뀌기 시작한 이유에는 책을 집필하며 필자의 글쓰기 스킬이 성장했다는 것도 있지만, 더 큰 이유는 이 시점 이후로 필자가 블로그 포스팅을 대하는 마음 가짐에 약간의 변화가 있었다는 점이다.
필자는 기본적으로 자신의 스킬에 대한 자신감이 많은 사람은 아니다. 그래서 필자는 “내가 알고 있는 것 정도는 남들도 다 알고 있을거야”라는 생각을 가지고 있었지만, 책을 집필하면서 진행했던 스터디로 인해 생각이 변하게 되었다.
필자와 친구는 책을 집필하며 중간 중간 집필한 내용을 가지고 다른 분들과 함께 VueJS
에 대한 스터디 겸 책에 대한 리뷰를 진행했었는데, 그때 함께 스터디를 했던 분들이 책의 내용이 공부에 많은 도움이 되었다는 이야기를 해주셔서 “내가 알고 있는 지식이 다른 개발자들에게 도움이 되는구나”라는 생각을 처음으로 하게 되었던 것 같다.
그 이후 지금까지 필자의 공부만을 위해 작성했던 블로그 포스팅의 주제를 “필자가 알고 있는 지식의 정리와 공유” 쪽으로 변경하게 되었고, 그렇게 작성한 블로그 포스팅을 다른 사람들에게 공유하게 되었다.
그렇게 대략 5개월 정도 블로그 포스팅을 공유하다보니, 필자의 포스팅을 읽은 분들이 페이스북 메세지나 링크드인, 이메일과 같은 채널을 통해 “잘 읽었다”, “도움이 되었다”와 같은 피드백을 보내주시는 경우도 생기게 되었는데, 이런 메세지들을 받으면서 블로그 포스팅 작성에 대한 동기부여가 되었던 것 같다.
그리고 필자는 기술과 관련된 내용만 작성하는 것이 아니라 가끔 에세이 포스팅도 작성하곤 하는데, 이 과정에서 생각을 정리하거나 싱숭생숭한 마음을 정리할 수도 있어서 멘탈 관리에도 꽤나 도움이 되는 것 같다.
이제 필자에게 블로그 포스팅은 단순히 공부한 내용을 정리하거나 공유하거나 하는 느낌이라기보다 “글쓰기”라는 취미 생활에 가까워진 것 같은 느낌이다.
앞으로도 한 주에 한 개정도의 포스팅을 꾸준히 작성할 예정이고, 이런 식으로 몇 년동안 글이 쌓여나가면 나중에는 좋은 추억으로 남을 것 같다는 생각도 든다.
2년 반 동안 정들었던 직장을 떠나다
2019년 8월을 마지막으로 지난 2년 반동안 즐겁게 일했던 정든 브레이브모바일을 떠나게 되었다. 직원 수 고작 10명 남짓이었던 작은 회사가 Series A, B를 투자 받으며 성장하는 과정을 경험하면서 많은 것들을 배웠고, 좋은 동료들도 만날 수 있었다.
기억을 되돌아보면 필자는 이 회사에 입사하기 전, 1년도 채 안되는 짧은 스타트업 근무 경험과 한 번의 창업 경험만을 가지고 있던 햇병아리 개발자였고, 사이드 프로젝트로 특이한 것을 많이 만들기는 했지만 그렇다고 코딩을 남들보다 잘하는 편은 또 아니였다. 프로그램을 잘 만드는 것보다 만든다는 것 자체에 흥미를 느끼던 시절이랄까.
그러나 대학을 졸업하고 필자가 경험했던 모든 근무 환경들은 누군가 시키는 일을 하는 환경이 아닌 스스로 문제를 찾아내고 해결해가는 과정의 연속이었기 때문에, 자연스럽게 어떤 문제에 대한 의사결정을 내리는 것에 익숙해질 수 있었고, 그에 따른 책임을 지는 것 또한 두려워하지 않을 수 있었다.
초기 스타트업은 늘 인적 자원도 부족하고 누군가 의사결정을 일일히 내려주는 시스템이 아니기 때문에 각자의 책임 범위 안에서 스스로 리더가 되어야하는 경우가 많은데, 필자의 이런 경험들이 당시 작은 규모의 스타트업이었던 브레이브모바일에 잘 맞아들어갔기 때문에 더 재밌게 일할 수 있었던 것 같다.
그래서 필자는 입사 초반부터 프론트엔드 어플리케이션에 대한 전반적인 의사결정권을 가지고 수 없이 많은 의사결정을 거치며 일을 했었다. 뭐 그 중에는 잘한 선택도 있고 못한 선택도 있지만, 결과가 어찌되었든 필자같은 햇병아리 개발자에게 이런 경험은 굉장히 좋은 성장의 양분이 될 수 있었다.
처음 필자가 입사했던 2017년에 숨고라는 서비스는 프론트엔드 프레임워크도 붙어있지 않은 전통적인 MPA 어플리케이션이었다. 입사를 하고 처음 열어본 소스 코드에는 React
를 붙히려다가 실패했던 흔적과 보일러 플레이트로 기본적인 스캐폴딩만 되어있는 Vue
가 덩그러니 있었던 기억이 난다.
즉 입사 후 필자에게 주어진 첫 미션은 Django로 작성된 MPA 어플리케이션에 Vue를 어떻게든 적용하는 것이었는데, 당시에 이런 방법으로 Vue를 사용하는 레퍼런스도 많지 않아서 고생했던 기억이 난다. (억울하게도 지금은 구글링하면 레퍼런스가 꽤 많이 나오는 편이다)
이후 시간이 지나고 조금씩 여유가 생기며, Express
를 사용하여 직접 SSR 서버도 만들고 타입스크립트도 도입하면서 점점 어플리케이션을 단단하게 만들어 갔는데, 이런 과정 또한 아무것도 만들어져있지 않은 초기 스타트업에서 겪을 수 있는 꽤나 값진 경험 중 하나라고 생각한다.
또한 프론트엔드 어플리케이션에 대한 의사결정권이 필자에게 있었던 만큼, 백엔드 개발자 뿐 아니라 디자이너, PO, 마케터 등 다양한 직군과의 잦은 커뮤니케이션도 필수적으로 발생했는데, 이런 경험 또한 나름 재미있었다. 덕분에 개발 뿐만 아니라 다른 직군들이 하는 일에 대해서도 알 수 있었고 팀워크에 대한 생각도 많이 해볼 수 있었던 기회였던 것 같다.
그리고 브레이브모바일은 효율적인 애자일 프로세스
에 대해서 깊은 고민을 하는 조직이었기 때문에, 비싼 돈 들여서 유명한 애자일 코치님에게 코칭을 받는 호사도 누릴 수 있었고, 이때 애자일 코칭을 받으며 배웠던 것들을 애자일이 도대체 뭐길래? 라는 포스팅으로 정리했었다.
하지만 시간이 갈수록 익숙한 사람들과 함께 반복되는 업무를 처리하는 일상이 이어지며 새로운 경험을 할 수 있는 횟수가 점점 줄어들게 되었고, 성장에 대한 갈증이 더 커지게 되었다. 또한 필자의 위시리스트 중 “20대가 끝나기 전에 혼자 해외여행을 가보자”라는 조건을 만족시킬 수 있는 기한이 딱 올해까지였기 때문에 오랜 고민 끝에 퇴사를 결정하게 되었다.
필자가 퇴사할 당시 작성한 2년 동안 근무했던 회사를 떠나며 포스팅에 더 자세한 내용이 있으니, 궁금하신 분들은 이 포스팅을 읽어보도록 하자.
프라하에서 한 달 살기
브레이브모바일을 퇴사한 후 20살 때부터 줄곧 꿈꿔왔던 “혼자 해외 여행해보기”를 실행에 옮겼다. 사실 필자는 해외여행을 그렇게 많이 가본 사람도 아니고, 해외여행을 가더라도 항상 친구나 가족들과 함께 다녔기 때문에 막상 혼자 한국을 벗어날 생각을 하니 조금 무섭기도 했지만, 막상 비행기표를 예매하고나니까 갑자기 마음이 굳어져서 일사천리로 하루 만에 모든 예약을 진행해버렸다.
그리고 이번에는 휴가를 내는 것이 아니라 아예 퇴사하고 자유로운 상태로 여행을 떠나는 것이기 때문에 굳이 4박 5일과 같은 빡빡한 일정을 잡을 필요도 없었고, 개인적으로도 급한 일정 속에 관광 스팟을 찍으면서 돌아다니는 스타일의 여행을 선호하지 않기 때문에 이번 여행의 컨셉을 “한 달 살기”로 잡았다.
필자는 살면서 유럽이라고는 모스크바밖에 가본 적이 거의 없기 때문에 이번에는 조금 더 유럽 냄새를 맡아보고 싶었고, 퇴사하면서 브레이브모바일과 2개월 간의 외주 계약을 체결한 상태였기 때문에, “유럽이지만 인터넷이 빵빵해야한다”라는 조건을 토대로 여행지를 알아보고 있었다.
그렇게 리서치를 해보던 중 프라하
와 부다페스트
가 도시도 아름답고 유럽치고 인터넷도 빵빵하다는 정보를 입수하게 되었는데, 최종적으로는 프라하
에서 한 달 동안 지내는 것으로 결론을 내렸다.
문제는 필자가 프라하에 대해서 알고 있는 정보가 체코 필하모닉 오케스트라
와 프라하의 연인
정도 밖에 없었다는 것이다. 당시 필자의 생각은 이랬다.
어차피 한 달동안 살 건데, 가서 알아보면 되겠지 뭐 ㅎㅎ (행복회로 가동 중)
필자가 크게 놓쳤던 것 중 한 가지는 바로 2015년형 15인치 맥북 프로의 기내 반입 금지 사항이었다. 당시 미국에서 배터리 폭발 사고가 발생해서 각 국가 정부의 지침이나 항공사의 안전관리규정에 따라 맥북 프로를 비행기에 반입하지 못하는 이슈가 있었는데, 필자가 이걸 놓치고 만 것이다.
필자는 이 사실을 출발 하루 전 저녁에 우연히 알게되어 체코 항공에 메일로 문의를 했지만, 이때는 주말이었기 때문에 당연히 비행기를 탈 때까지 아무런 답변도 받을 수 없었다.
유럽항공안전청 홈페이지를 확인해보니 EU는 비행기 내에서 전원만 끄면 반입할 수 있다는 입장이었지만, 그래도 항공사마다 안전관리규정이 다른데다가 혹시 한국으로 돌아올 때 지침이 더 강화되면 맥북 프로를 체코에 놓고 와야할 수도 있다는 생각에 결국 2009년형 골동품 맥북 프로를 가져갔다. (덕분에 프라하에서 맥둥이가 고장나서 수리도 했다)
그리고 또 한 가지는 생각보다 영어가 잘 통하지 않았다는 것이다. 체코는 러시아어랑 비슷한 느낌인 체코어
를 사용하기는 하지만, 프라하가 워낙 관광지로 유명한 만큼 다들 영어를 잘 할줄 알고 방심했다.
하지만 필자의 숙소는 관광지 근처가 아니었기 때문에 영어를 잘 하는 사람이 생각보다 많이 없었고, 덕분에 의사소통할 때 꽤나 어려움을 겪었다. 그래서 다음부터는 영어권이 아닌 다른 국가를 여행할 때 기본적인 단어나 문법 정도는 그 나라의 언어로 말할 수 있을 정도로 공부를 하고 갈 계획이다.
이때 필자가 프라하에서 고생하며 얻어낸 정보는 프라하에서 디지털 노마드로 살아남기라는 포스팅으로 정리했다.
개발자들과의 의미있는 스몰 토크 모임
2019년 11월에는 대학생때부터 친구들과 함께 운영하고 있는 토이 프로젝트팀인 루비콘에서 Chit Chat
이라는 스몰 토크 모임을 개최했다.
개발자들은 다른 직군에 비해 컨퍼런스나 네트워킹과 같은 모임이 많은 편이긴 하지만 이런 모임들의 주제는 대부분 기술 그 자체에 집중되어 있고, 공식적으로 각자의 생각이나 가치관을 나눠볼 수 있는 기회는 그리 많지 않기 때문에 기술 외적인 주제에 대해서 이야기를 나눠볼 수 있는 자리가 있었으면 좋겠다고 생각했다.
그런 이유로 소프트 스킬
에 대해서 서로의 이야기를 나눠볼 수 있는 스몰 토크 모임을 기획하게 되었고, 다양한 경력과 다양한 직군의 개발자들이 모여서 두 시간동안 소프트 스킬에 대한 각자의 생각을 나누는 좋은 경험을 해볼 수 있었다.
하지만 역시 태어나서 처음 진행해보는 행사이다보니, 걱정되는 부분도 있었다. 사실 필자는 낯을 조금 가리는 성격이라 평소에 네트워킹이나 컨퍼런스에 자주 참여하는 편이 아닌데, 이번에는 직접 토론의 사회자 역할까지 맡아야 한다고 생각하니 부담스럽기도 했다.
그러나 막상 사람들이 모이고 토론을 시작하자 다들 열정적으로 자신의 의견을 이야기해주셔서 생각보다 사회자로써 할 일은 많지 않았고, 그냥 필자도 토론 자체를 즐기며 재밌는 시간을 보냈던 것 같다.
Chit Chat
에서 어떤 주제로 어떤 이야기를 나누었는지 궁금하신 분들은 루비콘 팀 블로그에 올려놓은 Lubycon 1st Chit Chat 후기 포스팅에서 확인해볼 수 있다.
새로운 시작
블로그를 통해 공식적으로 이야기한 적은 없지만, 필자는 지난 12월 9일부터 토스라는 금융 서비스를 만드는 비바리퍼블리카
에 입사하게 되었다.
이 회사를 선택한 이유에는 여러가지가 있겠지만, 역시 가장 큰 이유는 토스팀은 “재미있게 일하는 조직”이라는 생각이 들어서였다.
필자는 아직 이 회사에서 많은 것을 경험하지 못 했고 이제 하나하나 배워가는 단계이지만, 확실히 토스팀 자체가 활력적인 에너지가 느껴지는 팀이라는 것이 느껴지기는 한다.
게다가 일이든 개발이든 잘하시는 분들이 워낙 많다보니 자극도 받을 수 있어서 좋다. 최근 필자가 올렸던 Pull Request에는 피드백이 20개 정도 달렸는데, 이렇게 누군가가 내 코드에 대해 상세하게 읽어보고 피드백을 주는 경험이 오랫만이라서 기분도 좋았고, 이런 사람들과 같은 프로덕트를 만든다는 것이 든든하기도 했다.
물론 아직 3 Month Review
라는 난관이 하나 남아있기는 하지만, 딱히 신경 안 쓰고 열심히 자기 할 일만 잘 해보려고 한다. 혹여나 떨어지더라도 최선을 다 했다면 후회는 없을 것이라는 생각이 든다.
20대를 마치며
2019년은 필자의 마지막 20대였고, 내년부터는 이제 30대의 길로 접어든다. 어릴 적 필자에게 서른이라는 나이는 뭔가 “어른”이라는 이미지였지만, 막상 서른을 코 앞에 둔 지금 나 자신을 바라보면 딱히 어른이 되었다는 생각은 들지 않는다. 그냥 나이만 한 살 더 먹은 느낌이랄까.
올해 필자는 이런 저런 도전을 많이 했고 나름의 결실도 이뤄냈다. 책도 내고 유럽에서 한 달 동안 살아도 봤으며 새로운 직장으로 이직도 했다. 중요한 것은 이런 것들이 뭔가 예전부터 계획된 일들이 아니였고, 그때 그때 하고 싶은 대로 했다는 점이다.
사실 17살 때부터 필자는 스스로에게 다짐한 한 가지 원칙을 가지고 있었는데, 바로 “하고 싶은 것만 하면서 살기”이다. 이런 이야기를 하면 철이 없다고 말씀하시는 분도 있고, 현실과 타협할 줄 알아야 어른이라고 말씀하시기도 하지만, 그런 의미의 어른이라면 딱히 되지 않아도 괜찮을 것 같다는 생각이 든다.
하고 싶은 것만 하면서 산다는 것이 그냥 내 맘대로 산다는 의미는 아니다. 현실 속에서 하고 싶은 것만 하면서 산다는 것이 쉬운 일이 아니라는 것은 다들 알고 있을 것이라 생각한다. 당연히 그에 따른 많은 노력이 동반되어야 한다.
코딩이 너무 재밌어서 개발자로 일하고 싶었기 때문에, 공부를 열심히 해서 개발자가 되었다. 내가 알고 있는 지식을 사용하여 다른 사람들에게 도움이 되고 싶었기 때문에 블로그 포스팅을 꾸준히 작성하고 있다.
필자는 이런 작은 도전과 노력들이 모여서 “하고 싶은 건 반드시 한다”라는 현실을 만들어 낼 수 있다고 생각한다. 뭐, 앞으로는 어떤 어려운 일이 또 닥칠지 모르기 때문에 장담할 수는 없겠지만 되도록이면 이 가치관을 관짝에 들어갈 때까지 가져가보려고 한다.
그런 이유로 2020년에는 “발표”나 “강의”와 관련된 도전을 한 번 해볼까 생각 중이다. 발표나 강의하시는 분들을 보면 참 대단하다고 생각이 들면서도, 남들 앞에 서서 뭔가를 이야기한다는 게 조금 무섭기도 해서 매번 미루고 있었는데 올해에는 한 번 용기를 내보려고 한다.
이상으로 20대의 마지막, 2019년을 돌아보며 포스팅을 마친다.