티스토리 뷰

에세이

Not Today, Not Alone

June 2020. 12. 31. 23:00

세상에는 가까이 붙어 있으면 안 되는 단어들이 몇 개가 있습니다. '혈액형'과 '성격'이라든지, '음이온'과 '건강'이라든지, '지구'와 '평면'이라든지, '파인애플'과 '피자'라든지. 물론 이런 단어 조합에 대해서는 각자의 다양한 의견이 있을 수 있습니다. 하지만 누구도 이견을 가지지 않을 보편적으로 부자연스러운 단어 조합이 최근에 생겼는데, 바로 '코로나'와 '덕분에'입니다. 무언가의 원인으로써 코로나라는 단어를 사용했으면 그다음에는 반드시 '때문에'가 와야지 '덕분에'가 붙으면 잘못 사용한 자리토씨를 보는 것만큼이나 어색하고 이상한 기분이 들거든요.

 

그만큼이나 '코로나 때문에'를 던지고 남은 문장을 완성하라고 하면 다들 할 말이 무척 많을 겁니다. 그만큼이나 2020년은 모두에게 전에 없을 만큼 힘든 한 해였고, 많은 사람들이 소중한 것들을 새삼스럽게 깨닫게 되거나 잃어버렸던 한 해였으니까요. 사실 그런 분들에 비하면 저는 평소에도 자가격리에 가까운 생활패턴을 가지고 있어서 그런지 상대적으로 잃은 것이 적은 그룹에 속하는 사람이었습니다. 저에게 2020년은 사회적 거리두기 단계가 격상되어도 지침에 맞추어서 생활패턴을 살짝살짝 조정한 것 외에는 크게 달라진 거 없이 살았던 한 해였거든요. 물론 거기에 어떤 불편함이나 아쉬움이 없었다고 하면 거짓말이겠지만, 코로나 때문에 많은 것을 희생하거나 포기해야 했던 사람들에 비하면 정말 하찮은 어려움이었을 겁니다.

 

하지만 2020년을 마무리 하면서 내가 무엇을 얻고 무엇을 잃었는지에 대해서 생각을 하다가 문득 '코로나 때문에'라는 단어 조합으로 시작하는 한 문장이 떠올랐습니다. 아, 나는 코로나 때문에 2020년 목표를 결국 달성하지 못했구나. 물론 의욕적으로 세웠던 1년 목표를 달성하지 못하는 일이야 2018년에도, 2019년에도 있었던 흔한 일이었지만, 저에게는 2020년 목표를 달성하지 못했다는 사실이 좀 가슴 아프게 다가왔습니다. 딱 1년 전 오늘 제가 세웠던 2020년 목표는 정말 너무 달성하기 쉬운 것이었거든요.

 

1년 전, 2019년의 마지막 날에 2019년 목표 달성에 실패했다는 사실을 고민하던 저는, 목표 달성의 실패 그 자체가 문제가 아니라 연말마다 느끼는 패배감이 의욕적이어야 할 다음 연도의 시작에 영향을 미치는 것이 큰 문제라는 생각을 했습니다. 그래서 생각을 조금 바꿔서, 2020년에는 뭔가 거창하고 달성하기 어렵고 힘들고 인내해서 이루어야 하는 그런 목표보다는 정말 쉽고 재미있고 하고 싶은 그런 일들을 목표로 세우는 것이 어떨까라는 생각을 했습니다. 그냥 자연스럽게 목표 달성이 이루어지는 그런 목표라면, 2020년이 끝날 때쯤에는 어쨌든 1년 목표를 달성했다는 성취감을 가지고 그다음 해에 더 의욕적인 목표를 설정할 수 있지 않을까 싶어서요.

 

그래서 저는 1년 전에 이런 2020년 목표를 세웠습니다. '2020년에는 1주일에 한 번 이상 극장에 가서 영화를 보겠습니다' 사실 그 전에도 보통 영화는 1주일에 하나씩은 봤거든요. 그래서 2020년 목표는 아주 조금만 신경 쓰면 이룰 수 있는, 하지만 52주 동안 꾸준히 체크인해야 하기에 나름 어려울 수도 있어서 적당히 성취감을 가질 수 있는, 무엇보다도 진짜 재미있고 즐거운 일로 설정하는 것이 좋겠다는 생각을 했습니다. 그리고 무슨 자격증을 따겠다느니 오픽 최고 등급을 달성하겠다느니 개발에서 은퇴하겠다느니 하는 하찮은 목표들은 모조리 사이드 퀘스트로 설정해버렸습니다. '시간 남으면 하지 뭐' 약간 이런 식으로요.

 

