2020 회고

 

벌써, 3일

time

2020 년이 끝난 지도 벌써 3 일이 지났다.. 3 주 전까지만 해도 ‘시간이 왜 이렇게 느리게 가지? 하루가 진짜 길구나’라는 말을 입에 달고 살았던 내가 ‘벌써, 3 일이 지났다’는 말을 벌써 하게 되다니.. 사실 그 때나 지금이나 시간은 같은 속도로 가고 있는데 말이지.

많은 개발 블로거분들이 회고 글을 포스팅하는 걸 보며 나도 작성해야지… 작성해야지… 했지만, 살면서 지금까지 1 년이라는 긴 시간을 돌이켜보고 정리해보는 시간을 가져본 적이 없어서 그런지 글을 시작하기가 정말 어려웠다.

게다가 나는 친구, 가족, 동료들과도 개인적인(&진지한) 이야기를 하는 걸 즐겨 하지 않는 편이라서, 이렇게 퍼블릭한 공간에 개인적인 글을 쓰는 게 많이 어색하고 부끄러워서 더욱 어렵게 느껴졌던 것 같다. 그래도 더 늦으면 안 될 것 같아서 이렇게 작성해본다.

사실 2020 년을 뒤돌아보면 가장 먼저 떠오르는 이슈는 당연히 covid-19 지만, 이번 회고에서는 보다 개인적으로 인상 깊었던 이벤트를 중심으로 정리해보려고 한다.


첫 오픈소스 컨트리뷰션

그동안 알게 모르게 여러 open source software 를 사용해왔지만, 올해 처음으로 컨트리뷰션해보고 그 재미를 느끼게 되었다.

컨트리뷰션은 k8s 에서 vm ochestration 을 담당하는 모듈인 kubevirtcontainerized-data-importer 를 사내에서 사용하다 버그를 발견하고, 사내 팀원들 그리고 kubevirt maintainer 들과 같이 논의하며 버그를 수정한 작업이었는데,

버그의 원인을 찾아 이슈를 제기한 것은 나였지만, 난 사실 이전까지는 github 을 제대로 사용하지도 않았고 오픈소스를 진지하게 소스코드 레벨까지 분석해보며 사용해본 적도 없었기 때문에 ‘이 정도로 분석해서 이슈 제기했으면 kubevirt 쪽에서 수정해 주겠지~’ 하는 생각으로 이슈 제기에 그쳤지만, 팀 동료 중 한 명이 우리가 직접 이슈 해결까지 해보자는 제안을 해주어서 적극적으로 진행하게 되었다.

동료분은 이전에도 다른 오픈소스에 컨트리뷰션한 경험이 많았기에 fork 는 어떻게 해야 하고, pr 은 어떻게 날려야 하고, code review 는 어떤 식으로 진행되고 이런 일반적인 오픈소스 컨트리뷰션 프로세스에 대해서 리드해주셨고, 사실 버그가 조금 크리티컬한 부분이었기 때문에 어떤 식으로 구현해서 해결하는 것이 best 인가에 대해서 maintainer 들끼리도 의견이 갈렸는데 이 부분을 조율하는 데 있어서도 상당히 큰 역할을 해주셨다..

이렇게 많은 역할을 해주었음에도 불구하고 commit 은 제 이름으로 하는 게 좋겠다고 해주셔서 약 1 개월간의 리뷰 끝에 “Signed-of-by: anencore94” 가 적힌 commit 이 @kubevirt 프로젝트에 merged 될 수 있었다. 아마 오픈소스 컨트리뷰션의 즐거움을 알려주시고 공유하고 싶으셨던 것 같은데, 그런 의도셨다면 성공하셨다고 말씀드리고 싶다ㅋㅋㅋ 이 분이 없었다면 오픈소스 컨트리뷰션에 대한 막연한 두려움에 아마 아직까지도 pr 을 한 번도 못 날려봤을 것 같은데, 덕분에 오픈소스에 입문할 수 있게 되어서 항상 감사한 마음을 가지고 있다.

ct (첫 컨트리뷰션!)

