티스토리 뷰
2018년 회고는 분기별로 작성했는데 올해는 1월부터 12월까지 있었던 큰 꼭지로 이야기를 풀어봤고, 불특정 다수에게 보이기보다는 저 스스로 훗날 들춰보고 반성할 수 있는 일기 느낌으로 작성했습니다. 일 년이라는 시간 동안 정말 많은 일들이 있었네요. 며칠 동안 작성한 내용인데 지난 시간을 돌이켜보는 아주 좋은 계기가 되었습니다. :-)
# 대용량 채팅 서버와 동고동락
오디오 플랫폼에서 사용 중이던 채팅 서버를 Scala+akka 기반으로 리뉴얼했습니다. 서비스가 앞으로 더 확장되면 기존에 있던 채팅 서버로는 한계가 있었기 때문입니다. 그렇게 akka기반의 대용량 채팅 서버를 두 달여간 개발해서 작년 말부터 서비스하기 시작했습니다. 작년 크리스마스는 서버 모니터링과 함께 했는데 Grafana 그래프가 출렁일까 봐 핸드폰을 손에서 놓지 못하고 계속 모니터링했네요. 혹여라도 장애가 날까 노심초사했는데 akka의 근간이 되는 Actor의 철학에 대한 이해도가 떨어지기도 했고 예상하지 못한 비즈니스적인 문제가 먹잇감 찾는 하이에나처럼 채팅 서버를 가만두지 않았기 때문이죠. 문제가 발생하면 서비스가 빠르게 정상화되도록 디버깅과 코딩으로 새벽을 불 싸지르기도 했던 시간이었습니다. 특히 연초까지 이어진 연예인 특집 방송으로 청취자 채팅이 폭주하고 앱 내 아이템이 신나게 흩날릴 때 뒤에서 긴장의 끈을 붙잡고 있기도 했고요. 돌이켜보면 소소한 문제는 있었지만 대규모 채팅 트래픽을 경험할 수 있었던 소중한 시간이었습니다. 아마도 Java이 익숙한 상태였으면 Scala가 조금은 더 친숙했을 테고 memory leak을 잡는데 덜 고생하지 않았을까 하는 아쉬움은 남습니다. 이때까지 제 인생에 Java는 없었거든요. 그리고 채팅 서버에서 시작하는 다양한 아이디어가 있었지만 비즈니스적인 문제로 실천하지 못한 것이 많았는데 개발과 비즈니스 사이에서 많은 고민 해볼 수 있는 기회가 됐습니다. 이를테면 “A라는 기능이 있으면 정말 재밌겠다”하는데 비즈니스적으로 이용자가 사용하지 않을 가능성이 농후한 기능이라면 방향을 다시 잡아야 하는 거죠. 회사는 매출을 올려야 하는 집단이니까요. 아무튼 채팅 서버는 개발뿐만 아니라 기획 등 다른 쪽으로 시야도 넓힐 수 있었던 좋은 계기가 됐습니다.
# 부끄러운 ML 엔지니어
한편 채팅 서버의 궁극적인 목표는 Apache Incubator에 밀어 넣는 것이었습니다. 어떤 서비스를 개발하더라도 채팅은 대부분 인서비스되는데 이 부분을 민주화하려 했던 거죠. 하지만 목표는 달성하지 못했습니다. 비록 목표 달성에는 실패했지만 그 과정을 밟으면서 아파치의 다양한 면모를 살피는 좋은 경험을 할 수 있었습니다. 그리고 곧 채팅 서버 개발에서 손을 떼면서 맡게 된 업무는 음성인식( Speech Recognition ), 음성합성( Speech Synthesis ) 등 머신러닝 연구 개발이었습니다. 이때부터 그야말로 RND 스러운 일을 시작하게 됩니다. 오디오 플랫폼을 서비스하는 회사답게 쌓여있는 풍성한 음성 데이터는 연구 속도를 올려 빠른 결과를 도출해보는데 큰 역할을 했습니다. 이때 음성과 관련된 논문은 닥치는 대로 리서치했고 구현되어 있는 다양한 오픈소스를 살폈습니다. 그 일례로 Tacotron2, waveglow, wavenet, deepspeech2, rnnoise 등 음성연구와 관련된 오픈소스에 다방면으로 기여하게 됐습니다. 특히 모질라의 RNNoise는 파이썬은 물론이고 C와 셸까지 능숙해야 코드를 살피는데 무리가 없었는데 본인이 여기에 최적화된 인재가 아닌가 하는 망상에 빠져 즐겁게 들여다봤던 것 같습니다 (하하). 머신러닝 전공자는 아니지만 텐서플로우 공식 문서 번역 프로젝트에 기여했던 경험과 한빛미디어 도서 리뷰 때 읽은 머신러닝 도서들 덕분에 허들이 없어 진입하는데 어려움은 없었습니다.
그동안 머신러닝과 Python을 생업으로 삼고 싶다는 삶의 작은 목표를 음성연구를 하며 이루게 돼서 무척 즐거운 시간을 보낼 수 있었습니다. 하긴 그동안 Python을 사용한 건 개인적인 관심과 대부분 사이드-프로젝트으로만 진행했으니까요. 그리고 머신러닝의 경우에는 회사의 전폭적인 지지로 고가의 Nvidia quadro 8000 RTX 두 장 장착하고 있는 워크스테이션을 사용해볼 수 있었고 서브(sub)로는 2080ti를 옆에 두고 마음껏 돌려 봤는데 다시 그런 장비를 사용할 날이 있을는지 모르겠습니다. 아무튼 딥러닝 관련된 오픈소스 프로젝트에 기여한 수준이 GitHub 계정을 생성한 이래로 누적된 PR보다 더 많은 걸 보면 오픈소스 활동도 꽤 열심히 한 듯합니다. 하지만 여전히 스스로에게 부끄러운 게 많습니다. 머신러닝 모델의 코어 레벨까지 깊이 있는 이해를 하지 못했고 페이퍼에 쓰인 다양한 수식을 이해하기에 저는 한 없이 부족했습니다. 논문 내용을 기반으로 작성된 코드를 커스터마이징 하거나 구현이 잘못된 부분은 곧 잘 수정할 수 있었지만 무에서 유를 만들 정도는 아니었으니까요. 그럼에도 머신러닝 엔지니어라는 수식이 붙어있는 명함 한 장에 기뻤던 건 저도 결국 유행을 좇은 수많은 사람들 중 하나였나 봅니다. 지금은 정신 차리고 머신러닝과 관련된 그 어떤 프로젝트도 진행하고 있지 않지만 그 시절은 충분히 그립습니다. 머신러닝은 충분히 매력적이고 거대한 트렌드이니 잘 준비해서 파도에 올라타는 것은 충분히 가치가 있지만 그렇지 않다면 파도를 정통으로 맞고 가라앉을 수 있다는 사실을 잊지 마세요. 혹시 주변에 그럴싸해 보이는 ML 엔지니어 타이틀을 달고 있는 사람의 입담이나 소문에 싱숭생숭한 분이 없기를 바랍니다.
# 꿈은 창업, 현실은 이직
음성연구에 매진하며 정신없는 상반기를 마무리할 즈음 수개월 동안 창업에 대해 끊임없이 스스로에게 질문을 던지고 고민한 결과 스푼라디오를 서비스하는 마이쿤에서의 짧지만 듬직했던 생활을 정리하게 됐습니다. 회사를 나온 가장 큰 이유는 직장인의 삶과 옷을 벗어던지기 위해서였는데요. 100세 시대를 준비하기에 평범한 직장 생활로는 한계가 있다는 결론에 다다랐기 때문이었습니다. 당시 CEO께서는 떠나는 저에게 이런 결정을 응원하고 기회가 되면 여러 가지 조언을 해주겠다며 언제든 찾아오라고 하셨지만 왠지 모르게 죄송스러운 마음에 찾아갈 생각은 못하고 있습니다. 아무튼 직장을 뛰쳐나와 야생 같이 냉혹한 밑바닥에서 창업을 준비하기도 전에 개인적인 사정들로 인해 창업에 대한 생각은 접을 수밖에 없게 됩니다. 너무 하무한 결론이지 않나요? 창업은 긴 호흡으로 생각하면 느긋하게 갈 수 있었겠지만 초반러쉬가 상당히 중요합니다. 초반 하루를 한 달처럼 사용한다는 각오로 시간 활용을 잘해야 하는데 그럴 처지가 아니었던 거죠. 비록 당장의 창업은 접었지만 개인적으로는 이게 끝이라고 생각하지 않고 잠시 연기된 것이라고 생각 중입니다. 다행스러운 것은 백수 생활로 생업에 문제가 생기기 전에 여러 경로를 통해 다양한 기회가 찾아왔고 그중에 제가 걷고자 했던 그 길과 가장 비슷한 곳으로 좋은 조건에 이직을 하게 됐습니다. 특히 “창업을 하고 싶으면 니 돈 쓰지 말고 여기서 먼저 경험하라”라는 말에 고민 없이 합류할 수 있었습니다.
# 새로운 도전
이제 스프링 프레임워크로 플랫폼 개발을 시작했습니다. Java라면 학을 땔 정도로 거부감이 있었던 사람인데 어차피 인생에 자바를 끼워 넣어야 한다면 바로 지금이라는 생각이 들었기 때문이에요. 그쪽 방면으로는 굉장한 분들이 사방에 앉아 계시는데 이 틈바구니 사이라면 조금 더 빨리 언어에 적응하고 성장할 수 있겠다 싶었습니다. 미리 규칙이나 약속도 없었는데 수줍게 커밋되어 있는 제 코드를 리뷰해주시는가 하면 스프링의 개념이나 철학을 익히는데 다양한 도움을 받고 있습니다. 또한 현재 모든 인프라는 Google Cloud Platform 위에서 동작합니다. 그간 GCP를 꾸준히 사랑해왔지만 재직했던 회사들이 퍼블릭 클라우드로 AWS를 사용했기 때문에 마음 한 편의 욕심이 있었는데요, 드디어 업무로 구글 클라우드를 사용하게 된 겁니다. 이전 회사들이 AWS 기술지원을 받을 수 있는 가장 높은 등급인 엔터프라이즈 서포트를 받고 있어서 TAM( Technical Account Manager )과 함께하는 시간이 많았기 때문에 여러 가지 많은 도움을 받을 수 있었는데, 현재는 사무실에 클라우드 내공이 깊은 분들이 여럿 계시니 이미 TAM과 함께하는 느낌입니다. 내 주변에 여러 방면의 고수들이 많다는 건 정말 말로 표현하지 못할 정도의 큰 즐거움입니다. 공부하는 용도로 쓰던 때 와는 다르게 실제 서비스를 운영하기 위해 준비하는 과정에서 다양한 문제를 직면하고 해결해가면서 뭔가 현업 기술력이 쌓이는 느낌이랄까요? 그리고 준비하고 있는 서비스를 중국 론칭까지 생각하다 보니 알리바바 클라우드의 문까지 두드리고 있습니다. 중국 네트워크의 특수성을 조금이라도 가깝게 느껴보기 위해서 베이징을 다녀오기도 했고요. 내년에 대륙의 트래픽을 경험할 생각에 벌써부터 두근두근합니다. 아무튼 굉장한 경험입니다. 이 모든 게 불과 수개월 내에 벌어진 일들인데 내년에는 또 어떤 변화가 있을지 기대됩니다.
# 커뮤니티 오거나이저
GDG Cloud Korea의 오거나이저 활동에 대한 회고 내용은 별도의 글로 다룹니다.
# 악재
올해는 식구들이 유난히 아파서 병원을 집 문 턱 넘듯이 다녔습니다. 아이는 생전 처음으로 구내염에 걸렸고, 장염에 A형 독감까지. 아내도 여러 가지로 힘들었으며 아버지도 위에 선종을 제거하는 시술을 하셔야 했습니다. 저는 난생처음 스케일링을 받았다가 삼일 동안 피가 멎지 않아서 퍽 고생했습니다. 혹시나 하는 마음에 피검사를 포함한 다양한 검사를 해봤네요. 또 올해 드디어 십여 년을 함께해온 왼쪽 사랑니 두 개와 작별을 고했습니다. 그리고 체해서 변기를 붙잡고 점심때 먹은걸 확인한 게 얼마만인지 모르겠습니다. 이 외에도 크고 작은 사건들이 많았지만 더 이상 지면을 할애하지 않겠습니다. 좋은 일이 아닌데 꺼내서 뭐하나요.
# 도서 리뷰
한빛미디어를 통해 올해도 리뷰어로 활동하고 있으며 약 열 권 정도 리뷰 할 수 있었습니다. 그리고 올해는 무슨 운이 좋았는지 난생처음으로 출간되기 이전의 책을 베타 리딩 할 수 있는 기회가 있었는데 무려 두 권이었습니다. 한 권은 파이썬 날코딩으로 알고 짜는 딥러닝, 그리고 또 한 권은 커피 한 잔 마시며 끝내는 Vue.JS 책이었는 데 간단한 오탈자부터 문맥까지 확인하며 내 책도 아닌데 뭔가 애정을 쏟아냈고 그렇기 출간된 책은 다행히 나쁘지 않은 성적을 거두고 있습니다. 잘 다듬어진 책 앞에 본인 베타 리더의 한 마디가 적혀있을 때의 짜릿함이란. 혹 기회가 되신다면 꼭 해보시길 권합니다. 일반적인 도서 리뷰와는 다른 분명 새로운 경험이 될 겁니다.
# 블로그 운영 회고
개인적으로 불만 불평 많은 티스토리에 여전히 잔존해 있으며 댓글 때문에 많은 고민을 하는 한 해였습니다. 가급적 댓글에는 대댓글로 답변을 하려고 노력하는데 노력 대비 질문하는 사람은 그렇지 않은 경우가 허다합니다. 어느 글에서 본 것처럼 댓글을 막아버리고 정말 궁금한 게 있다면 이메일로 연락을 취할 수 있도록 유도하는 것도 나쁘지 않아 보입니다. 어느 정도 익명의 그늘에서 벗어나지는 거니까요. 실천으로 옮기지는 못했지만 댓글의 효용에 대해서는 여전히 부정적입니다. 사실 이런 생각을 하게 된 가장 큰 이유는 일본에서 받은 이메일 한 통에서 시작됐는데요, 일본에서 학교를 다니는 학생분이 제가 음성연구를 한참 하던 상반기에 작성해둔 Kaldi 예제 글을 실습하며 발생한 문제를 같이 고민해달라는 메일이었습니다. 언어의 장벽은 있었지만 각고의 노력 끝에 맥에 설치되어 있는 컴파일러 문제를 유추하고 해결할 있었습니다. 이런 경험을 하고 나니 과연 댓글로 쉽게 던져지는 질문에 진중한 답변이 가치가 있는지에 대한 회의가 들었던 거죠. 아마도 이 고민에 대한 해답은 내년쯤 찾을 수 있을 테고 어떤 식으로든 움직이게 될 겁니다.
올 해는 총 86개의 글을 썼네요. 상세 내용으로는 GCP(7), AWS(4), AlibabaCloud(4), 기계학습(13), Python(8), Docker(7) 정도가 되겠습니다. 나머지는 도서 리뷰나 카테고리 분류가 애매한 기술 이야기를 다룬 글입니다. 평균적으로 블로그에 들어오시는 분들의 수는 미세하게 증가했지만 크게 티 나지는 않습니다. 주말 접속자는 뚝 떨어지는데 기술 블로그라는 반증이겠죠.
티스토리 안에도 통계를 확인할 수 있는 부분은 있지만 너무 기본적인 수준이고 다양한 지표를 뽑아보기에는 구글 애널리틱스를 심어놓는 게 훨씬 나은 듯합니다. 이런 지표만 갖고도 대략 어느 시기에 본인이 글을 열심히 작성했는지 가늠이 될 정도입니다. 유입수가 다르거든요. 내년에도 잘 활용해볼 계획입니다.
# 마무리
모르는걸(혹은 잘하지 못하는 것을) 인정하는 순간 더 빠르게 많이 성장할 수 있다는 걸 느낀 한 해였습니다. 아이러니하게도 저는 이걸 게임하면서 느꼈는데요. 그간 내 포지션에서는 내가 항상 최고여야 하고 제일 잘해야 한다는 압박감이 있었는데 그런 것들을 벗어던지고 나니 그때부터는 “즐겜”을 할 수 있었습니다. 이건 회사도 마찬가지고 누군가와 대화할 때도 마찬가지인데 나를 포장하는 그 순간부터가 스트레스의 시작이 아닐까 싶었어요. 정말 포장지 속에 있는 그런 사람이 되어야 하는 중압감이 저도 모르는 사이에 생기는 거죠. 사실 적당한 포장은 사회생활에 필요할 수 있겠지만 요즘 사람들은 적당히라는 걸 잘 못하잖아요? 아무튼 이런 생각들을 하고 나니 마음이 편안해지면서 도움받는 게 쉬워졌습니다. 굉장히 간단한 논리를 이제야 깨달은 겁니다. “모르는 게 잘못이 아니라 알려고 하지 않는 게 잘못이다”
내년에는 올해보다 나은 사람이 되자는 쉽지만 어려운 목표를 위해 노력해야겠습니다.
'생활 > 회고' 카테고리의 다른 글
2020년 회고 (부제: 다음 스테이지로 이동) (2) | 2020.12.26 |
---|---|
리모트 근무 회고 (2) | 2020.02.28 |
2019년 회고 (부제: 커뮤니티 오거나이저 편) (0) | 2019.12.19 |
2018년 회고 (부제: 임베디드 개발자의 커리어 전환) (11) | 2018.12.24 |
2017년 회고 (0) | 2018.01.04 |
- Total
- Today
- Yesterday