하지만 코로나 때문에 저는 그 쉬운 목표를 달성하지 못했습니다. 개봉하기로 했던 영화가 자꾸 연기되고, 영화관의 자리가 줄어들고, 이미 완료한 예매가 취소되고 하는 일들이 반복되어도 목표 달성을 위해서 꾸준히 영화관을 갔던 저였지만, 어느 순간엔가 내가 목표 달성을 위해서 억지로 재미도 없고 보고 싶지도 않았던 영화를, 그 주에 유일하게 개봉했다는 이유로 봤다는 사실에 환멸을 느끼고는 2020년 목표 달성 실패를 선언한 뒤 더 이상 극장에 가지 않았습니다. 하지만 저는 성취감을 날로 먹기 위해 세웠던 쉬운 목표의 달성에 실패했을 때 느끼는 패배감이 그렇게 클 줄은 몰랐습니다. 그 쉬운 목표도 달성하지 못하다니 나는 진짜 아무것도 하지 못하는 게 아닐까라는 생각이 밀려온 것입니다.

 

하지만 저는 회복탄력성이 좋은 사람이었기에, 밀려드는 자기혐오를 모조리 '이게 다 코로나 때문이다'라는 코로나 혐오로 변환시켜서 저 멀리 던져버리고는 남은 2020년을 그냥 되는대로 살았습니다. 가끔 사이드 퀘스트에 도전했던 적이 없었던 것은 아닌데, 솔직히 말하면 메인 퀘스트 달성에 실패한 시점에 사이드 퀘스트에 대한 도전의식도 좀 시들해졌던 것 같습니다. 그렇다고 열심히 살지 않았다는 말은 아닌데, 뭐랄까 그냥 스칼라처럼 방향 없이 살았던 느낌이었습니다.

 

당연히 달성에 실패했던 2018년의 제 목표는 '되도록 많은 사람들에게 클라우드 네이티브 프로그래밍에 대해서 알려주고 이를 이용해 개발할 수 있도록 도와주자'였습니다. 구체적인 수치 없이 되도록 많은 이라는 말을 사용했지만 '실패'라는 말을 붙였던 이유는 내가 단 한 명이라도 설득에 성공했을까라는 의문이 들었기 때문입니다. 저는 정말 부끄럽지 않을 정도로 최선을 다했습니다만, 사람들에게 서버가 하나가 아니라는 사실을 알려주려다가 오히려 내가 혼자가 되는 기분이 자꾸 들어서 결국엔 목표 달성 실패를 외칠 수밖에 없었습니다. 한동안 반성의 시간을 가진 뒤 2018년의 실패 원인에 대해 분석하고 고민하여 세운 제 2019년의 목표는 '새 부서에서 인정을 받아서 더 영향력이 있는 사람이 되자'였고, 이 목표를 정확히 반대로 달성했다는 사실을 알게 되었을 때, 2020년 목표는 좀 다른 방향으로 생각해봐야겠다는 생각을 했던 겁니다.

 

생각했던 이상과 느꼈던 현실의 괴리를 느끼게 되면서 불안, 우울, 부조화, 번아웃 같은 게 찾아오게 되는데 제가 생각했던 이상은 대부분의 이상향이 그렇듯이 말로 표현하기는 어렵지만 소프트웨어의 순수한 아름다움에 가까운 것이었고, 느꼈던 현실은 다양한 경로로 만나야 했던, 이전도 이후도 생각하지 않은 듯한 지저분한 코드들이었습니다. 물론 저도 부끄러움 없는 코드를 작성한 적이 많다고 할 수는 없었지만, 제가 특히 힘들었던 것은 어쩔 수 없는 상황 때문에 순수하지 못한 프로그램을 양산하게 되더라도 무엇은 꼭 챙겨야 하고 무엇은 어쩔 수 없이 포기해야 하는지에 대해서 고민을 하는 것이 혹시 나 혼자가 아닐까라는 고립감을 감당해야 했다는 점입니다.

 

사실 생산성과 순수성이 충돌하는 것은 흔한 일입니다. 다만 예전에는 '그렇게 짜면 안 된다'는 사람들과 '어쩔 수 없다'는 사람들이 각자의 논리와 근거를 가지고 치열하게 싸웠다면, 최근에는 '그렇게 짜면 안 된다'라고 말하는 순간 목적지까지 일직선으로 터널을 뚫어가며 달리는 사람들 앞을 막아서는 환경운동가가 된 듯한 기분을 느끼게 된다는 것입니다. 스티븐 소더버그 감독은 '시네마의 현황' 연설에서 상업성이 중시되는 영화 시장에서 감독의 철학과 의도가 담긴 '시네마'가 어떻게 사라지는지에 대해서 이야기한 적이 있었는데, 개발의 현황도 사실 이와 크게 다르지는 않았습니다. 하지만 저는 영화와 개발은 다른 점이 하나 있다고 주장하고 싶은데, 소프트웨어의 순수한 아름다움은 생산성과 대립하는 관계가 아니라 궁극적으로는 같은 방향을 추구한다는 것입니다.

 

