🚀 2026 스타트업 컨퍼런스

우리의 코드는 언제나 계획보다 거대해진다: 토마스 만의 ‘마의 산’을 보며

우리의 코드는 언제나 계획보다 거대해진다: 토마스 만의 ‘마의 산’을 보며

김현수·2026년 1월 4일·3

토마스 만의 ‘마의 산’ 집필 과정을 통해 본 소프트웨어 개발의 본질. 계획보다 비대해지는 프로젝트와 그 과정에서 성장하는 개발자의 철학을 다룹니다.

개발자라면 누구나 가슴 속에 묻어둔 ‘그 프로젝트’가 하나쯤은 있을 겁니다. "이거 간단하게 2주면 끝나요"라고 호기롭게 시작했다가, 6개월이 지나도록 배포조차 못 하고 허덕였던 경험 말이죠. 저 역시 주니어 시절, 간단한 사내 대시보드 토이 프로젝트로 시작했다가 결국엔 감당 못 할 스파게티 코드가 되어버린 레포지토리를 몰래 Archive 처리했던 기억이 있습니다. 오늘 아침 가디언(The Guardian)에서 Morten Høi Jensen의 신간 The Master of Contradictions에 대한 서평을 읽는데, 문득 그때의 기억이 떠올라 쓴웃음을 지었습니다. 이 책은 대문호 토마스 만이 그의 대표작 《마의 산(The Magic Mountain)》을 어떻게 썼는지 추적하고 있거든요.

재미있는 사실은, 문학 역사상 가장 위대한 모더니즘 소설 중 하나로 꼽히는 이 작품도 시작은 '가벼운 소품'이었다는 점입니다. 토마스 만은 원래 이 소설을 전작 《베니스에서의 죽음》에 대한 가벼운 대응작(counterpart) 정도로 구상했고, 짧게 끝낼 생각이었습니다. 하지만 1913년에 시작된 집필은 무려 12년이 지난 1924년에야 끝이 났습니다. 그 사이에 제1차 세계대전이 터졌고, 세상이 뒤집혔으며, 작가의 내면도 완전히 바뀌어버렸기 때문이죠. 개발 용어로 치면, 간단한 MVP(Minimum Viable Product)를 만들려다 거대한 레거시 시스템 마이그레이션과 아키텍처 대격변을 동시에 겪은 셈입니다.

우리가 마주하는 소프트웨어 개발 현장도 이와 놀랍도록 닮아 있습니다. 우리는 종종 "요구사항이 명확하다"고 착각합니다. 하지만 프로젝트가 진행되는 10년, 아니 단 1년 사이에도 비즈니스 환경(전쟁)은 급변합니다. 토마스 만이 전쟁을 겪으며 보수주의자에서 바이마르 공화국을 옹호하는 민주주의자로 변모했듯이, 우리 역시 프로젝트를 진행하며 기술적 가치관이 변합니다. 처음엔 모놀리식(Monolithic) 구조가 정답이라 믿었던 개발자가 트래픽 폭주를 겪으며 MSA(Microservices Architecture) 전도사가 되기도 하고, 반대로 복잡도에 지쳐 다시 심플함을 추구하게 되기도 하죠. 소설 속 인물 세템브리니와 나프타가 벌이는 치열한 논쟁은 마치 우리 내면에서 벌어지는 '생산성'과 '확장성' 사이의 끝없는 PR(Pull Request) 리뷰 전쟁과도 같습니다.

흥미로운 점은 토마스 만 자신도 이 결과물에 확신이 없었다는 것입니다. 그는 동료 작가 안드레 지드에게 편지를 보내며 "당신이 이걸 읽을 거라 기대하지 않아요. 너무 문제적이고 길거든요"라고 고백했습니다. 하지만 서평에 따르면, 이 '기이하고 긴' 소설은 출간 즉시 유럽과 미국에서 문학적 모더니즘의 정점으로 인정받았습니다. 미국 출판사는 심지어 이 난해한 작품이 "현대인의 삶에 실천적 사용가치(use value)가 있다"고 선언했죠. 개발자가 자신의 코드를 보며 "이건 너무 복잡해서 나밖에 못 알아볼 거야"라고 자책하지만, 막상 그 복잡함이 비즈니스의 핵심 로직을 완벽하게 방어하고 있을 때의 아이러니함이 느껴지는 대목입니다.

Jensen의 분석에서 특히 와닿았던 부분은 작가의 '모순'에 대한 통찰입니다. 토마스 만은 겉으로는 점잖은 부르주아 가장이었지만 내면에는 억눌린 동성애적 욕망과 예술적 광기를 품고 있었습니다. 훌륭한 소프트웨어 역시 이러한 모순을 품고 있습니다. 겉으로는 우아한 UI와 심플한 API를 제공하지만, 그 내부를 들여다보면 레거시 시스템과의 처절한 사투, // TODO: 나중에 수정함이라는 주석, 그리고 트래픽을 버텨내기 위한 지저분하지만 실용적인 코드들이 뒤엉켜 있죠. 완벽하게 깨끗한 코드는 교과서에나 존재합니다. 위대한 프로덕트는 모순과 혼돈을 끌어안고 굴러가는 거대한 산과 같습니다.

이 기사를 읽으며 저의 지난 10년을 돌아보게 되었습니다. 우리는 종종 계획대로 되지 않는 프로젝트를 실패라고 규정합니다. 일정이 지연되거나, 설계가 변경되면 스트레스를 받죠. 하지만 토마스 만이 12년 동안 《마의 산》을 쓰며 자신의 사상을 재정립했듯이, 때로는 프로젝트가 개발자를 다시 키워내기도 합니다. 코드가 엉키고 일정이 늘어지는 그 고통스러운 시간 속에서, 우리는 비로소 기술의 본질을 이해하고 엔지니어로서의 철학을 갖게 되는 게 아닐까요? 서평자가 말했듯, "소설이 창작자보다 더 많은 것을 알고 있다"는 말은, "코드가 작성자보다 더 많은 문제를 알고 있다"는 말로 들리기도 합니다.

만약 지금 여러분이 예상치 못한 '마의 산'에 갇혀 있다면, 너무 조급해하지 않으셨으면 좋겠습니다. 단순히 기능을 구현하는 것을 넘어, 그 과정 자체가 여러분을 더 단단한 시니어 엔지니어로 리팩토링(Refactoring)하고 있는 중일지도 모릅니다. 토마스 만은 서문에 "철저함만이 진정으로 즐겁게 한다"고 썼습니다. 요즘처럼 AI 코딩 도구(Cursor, Copilot)가 쏟아져 나와 속도전이 미덕이 된 시대일수록, 깊이 있게 파고들어 끝까지 매듭을 짓는 그 '철저함'의 즐거움을 잊지 말아야겠습니다. 커피 한 잔 더 내려야겠네요. 우리 앞의 코드는 여전히 길고, 갈 길은 머니까요.

김현수
김현수10년 차 시니어 개발자

복잡한 기술을 누구나 이해하기 쉽게 풀어내는 것을 즐깁니다. 10년의 개발 여정에서 얻은 인사이트와 시행착오를 솔직하게 공유합니다.

김현수님의 다른 글

댓글 0

첫 번째 댓글을 남겨보세요!