이렇게 첫 컨트리뷰션을 할 수 있었고, 얼마 지나지 않아 이를 바탕으로 사내에서 ‘처음 시작하는 오픈소스 컨트리뷰션’이라는 주제로 세미나도 진행하게 되었지만, 사실 이때까지는 딱 한 번 컨트리뷰션 해본 것이 전부였고 이끌어주는 사람도 있었기에 ‘와 재밌다, 진짜 뿌듯하다’ 이런 느낌까지는 들지 않았었다.

하지만 진짜 큰 보람을 느끼고 재미를 느끼게 된 계기가 있었는데…


오픈소스 문화

k8s 를 처음 접하는 사람에게는 직접 k8s cluster 를 구축하고 관리하는 일은 여러 가지로 쉽지 않은 일이기에, k8s 관련 학습 혹은 간단한 테스트를 위해서는 대부분 로컬에 minikube 환경을 구축하고 사용하는 경우가 많다.

물론 나도 마찬가지로 minikube 를 사용해서 여러 기능을 테스트하곤 했는데, 어느 날 보니 minikube delete 를 해도 minikube 관련 설정(config) 파일이 지워지지 않고 있다는 현상을 확인하게 되었다.

평소 같았으면 ‘버그면 뭐 언젠가 고쳐주겠지’라는 생각으로 아무런 액션도 취하지 않거나 아니면 ‘이런 버그가 있다’라는 issue 만 등록했을 텐데, 그날따라 왠지 이 버그가 생기는지 너무 궁금했다. 그래서 github 에 open 된 source code 를 직접 뒤져보게 되었고, code 의 어느 부분이 문제인지까지 확인한 후에 이를 수정하는 pr까지 날려보았다. 확인해보니 되게 간단한 mistake 로부터 비롯된 버그여서 쉽게 수정할 수 있었다.

그러자 minikube maintainer 로부터 “LEGIT bug!” 라며, 버그를 찾아줘서 고맙다는 답변이 달렸고, bugfix 에 그치지 말고 다음부터는 이런 버그가 발생하지 않도록 직접 test code 까지 추가해보는 게 어떻겠냐는 제안을 받아, test code 를 추가하는 pr과 관련된 소스코드를 더 개선하는 pr 까지 이어서 날리게 되었다.

legit-bug (처음에 +10 points 준다는 걸 보고 github 에 뭔가 point 시스템이 있는 줄 낚였다..)


사실 첫 컨트리뷰션과는 다르게 뭔가 처음부터 끝까지 혼자 힘으로 해냈다는 느낌도 들었고, 무엇보다 maintainer 들이 해주는 자세한 code review, 버그를 찾아줘서 감사하다는 코멘트, 본인들이 쉽게 추가할 수 있는 test code 임에도 불구하고 newbie 의 참여를 유도하는 코멘트까지 정말 친절하고 센스있는 maintainer 들로 인해서 오픈소스 문화에 대해 정말 정말 정말 좋은 감정을 가지게 되었다.

thank-you (그냥 Thank you 라고 할 수도 있는 걸 직접 한국어 번역기를 돌려 ‘대단히 감사합니다’라고 말해주는 센스 👍)


이를 계기로 minikube project 에는 애착이 좀 생겨서 이후로도 사용하면서 눈에 보이는 버그가 있으면 pr 을 적극적으로 날려보고, 좀 더 많은 한국 유저들이 쉽게 사용할 수 있도록 명령어의 한국어 번역도 추가하는 pr도 날리는 등 여러 가지 기여를 지속적으로 하는 계기가 되었다.

mini (어쩌다보니 8 commits)


회사에서는..

올해 회사에서는 두 가지 큰 이벤트가 있었다.

먼저 PM 롤을 잠깐이나마 맡게 되었는데, 직책 상의 변화가 있었던 것은 아니고 팀 내 한 프로젝트의 리드 업무를 두 달 정도 맡았다. 개발도 진행하면서, 코드 리뷰 관리, 이슈 우선순위 관리, 로드맵 관리 등을 진행하게 되었는데, 사실 심적으로 많이 힘든 기간이었다..ㅠ

책임감이 엄청 강한 성격이라서 무언가를 이끌어야 하는 업무를 맡으면 자신을 희생하면서 올인하는 스타일이고, 그러면 나 자신이 너무 힘들어진다는 걸 너무 잘 알아서 아예 리드 업무를 안 맡으려고 하는 편인 데다가, 1 년 차밖에 안 된 나로서는 실력에 대한 자신감이 없었기 때문에 내가 이런 업무를 할 자격이 있는 사람인가에 대한 고민을 하는 시간이 너무나 많았다.