내가 이렇게 하는 것이 옳은 것일까, 사이드 이펙트는 없을까, 더 최적의 방법이 있지는 않을까, 귀찮고 힘들어도 이건 해놔야 나중에 문제가 안 생기지 않을까 고민하는 과정들은 소프트웨어를 함수에 가깝게 만들고자 하는 순수함에 기반한 활동이지만, 일정에 치이는 많은 개발자들은 변수를 선언하거나, 어디에 값을 저장해두거나, 별생각 없이 스레드를 하나 더 만들거나, 분리해야 할 것을 합치고 합쳐야 할 것을 분리하는 등의 실수를 반복하면서 거침없이 기능을 구현해냅니다. 이는 당장의 업무의 진척에는 큰 도움이 되는 방향이지만 바꿔 말하면 마치 제약없이 이산화탄소를 뿜어내는 것처럼, 그 부작용으로 인해 고생할 미래의 누군가에게 부채를 떠넘기는 행동이기도 합니다. 이는 결과적으로는 소프트웨어의 생산성을 떨어뜨리는 요소가 되는데, 미래가 없는 듯이 일하는 사람들은 이 사실을 크게 신경 쓰지 않는 것 같았습니다.

 

다양한 컨텍스트에서 이러한 취지의 이야기를 조심스럽게 꺼내면 보통 반응은 매우 부정적입니다. 이러한 '대의'에 대해서는 모두가 같은 말을 하지만 정작 그 실천에 대해서는 많은 이견이 존재했던 것입니다. 결국 이상을 실현하려는 노력은 로컬 스코프에 존재할 수밖에 없고, 이루거나 시도할 수 있는 것들도 한정적일 수밖에 없습니다. 일을 점점 어렵게 만든다는 평에서부터 너무 나댄다는 평까지 다양하게 들으면서 일하면 물론 힘이 많이 빠지지만, 사실 가장 힘든 것은 이러한 이야기들에 대한 공감을 얻는 것이 참 어려웠다는 점이었습니다.

 

저는 이런저런 주장을 많이 가지고 있기는 하지만, 내 생각을 다른 사람에게 주입시키거나 설득하는 것을 좀 어려워하는 편입니다. 당장 저도 다른 사람들이 자신의 생각에 동조하라고 강요하면 일단 반발하고 보는데, 다른 사람들의 생각을 이래라 저래라 하는 게 얼마나 옳은 행동일까에 대한 의구심이 항상 있었고 서로 다른 견해의 설득 과정에서 생기는 충돌과 싸움을 피하고 싶은 마음이 컸기 때문입니다. 누가 제 옆에서 귤에 치약을 발라 먹는다고 해도 뭐라 하지 않을 자신은 있지만, 그걸 제 입속에 넣으려고 한다면 싸울 수밖에 없으니까요. 그래서 저는 보통 다른 사람들을 설득하기보다는 그냥 이런저런 내용을 알려주는 정도로 정도로 소임을 다했다고 생각하고, 나와 생각이 비슷한 사람을 찾아서 공감을 얻는 것이 훨씬 빠르겠다는 생각을 했습니다.

 

사실 생각만 했습니다. 2018년 목표 달성에 실패를 외쳤을 때, 그러니까 우리 개발자들은 가혹한 현실에 지쳐서 이론적으로 이상적인 아키텍처나 함수형으로 동작하는 API 같은 것을 이야기하면 크게 화를 내는구나, 라는 사실을 알게 되었을 때 저는 페르미의 역설을 떠올렸습니다. 세상에 나와 같은 공감대를 가지는 사람들이 분명 있을 텐데, 그 사람들은 다 어디에 있지? 혹시 없는 것은 아닐까? 적어도 내가 도달 가능한 범위 내에서는 나 혼자가 아니었을까?

 

2018년 목표 달성에 실패하고, 2019년 목표 달성에 실패하고, 2020년 목표 달성 실패를 선언했을 때쯤 저에게 몇 가지 변화가 있었습니다. 사실 대단한 변화는 아니었고 1~2년에 한 번씩은 있는 일상적인 변화였습니다. 저는 탈출각을 계산하다가 방향성을 잃은 벡터의 내적과 비슷한 상태였지만 어쨌든 열심히 일했고, 2021년을 생각해야 될 시기가 되었습니다. 2021년에는 어떤 목표를 세워야 할까에 대해서요. 이번에는 '반드시 실패할' 목표를 세워서 실패해도 편한 기분을 느낄수 있도록 설계해야 하나, 아니면 핵전쟁이 발발해도 이룰 수 있는 더 쉬운 목표를 세워야 할까에 대해서 고민하고 있을 때쯤 작은 일이 하나 있었습니다.

 

