
스타트업에서 '야생마'처럼 구르다 지금의 네임드 기업으로 이직했을 때, 가장 먼저 느꼈던 감정은 일종의 열등감이었습니다. 스타트업 시절의 저는 당장 눈앞의 불을 끄기 위해 코드를 짰습니다. 트래픽이 몰리면 DB 쿼리를 하드코딩해서라도 막아냈고, 기능 출시가 급하면 복잡한 디자인 패턴 대신 if-else로 도배된 로직을 배포하곤 했습니다. 반면, 이곳의 코드베이스는 마치 예술 작품 같았습니다. 철저하게 분리된 레이어, 완벽한 테스트 커버리지, 그리고 우아한 추상화까지. 그때 저는 생각했습니다. "아, 내가 지금까지 해온 건 개발이 아니라 땜질이었구나." 20세기 최고의 수학자로 불리는 알렉산더 그로텐디크(Alexander Grothendieck)는 수학적 난제를 해결하는 두 가지 방식을 '호두 까기'에 비유했습니다. 하나는 망치와 끌로 단단한 껍질을 내려치는 방식이고, 다른 하나는 호두를 물에 담가 껍질이 부드러워질 때까지 기다렸다가 손으로 여는 방식입니다. 저는 제 과거를 '망치질'이라 비하하고, 이곳의 문화를 '물에 담그는 고상한 기다림'이라 동경하며 맹목적으로 추종하기 시작했습니다.
하지만 그 동경이 저를 '나쁜 그로텐디크'로 만들었다는 사실을 깨닫는 데는 그리 오랜 시간이 걸리지 않았습니다. 이직 후 맡게 된 첫 신규 프로젝트에서 저는 소위 '확장성 있는 설계'에 집착했습니다. 비즈니스 요구사항은 단순한 알림 발송이었지만, 저는 미래의 모든 통신 채널을 커버하겠다며 과도한 추상화 계층을 쌓아 올렸습니다. MSA(Microservices Architecture)를 흉내 낸답시고 서비스 간 통신을 복잡하게 꼬아놓았고, 간단한 수정에도 서너 개의 파일을 열어야 하는 구조를 만들었습니다. 그로텐디크는 문제를 전체적인 맥락 속에서 서서히 이해하며 해결책이 저절로 드러나게 했지만, 저는 맥락도 모른 채 껍질이 불어나기만을 기다리며 몇 주를 허비했습니다. 결과는 참담했습니다. 배포 일정은 지연됐고, 운영팀은 복잡해진 로직 때문에 CS 대응에 애를 먹었습니다. "형편없는 문제 해결자도 괜찮은 수학자가 될 수 있지만, 형편없는 그로텐디크는 정말 끔찍하다"는 말은 제게 내려진 사형선고와도 같았습니다. 저는 '분석 마비(Analysis Paralysis)'에 빠져, 당장 호두를 깨서 알맹이를 꺼내야 하는 비즈니스의 본질을 망각하고 있었습니다.
우리는 종종 '망치와 끌'의 방식을 폄하합니다. 하지만 장-피에르 세르(Jean-Pierre Serre) 같은 대수학자는 망치로 문제의 급소를 정확히 타격하여 간결하게 답을 찾아냈고, 그로텐디크조차 그를 "우아함의 화신"이라 불렀습니다. 개발 현장, 특히 비즈니스의 속도가 생존과 직결된 상황에서는 우아한 이론보다 투박한 해결책이 훨씬 더 가치 있을 때가 많습니다. 최근 Cursor나 Claude 같은 AI 코딩 도구를 적극적으로 도입하면서 이 사실을 더욱 뼈저리게 느낍니다. AI는 때로 우리가 기피하는 '망치질'을 놀라울 정도로 효율적으로 수행합니다. 복잡한 추상화를 고민할 시간에, AI에게 구체적인 지시를 내려 빠르게 프로토타입을 만들고 트래픽을 받아보며 점진적으로 리팩토링하는 것이 훨씬 생산적이더군요. 모든 문제를 '바다처럼 서서히' 해결하려다가는, 시장이라는 거대한 파도에 휩쓸려 흔적도 없이 사라질 수 있습니다.
물론, 이것이 '막코딩'을 정당화하는 것은 결코 아닙니다. 다만, 8년 차 개발자로서 후배들에게 해주고 싶은 말은 도구와 방법에 우열을 두지 말라는 것입니다. 어떤 문제는 호두를 물에 담가 부드럽게 열어야 하지만(복잡한 도메인 로직, 코어 시스템 설계), 어떤 문제는 망치로 단숨에 깨부수어야 합니다(MVP 출시, 핫픽스, 일회성 스크립트). 진정한 시니어의 역량은 우아한 코드를 짜는 기술 그 자체가 아니라, 지금 내 앞에 놓인 호두가 '기다려야 할 것'인지 '깨부수어야 할 것'인지를 판단하는 통찰력에서 나옵니다. 기술적 허영심에 빠져 쉬운 길을 어렵게 돌아가고 있지는 않은지, 혹은 '클린 코드'라는 미명 하에 비즈니스 기회를 놓치고 있지는 않은지 끊임없이 자문해야 합니다. 호두 껍질을 얼마나 예쁘게 벗겼는지는 중요하지 않습니다. 결국 중요한 것은, 우리가 그 안의 영양분을 제때에 꺼내어 팀과 고객에게 전달했느냐는 사실뿐입니다.