이렇게 말하면 선을 넘는 게 아닐까, 어떻게 하면 최대한 상처주지 않으면서 내가 원하는 바를 전달하고 동기부여까지 이끌 수 있을까를 고민하느라 코멘트 하나를 달면서도 썼다 지웠다를 얼마나 반복했는지 모른다.(첫 연애할 때도 이 정도로 썼다 지웠다를 반복해본 적은 없었다…)

그래서 결국 팀장님께 말씀드리고 리드 업무를 내려놓게 되었는데, 사실 하는 동안은 힘들었어도 지금 돌이켜보면 정말 좋은 경험이었다고 느끼고 있다. 개발자라면 누구든지 나중에 manager track 으로 들어서는 것에 대한 고민을 많이 할 텐데, 이에 대한 경험을 미리 해보고 나에게 어울리는 track 이 무엇인가에 대해 진지하게 생각해 볼 수 있었던 계기가 아닌가 싶다.


dddj

그리고… 두둥!

부서 이동이 있었다.

사실 이 회사에 입사할 때 데이터 분석/ML 업무를 하고 싶다고 했지만, 왜인지 Cloud Storage 를 담당하는 팀에 배치되었고, 이왕 맡은 업무이기에 열심히 하긴 하면서도 ‘내가 지금 이 일을 하는 게 맞나..’라는 생각이 가슴 한구석에 항상 있었다.

그러다 올해 기회가 되어서 부서 이동을 할 수 있게 되었고, 데이터 분석을 main 으로 담당하는 팀은 아니지만 그래도 데이터 통합 분석, 관리 플랫폼을 개발하는 팀으로 이동하게 되었다.

그런데 여기서 재밌는 게, 이전 팀에서 습득한 클라우드, 스토리지 관련 지식이 사실 앞으로의 내 커리어에 있어서 도움이 되지 않을 거라고 생각했는데, 쿠버네티스가 점점 뜨고 cloud native 한 application 을 만드는 게 ML/DL 쪽에서도 필수적인 역량이 되고 있어서 현재 팀 내에서도 많은 도움이 되고 있고 앞으로도 k8s 관련 경험은 굉장한 장점이 될 것 같아서 정말 감사하고 있다.

  • 역시 스티브 잡스의 말처럼 내가 찍어온 점들은 당시엔 아무런 관련이 없어 보여도 뒤돌아보면 다 연결되어 있는 것 같더라..

여행

올해는 covid-19 로 인해서 여행을 가기 너무나 어려운 한 해였지만, 운 좋게도(?) 두 번의 긴 여행을 다녀올 수 있었다.

me

2019 년 말부터 2020 년 초까지 약 11 박 13 일 동안 가족과 함께 프랑스, 체코, 영국을 다녀왔다. 이전까지는 주로 친구들과 일본, 동남아 등의 가까운 여행지만 다녔지만 19 년 12 월 외할아버지가 돌아가시고 나니 그동안 가족과 보낸 시간, 추억이 너무 부족했다고 느껴서 2020 년 연차를 한 번에 다 몰아 써서 다녀오게 되었다.

물론 그로 인해서 작년 2월부터 연말까지 휴가다운 휴가를 한 번도 써보지 못했지만;; 그래도 후회 없을 만큼 정말 좋은 추억이 생겼다. 다른 것보다 체코가 정말 정말 좋았어서 1 년 내로 꼭 한 번 더 와야지 계획했었는데, covid-19로 다 물거품이 되어버렸…ㅠㅠ


두 번째 여행은 논산 훈련소로 4 주간 여행을 다녀왔다. 전문연구요원으로 복무 중이라 3 년 복무 기간 중 4 주간 훈련소를 갔다 와야 하는데, 이렇게 오래 사회와 단절되고 문명과 단절된 적이 없어서 정말 이 시대에 경험하기 힘든 특별한 경험을 할 수 있었다. 하지만 훈련소만 다녀온 사람이 군대 얘기하는 것도 웃기고, 남의 군대 얘기를 좋아하는 사람은 아무도 없기 때문에ㅋㅋㅋ 자세한 얘기는 생략!