기존에 작성된 코드에 대해서 같이 일하는 후배와 이런저런 이야기를 하다가 문득 원래 가지고 있던 궁금증 하나 물어봤습니다. '그래서 여기서 만약에 이거랑 이거가 동시에 들어오면 어떻게 되죠?' 사실 엄청 조심스러웠습니다. 제가 가진 경험에서 이 질문은 민감한 동시성 처리에 대한 질문이었고, 프로그래밍과 소프트웨어의 순수함에 가까운 고려사항이었고, 많은 사람들이 모르고 지나치거나 알고도 지나치는 부분이라서 보통 이걸 물어보면 결국엔 싸움 엔딩으로 이어졌거든요. 물론 저는 싸우자고 물어본 것은 아니었고, 혹시 미래의 우리가 후회할 일이 생길 여지가 있다면 미리 파악하고 좀 개선해놔야 하지 않을까라는 의도로 물어본 것이었고, 그래서 '동시에 들어오면 망하죠'라는 답변이 나올 것을 예상하고 그 답변에 대해 기분 나쁘지 않게 개선 포인트를 이야기할 예상 답변까지 미리 준비하고 물어본 질문이었습니다.

 

그런데 제가 실제로 들었던 답변은 예상했던 것과 정반대였습니다. 정말 희박한 확률로 발생할 수 있는 동시성 문제에 대해서 이미 고민을 하고 나름의 상호 배제 절차를 만들어 두었던 것입니다. 그래서 저는 다시 물어볼 수밖에 없었습니다. '그런데 이거 서버가 스케일 아웃되어서 여러 개로 늘어나면 어떻게 되죠?' 그리고 거기에 대해서도 고민을 거듭하다가 결국 플래그를 별도의 메모리 그리드에 저장해둘 수밖에 없었음을 들었을 때 뭔가 엄청난 기시감 같은 것을 느꼈습니다. 어, 이거 내가 맨날 혼자 만들었던 그건데. 그리고 남들한테 보여주면서 이렇게 해야 한다고 했다가 맨날 쓸데없다고 무시당한 그건데. 새삼스럽게 생각해보니 최근에 봐왔던 많은 코드들이 다 비슷한 맥락이었던 것 같았습니다. 나라면 했을 고민들을 거쳐서 나라면 했을 선택들이 반영되어 있는.

 

순수한 이상향을 추구하는 것이 가져다주는 가장 큰 즐거움 중 하나는, 결국엔 모든 것이 하나의 결론으로 귀결되는 과정을 목격 할 수 있다는 점입니다. 일을 빠르게, 효율적으로, 적당히 하는 방법은 무한하게 존재할 수 있지만 정말 고민에 고민을 거듭해서 최선과 최적을 찾다 보면 결국 하나의 이상적인 정답을 향해 근사 할 수밖에 없으니까요. 그래서 전혀 교류가 없는 개발자들도 각자 충분한 고민을 거듭한다면 언젠가는 비슷한 코드로 수렴하지 않을까라는 이론을 혼자 생각했던 적이 있었습니다. 저는 이게 증명하기 어려운 이론적으로만 존재하는 개념이라고 생각했는데, 그것이 실제로 가능함을 직접 관측해서 무척 기뻤습니다. 아마도 힉스 입자를 발견했을 때의 과학자들이 비슷한 기분이었겠지요.

 

1년 전에, 그러니까 2020년 계획을 세울 당시 저는 순도 높은 패배주의에 빠져있었기 때문에 그것을 극복하는 것이 우선이라고 생각했습니다. 그래서 도전적인 목표보다는 달성 가능한 목표에 집중하는 게 좋다고 생각했던 것이고요. 이제 2021년의 목표를 생각할 때가 되었고, 그래서 생각했습니다. 내년에는 도전적인 목표가 곧 달성 가능한 목표가 되지 않을까 라고. 그래서 저는 오래전에 죽어버린 2018년 목표와 2019년 목표를 되살린 뒤 하나로 합쳐서 2021년 목표로 설정했습니다. 코로나 때문에 엉망이 되어버린 2020년처럼 2021년에는 상상도 못 한 일들이 생길지도 모르는 거지만, 적어도 오늘은 그런 걸 고민하기에 적당한 날도 아니고, 앞으로는 공감이 메말라버린 사막에서 고립감을 감당하느라 지치는 일이 생길 것 같지도 않을 것 같아서요.

'에세이' 카테고리의 다른 글

no-param-reassign  (0) 2021.01.19
과학이나 공학이나  (0) 2021.01.12
나는 정말 파워포인트를 할 줄 모른다고요  (0) 2020.12.24
False Positive  (0) 2020.12.10
True Negative  (0) 2020.12.03
댓글