되게 거창하게 제목을 달았지만 개인적으로는 사실이다. 모더나 백신을 접종받고 거의 죽을 고비를 넘겼다. 백신을 맞고 난 뒤 3일가량은 약한 감기기운이 있었고, 그 이후부터는 심장이 의식적으로 콩닥대는 게 느껴져서 병원에 방문했으나 심근염/심낭염 은 아니라는 판정을 받았다. 그렇게 지나갈 줄 알았다.
백신을 맞고 난 뒤 5일차. 출근을 하기 위해 몸을 일으켰는데, 열이 엄청 나고 머리가 쪼개질 듯 아팠다. 열을 재보니 38도였고, 바로 업무 메신저로 상황을 보고하고 겨우 나가 타이레놀을 먹은 뒤에 누웠다. 그 이후로 약 일주일간은 약을 먹고 누워서 끙끙대는 거 말고는 정말 아무것도 할 수가 없었고, 이온음료 말고는 아무것도 먹을 수가 없었다. 설사가 계속 나와서 물을 계속 마셔주지 않으면 탈수가 올 정도였고, 머리가 아프고 오한이 오는데 땀은 비오듯이 쏟아졌다. 그나마 다행이었던 건 그 앓아누운 기간이 추석연휴여서 회복을 할 수 있었다는 점이다.
위에 적은 시점인 5일차 자정 즈음이었다. 나는 너무 아파서 입으로 흐으윽 소리를 냈고, 타이레놀을 먹어도 나아지질 않았으며, 증상은 더욱 더 악화되고 있었다. 백신을 맞고 갑자기 사망했다는 이야기가 남 일 같지가 않았고, 이대로 죽는건가 라는 생각이 들었다. 사실상 포기하는 심정으로 약을 먹고 잤다.
다음 날 눈이 떠졌다. 침대는 땀으로 가득했고, 여전히 아파서 입에선 신음소리가 나고 있었다. 그래도 그 전날보다는 나은 상태였다. 하지만, 그 와중에 나는 눈이 떠졌다는 거 자체가 너무나도 다행이라는 생각이 들었다. 살기 위해 편의점에 가서 죽을 먹었고, 약을 먹고 또 누웠다.
생각할 수 있는 여력은 있어서, '이렇게 죽었으면 어떻게 될까' 라는 생각을 해보았다. 죽음이라는 게 먼 미래의 일이 아니라, 조만간의 일이 될 수 도 있단 걸 느끼고 나니 생각하는 태도가 많이 달라졌다. 죽기 이전에 어떤 인생을 살아야할까? 라는 질문과의 거리가 확 좁혀졌다.
증상을 말하러 병원에 가는 택시를 타면서, 병원에서 피를 뽑고 수액을 맞고 진료를 마치고 나오면서, 잠시 회사에 들러야 할 일이 있어 회사에 가면서, 회사에서 집에 가면서 계속해서 생각했다. 어떤 인생을 살아야할까? 내일 죽어도 후회하지 않을 인생이란 무엇일까?
니체의 영원회귀 사상이 생각났다. 평소에도 어렴풋이 귀감삼는 철학이었는데, 이번에 더욱 뚜렷해졌다. 그냥 내 삶의 모든 것을 받아들이고, 매 순간에 최선을 다하며, 나 자신을 부정하는 게 아니라 나 자신을 인정하고 내가 하고싶은 방향으로 치열하게 살아가는 것. 그런 인생을 살아야겠다고 생각했다. 그렇게 되니 모아놓은 돈도, 나름 열심히 쌓아놓은 지식도 전혀 아쉽지 않았다. 다음 날 죽으면, 죽는거지. 똑같이 살아도 후회가 없을 그런 삶. 현재에 집중하는 삶. 그런 삶을 살자는 생각이 들었던 2주였다.
병역특례로 새로운 분이 오셨다. 사이버고등학교를 나오셨고, 의욕이 넘치시고, 똘망똘망하며 총명한 분이었다. 개인적으로 신입으로 왔을 때 교육이 없었던 게 너무 아쉬워서, 현재 회사의 Tech Stack 을 알려주고, 기존에 그 분께서 만들었던 server application 을 회사에서 사용중인 NestJS 로 새롭게 만들어보자고 제안을 드렸다. 다행히도 그 분은 열심히 최선을 다해서 만들어주셨고, 내가 신입 때 그렇게 받고 싶었던 코드리뷰도 내가 할 수 있는 한 최선을 다해 해드렸다.
그 이후에는 내가 혼자서 공부하면서 많이 헤맸던 부분들을 그 분이 최대한 혼자서 헤쳐나갈 수 있게, 그러나 어느정도 쭉쭉 치고나갈 수 있는 힌트를 드리면서 같이 공부를 해 나갔다. OAuth 와 JWT 라든지, ORM 과 Connection 이라든지, NestJS 의 Module system, IoC Container, DI 라든지, 그리고 SOLID 라든지 하는 것들.
그러나 그 생각도 잠시, 스스로가 좀 불안해졌다. 잠시나마 다녔던 학교에서 교수님이 말씀해주셨던 문헌오염의 사례가 생각났기 때문이다. 정확하지 않은 논문이 채택되어 학계에서 인용되는 순간, 쌓아올린 지식들이 전부 오염이 되는 것처럼, 새로운 개발자님에게도 내가 정확한 지식을 전달하지 않으면, 즉 잘못된 지식을 전달한다면, 그 분은 똑같이 잘못된 지식을 잘못된 방식으로 알게 된다는 생각이 들었다.
그래서 책임감이 생겼다. 내가 정말 알고있는 게 제대로 알고 있는게 맞는지 주변의 사람들에게 여러 번 물어보았고, 검색도 해 보았고, 한 번 읽었던 클린 아키텍처도 다시 한 번 펼쳐보았다. 어느정도 그 분에게도 찾아보라는 식으로 이야기를 하긴 하지만, 내가 도움을 주는 건 내 스스로가 누군가를 도와준다는 역할을 자원해서 맡게 된 것이고, 그 역할에 상응하는 책임을 지고 가야한다는 사실을 잊지 않으려고 한다.
Elastic Search + Kibana + Elastic APM 을 통해 APM System 을 만들어보고 있다. CTO 님께서 제안을 해 주셔서 APM (Application Performance Management (system)) 이란 게 무엇인지 알아보고, 어떤 오픈소스/상용솔루션 들이 있는지 확인해보았으며, 종합적인 이유로 고른 Elastic APM 을 공식문서를 보고 Local Machine 에 PoC 격으로 apm agent 와 같이 log 를 수집하여 도입을 고려, 현재 Development stage 에 APM system 을 구축하고 있다.
전체적인 시스템의 개괄적인 빠른 판단을 가능하게 해 주고, 어떤 부분에서 bottleneck 이 생기는지 pinpoint diagnosis 가 가능해진다는 효용을 기대했는데, 해당 효용을 얻을 수 있겠다는 생각이 들었다. 안정적인 운영을 할 수 있는 시스템을 만들어서 개발자들은 개발에 좀 더 집중할 수 있는 환경을 만들고, 그렇게 더 좋은 제품을 만들어서, 애플리케이션의 사용자들에게 만족감을 주고 싶다.
객체지향의 사실과 오해(조영호 저) 를 공부하는 소모임에 들어갔고, 매 주말마다 각자 돌아가면서 공부를 하고 발표를 하는식으로 진행했던 스터디를 약 1달 반 정도 걸려 마무리하였다. 사실 1달 안에 끝낼 수 있는 분량이었지만, 회사일 + 백신 후유증 때문에 마지막인 내 차례를 2주가량 연기하여 조금 늦어졌다.
나중에 본격적인 서평을 적겠지만, 일단 책의 후기를 간략하게 적어보려고 한다. 얻어갈 수 있는 게 많은 책이었다. 특히, Class
기반으로 무작정 생각하고, 어떤 '특징' 이 있는가를 기반으로 사고했던 기존의 내 사고방식을 깨고, 객체(Object)들의 '행동'과 '인터페이스' 를 기반으로 이뤄지는 협력이라는 맥락이라는 관점을 도입할 수 있었다.
마지막에는 Domain Driven Design 이라는 paradigm 으로 유명한 Eric Evans 의 냄새가 물씬 났는데, 확실히 내가 만드는 소프트웨어가 현실을 그대로 모사한 것이 아니라, 은유와 같은 느낌으로 재창조한 작업물이라고 한들, 소프트웨어가 현실과, 특히 현실에서 어떤 목표를 가지고 사용할 사용자가 예상하는 경험과 어긋나면 꽝이라는 생각이 들었다. 아직은 다른 부족한 부분이 많아 하지 못 했던 도메인 주도 설계방법론을 언젠가 꼭 공부해야겠다는 다짐도 하게 되었다.