커뮤니티 활동

올해에는 몇 가지 커뮤니티 활동에도 살짝 발을 담가봤다. 자연과학을 전공했기 때문에 주변에 CS 관련 인맥이 회사 동료 말고는 진짜 거의 없는데, 다른 회사, 다양한 직무의 개발자분들과도 얘기를 나눠보고 친해지고 싶어서 참여하게 되었다. 회사 일과 관련 없는 자기 계발을 하고 싶어도 꾸준히 하는 게 정말 어려웠는데, 비슷한 길을 가는 다른 분들과 얘기를 나누고 힘든 점을 공유하면 조금 더 멀리 갈 수 있지 않을까 하는 생각도 큰 이유였다.


글또

logo

이전부터 여러 기술 블로그 포스팅으로부터 소프트 스킬, 하드 스킬 모두 많은 도움을 받았기에 나도 기술 블로그를 운영하고 싶다는 생각은 가지고 있었지만 귀찮다는 핑계로 꾸준히 포스팅하지 못하고 있었다.(당시 포스팅한 글은 단 3 개였다..) 그래서 어느 정도 강제성을 나에게 부여해야겠다는 생각을 가지고 있을 때쯤 변성윤 님의 글또 5 기 모집 글을 접하게 되어서 참여하게 되었다.

참여 이유와 계획에 대한 이야기는 글또 5기 다짐 포스팅에 작성했기에 자세한 이야기는 생략! 사실 아직까지도 하나의 글을 쓰기 시작하는 게 어렵고 두렵게 느껴지고 있긴 하지만, 그래도 글또 5기에 참여한 덕분에 포기하지 않고 계속 글을 작성할 수 있는 것 같다. 글또에 참여하지 않았다면 이 글도 아마 적다가 말았을 것 같다.. 참여할 수 있어서 정말 감사하게 생각하고 있다.

비록 covid-19 로 인해 오프라인으로 커뮤니케이션할 기회가 없었어서 아쉽긴 했지만 온라인으로라도 다양한 분들과 소통할 수 있어서 좋았다. 내년에는 covid-19 상황이 좀 나아져서 더욱 다양한 방식으로 만날 수 있었으면 더욱 더 좋을 것 같다!


구글 머신러닝 부트캠프

mlboot

구글 코리아에서 진행하는 Data Science, ML/DL Engineering 관련 직무로 가길 희망하는 Software 개발자를 위한 교육 프로그램이다. 글또는 그래도 예전부터 관심을 가지고 지켜봤던 커뮤니티였지만, 구글 머신러닝 부트캠프는 처음 시행되는 프로그램이라서 신청할까 말까 고민을 했는데, 지금 와서 돌이켜보면 신청하길 정말 잘했다는 생각이 든다.

항상 DS/ML 쪽으로 경력을 전환해야겠다는 생각은 가지고 있었지만, 사실 AI 라고만 하면 너무나 큰 분야이기도 하고 나의 백그라운드가 평범하진 않기에 어디서부터 어떤 식으로 준비해야 하는지 파악하기가 어려웠기에 첫 발을 떼기가 정말 어려웠다.

하지만 구글 머신러닝 부트캠프에서 제시한 대략적인 가이드라인을 따라가며 비슷한 목표를 가진 많은 분들로부터 자극을 받을 수 있었고, 현업 종사자분들의 솔직한 얘기를 들을 수 있는 기회도 제공해 주어서 정말 많은 도움이 되고 있다. 같은 목표를 가진 사람이 옆에 있다는 것만으로도 정말 큰 힘이 되는 걸 다시 한 번 느낀다..


2021 계획

일단 이직

DS/ML/DL 분야로 1, 2 분기 사이에 이직하는 걸 계획하고 있다. 아직 현업에서 굴러본 게 아니기에 Engineering 쪽이 맞을지, Research 쪽이 맞을지 확실하게는 모르겠지만 그래도 지금으로서는 실제 서비스에 ML 을 적용해보고, 그 결과를 눈으로 직접 확인할 수 있는 일을 하고 싶다. 도메인은 뭐 크게 상관없지만, 대량자체 데이터를 관리하고 있는 B2C 회사로 가서 데이터를 다뤄보고 싶다!

Climate issue

