Growth

Tue, Jan 19, 2021 3-minute read

지금 회사로 이직하고 나서 주기적으로 매우 큰 자존감 하락의 주기가 온다. 나와 같은 고민을 하는 사람들의 얘기를 들어보니 Dunning-Kruger Effect를 겪는 것이란다. 자기 자신을 완전 객관화해 진단하긴 어렵겠지만 - 스스로 판단하건데 이전 회사에서는 Peak 언저리를 찍었던 것 같고, 지금은 “I am never going to understand this”, 혹은 그 직후의 단계인 것 같다. 회사에서 사용하는 많은 스킬셋과 테크닉들이 있는데, 각을 잡고 분석해봐도 도저히 짧은 시간 내에 이해할 수 없는 그런 C++ 코드들이 있고, 시도때도 없이 터지는 이해할 수 없는 네트워크 이슈가 있고, 급할 수록 빨라지는 미국 친구들의 본토 영어가 있다. 적어도 셋 중에 하나만이라도 “Trust me, It’s complete” 단계였다면 좀 나았을까?

이런 자존감의 바닥을 기다보면 스스로에 대한 심한 회의감이 드는데, 그러다보면 나는 단순히 Script kiddie가 아닐까 불안함이 나를 엄습한다. 어떤 프레임워크나 라이브러리를 쓰는 일은 어렵지 않지만 그 내부의 동작 원리나 구현방식을 이해하는 건 아니고, 그런 기술적 근간에 맞닿은 근본적인 버그나 성능 문제가 도달하면 내가 할 수 있는 일이라고는 Stackoverflow나 Issue tracker를 기웃거리는 일 뿐이다. 전장 임베디드 소프트웨어부터 시작해 아직도 본업은 이 쪽에 있어서 본인은 물론이고 주변 인력들도 모두 최신 트렌드 및 기술에 둔감하고, 그나마 나는 혼자서라도 깔작거리며 개발자 흉내는 내보려하지만 혼자서 하는 개발 공부, 개인 프로젝트는 무엇이 옳은지 무엇이 잘못된지도 구분하지 못하며 그저 정해진 기능 구현만 어떻게든 꾸역꾸역 해내는 데 급급하기만 하다.

지난 주말 일만 하더라도 그렇다. 작은 토이 프로젝트를 위해 Celery(Python module)을 처음으로 사용해 보려고 했다. 튜토리얼을 통해 주기적인 작업을 등록하는 기본 기능 검증을 하고 나머지 진짜 필요한 핵심 구현을 진행하려고 했는데, Windows desktop에서는 아주 튜토리얼의 Task 실행조차 실패했다. 비슷한 문제에 대해 온라인에서 찾은 해결책들은 전혀 효과가 없었다. 이런 저런 옵션을 주고 튜토리얼의 코드를 찔끔찔금 수정해 가는 시도를 하며 하루를 꼬박 소비하고도 차도가 없어 Linux 환경에서도 시도 해보자 하며, 환경을 옮기고는 거짓말처럼 문제가 없어졌다. 문제는 나는 이런 사단을 겪고도 “왜 Windows에서 Celery가 동작하지 않았는지 설명할 수 없었다"는 점이다. (Celery 홈페이지에서는 “Windows를 공식지원하진 않지만 아마 잘 돌아갈 것이다"라고 적혀있다. 이것을 곧이 믿은 게 독이 되었다)

이는 내가 Python과 Celery와 Windows환경에 모두에 대해서 정통해야 한다는 의미가 아니다. 모든 영역의 완벽한 마스터가 될 수 있는 사람은 없다, 그것은 불가능하다. 하지만, 적어도 - 그 문제가 진짜 무엇이었는지, 무엇으로부터 발생했는지 - 를 이해한 수준에서 답할 준비는 스스로 되어 있어야 한다는 것이다. 완벽한 답을 구할 필요가 없다. 위 질문의 답에는 또 꼬리 질문이 따라 붙기 마련이고 꼬리 질문의 답에 대해서는 또 꼬리의 꼬리 질문이 따라붙기 때문이다. 앞서 말했듯 우리가 모든 질문에 답을 낼 수 있는 지식을 가질 수 없다. 아주 깊게 내려간다면 그 지식 자체가 아직 세상에 존재하지 않을 수도 있다. 우리는 시간과 노력과 결과의 기회 비용을 생각하며, 원하는 최적의 경로로 지식의 Boundary를 확장해 나가야 한다.

다행히 나는 이제 왜 Windows에서 Celery가 동작하지 않았는지 가볍게 설명할 수 있다. Celery에는 비동기 작업 Pool을 관리하기 위해서 Geventeventlet 모듈이 필요한 데 이는 Linux 환경에서만 사용 가능한 탓이다. 안타깝게 나는 Gevent과 eventlet에 대해 이 이상의 설명을 할 수 없다. 누군가에게는 불충분할지 모르겠지만 내 판단하에서는 지금은 이 정도 경계는 괜찮다고 생각한다. 언젠가 이 경계를 또 무너트릴 날이 올테고 그 때도 고민으로 점철된 시간과 노력으로 그 벽을 무너트릴 테니. 당장 나는 무지의 지를 지녔고, 아직 많은 발전의 가능성이 남아있다는 작은 위안으로 공부를 마무리 한다.