아주 오래전부터 꿈꿔왔던 걸 한 문장으로 요약하면 다음과 같다.

'자연을 이해하는 것'

그렇기 때문에 자연의 언어인 수학, 물리에 빠지게 되었다. 물론 깊게 공부하면 할수록 한낱 작은 존재인 내가 이 거대한 자연을 완벽하게 이해하고자 하는 것 자체가 너무나 큰 오만이었다는 걸 느끼고 그만두긴 했지만… 알파고의 출현부터 GPT-3 까지 눈으로 봐도 믿기 힘든 소프트웨어들을 경험하다 보니 원론적으로, 이론적으로 자연을 완벽하게 이해하는 것만이 능사가 아니라는 것 같다는 생각이 든다.

  • 이제는 무언가를 완벽하게 이해하지 못하더라도 input 에 따른 output 재현은 충분히 가능한 시대가 온 것 같은…

개인적인 시각으로 아직까지는 산학 모두 ‘자연’보다는 ‘인간’을 이해하는 데에 포커스가 맞춰져있는 것으로 보이는데, 지구에서 계속해서 살아가기 위해서는 자연에 대한 이해는 필수적이라고 생각한다. 혹여나 다른 행성으로 가서 살길 원한다 하더라도 그 행성의 물리 법칙과 자연을 이해해야 하는 것은 필수불가결하다.(아마 더 어렵겠지..) 그렇기에 지금부터 조금씩 조금씩 관련 지식을 쌓아나가야겠다는 생각을 해본다.

운동

누구나 그렇겠지만 무슨 운동이든 막상 하면 재밌지만, 운동하러 가는 게 정말 힘든 것 같다. 특히나 요즘같이 헬스장이 문을 닫은 경우에는 집에서 운동을 꾸준히 한다는 게 정말 힘들더라.. 예전에 운동 목표를 세우고 목표를 달성했을 때의 그 짜릿한 기억이 이제 슬슬 희미해져가고 있는데, 올해는 체계적으로 목표와 계획을 세워서 다시 한번 그 기분을 느껴봐야겠다는 생각이 든다. 이젠 진짜 몸을 걱정해야 할 나이이기도 하고…

그러기 위해서는 우선 현재 수준을 객관적으로 파악하고 실현 가능한 목표를 정하는 것부터 시작해야겠지만, 일단 지금 생각나는 목표로는 ‘풀업 20회’ 정도 말고는 생각나지 않네… 아무래도 운동을 쉰 지 너무 오래된 것 같다ㅠㅠ

일단 당장 오늘부터 유산소라도 시작해보기!

커뮤니티 활동

우선은 머신러닝 부트캠프와 글또 5기를 잘 마무리하고 싶다. 물론 구글 머신러닝 부트캠프는 일회성으로 끝나겠지만 가능하다면 글또는 다음 기수도 계속해서 참여하면서 적극적으로 참여해보고 싶다.

py

그리고 올해는 더도 말고 덜도 말고 딱 한 번이라도 public 한 발표를 해보려고 한다.

발표할 때의 그 긴장감과 떨림이 싫어서 꼭 해야 하는 자리가 아니면 기피하는 편인데, 그래도 예전엔 정~말 싫어했다면 지금은 조금 싫어하는 편으로 바뀐 것 같기도 하고, 언제까지나 기피할 수는 없는 일이기에 올해 단 한 번이라도 public conference 에서 발표해보고 싶다. 사실 발표 준비 과정에서 배우는 것도 정말 많고, 한 번 하고 나면 나에게 남는 게 정말 많은 활동인 것은 분명하기 때문에 도전해볼 예정!

이런 곳에서 발표하는 일이 누군가에게는 쉬운 일이겠지만, 개인적으로는 정말 큰 도전이 될 것 같아서 벌써부터 두근거린다..ㅎㅎ


뭔가 하고 싶은 건 많은데 그만큼의 노력은 하지 않고 살아왔던 것 같다. 옛날에 어디서 보고 머릿속에 간직했던 글귀인데 생각나서 적어본다.

"상상할 수 없는 꿈을 꾸고 있다면 상상할 수 없을만큼의 노력을 해라."

2021 년을 마무리할 때, 이 글을 보면서 부끄러움이 없는 한 해가 될 수 있기를!