포스트

장인의 고백 — 엉클 밥은 왜 AI 코딩을 "헤로인"에 비유했는가

장인의 고백 — 엉클 밥은 왜 AI 코딩을 "헤로인"에 비유했는가

한 문장의 비명

“There is a definite Heroin aspect to all of this. I don’t WANT to dig into the code. I WANT to trust claude – at least at some level. I WANT to believe that there is a way to wield the lying SOB to generate good clean applications. So give me another hit and let me feel the euphoria again, while the world collapses around me.”

— Robert C. Martin (@unclebobmartin)

이 글을 처음 읽었을 때, 많은 사람들은 웃었을 것입니다. 73세의 소프트웨어 전설이 AI 코딩 도구를 마약에 비유하며 자조적으로 읊조리는 모습은 분명 유머러스합니다. 하지만 이 트윗의 행간을 읽을 줄 아는 사람이라면, 여기에 웃음보다는 소름이 돋는 무언가가 있다는 것을 알아차릴 것입니다. 1970년부터 코드를 작성해온 사람, 클린 코드의 교주, 소프트웨어 장인정신(Software Craftsmanship) 운동의 선봉장, 애자일 선언문의 공동 저자가 — “코드를 들여다보고 싶지 않다”고 말하고 있습니다. 이것은 목사가 “기도하고 싶지 않다”고 고백하는 것과 비슷한 무게를 가진 말입니다.

도대체 이 아저씨에게 무슨 일이 벌어지고 있는 것일까요?

제1장: 반세기의 정체성이 흔들리고 있다

이 트윗을 이해하려면 먼저 로버트 C. 마틴이라는 사람이 누구인지를 알아야 합니다. 단순히 유명한 프로그래머라는 설명으로는 부족합니다. 이 사람은 1970년, 17세의 나이에 독학으로 소프트웨어 업계에 뛰어들어 반세기 이상을 코드와 함께 살아온 사람입니다. 그가 코딩을 시작했을 때 사용하던 기계는 오늘날의 스마트 전구보다도 메모리가 적었을 것입니다. 그리고 그는 그 시절부터 지금까지, 기술이 몇 번이고 뒤집히는 것을 지켜보며 하나의 일관된 신념을 고수해왔습니다. 프로그래머는 자기가 작성한 코드를 이해해야 하고, 코드는 깨끗해야 하며, 그 책임은 오롯이 프로그래머에게 있다는 것.

그의 저서 목록을 보면 이 신념이 얼마나 깊은지를 알 수 있습니다. “Clean Code”, “The Clean Coder”, “Clean Architecture”, “Clean Agile”, “Clean Craftsmanship”, 그리고 가장 최근의 “Functional Design”과 “We, Programmers”까지. “Clean”이라는 단어가 그의 저서 제목에 반복적으로 등장하는 것은 우연이 아닙니다. 깨끗함(cleanliness)은 그에게 단순한 코딩 스타일이 아니라 직업적 윤리이자, 거의 종교적 신조에 가까운 것이었습니다.

그가 평생 전파해온 핵심 메시지를 한 줄로 요약하면 이렇습니다. “네 코드를 알라. 네 코드에 책임져라. 네 코드를 깨끗하게 유지하라.” 모든 함수는 한 가지 일만 해야 하고, 이름은 의도를 드러내야 하며, 부작용은 없어야 하고, 테스트가 모든 동작을 보증해야 합니다. 코드는 읽히기 위해 작성되며, 잘 읽히는 코드만이 유지보수 가능하고, 유지보수 가능한 코드만이 진정한 의미에서 “작동하는” 코드입니다.

이제 이 배경 위에 그의 트윗을 다시 올려놓아 보십시오. “I don’t WANT to dig into the code.” 코드를 파고들고 싶지 않다. 이것은 엉클 밥이 자기 인생 전체를 바쳐 옹호해온 원칙의 정면 부정입니다. “WANT”를 대문자로 쓴 것에 주목하십시오. 이성적으로 그가 코드를 파고들어야 한다는 것을 모를 리 없습니다. 그는 그것을 50년 넘게 가르쳐온 사람입니다. 대문자 “WANT”는 이성의 목소리가 아닙니다. 그것은 욕구의 목소리, 유혹의 목소리, 자기 안의 나약함을 적나라하게 드러내는 목소리입니다.

제2장: 중독의 해부학 — 왜 하필 “헤로인”인가

엉클 밥이 수많은 비유 중에서 하필 헤로인을 선택한 것은 결코 가벼운 수사가 아닙니다. 그는 알코올이라고 하지 않았고, 카페인이라고 하지 않았으며, 도박이라고 하지도 않았습니다. 헤로인은 인류가 만들어낸 물질 중 가장 강력한 쾌감을 주면서 동시에 가장 파괴적인 의존성을 만들어내는 약물입니다. 첫 투여의 유포리아(euphoria)는 압도적이고, 이후에는 그 유포리아를 재현하기 위해 점점 더 많은 양이 필요하며, 결국 약물 없이는 정상적 기능 자체가 불가능해지는 상태에 이릅니다. 그리고 가장 잔인한 점은 — 중독자 자신이 이 과정을 인지하면서도 멈추지 못한다는 것입니다.

엉클 밥의 트윗은 정확히 이 구조를 묘사하고 있습니다. 그는 Claude가 “거짓말쟁이 개자식(lying SOB)”이라는 것을 알고 있습니다. AI가 종종 그럴듯하지만 틀린 코드를 생성한다는 것, 이른바 할루시네이션(hallucination)이 존재한다는 것을 완벽히 인지하고 있습니다. 그런데도 “믿고 싶다(I WANT to trust)”고 말합니다. 신뢰할 수 없다는 것을 알면서 신뢰하고 싶은 것, 해롭다는 것을 알면서 멈추지 못하는 것 — 이것이 중독의 핵심 구조입니다.

여기서 그가 겪고 있는 것은 단순히 “편리한 도구에 의존하게 됐다”는 차원의 이야기가 아닙니다. AI 코딩 도구가 제공하는 것은 프로그래머에게 매우 원초적인 쾌감입니다. 몇 줄의 자연어 지시만으로 수백 줄의 코드가 눈앞에 펼쳐지는 경험, 몇 시간이 걸릴 작업이 몇 분 만에 완성되는 경험, 자신이 잘 모르는 프레임워크의 코드까지 척척 생성해내는 AI를 지켜보는 경험 — 이것은 프로그래머의 가장 원초적인 욕구, 즉 “무언가를 빠르게 만들어내고 싶다”는 창조의 욕구를 극도로 효율적으로 충족시킵니다.

문제는 이 쾌감에 대가가 따른다는 것입니다. 그 대가는 바로 “이해”의 상실입니다. AI가 생성한 코드를 한 줄 한 줄 읽고, 이해하고, 검증하는 데는 직접 코드를 작성하는 것만큼의 시간이 — 어쩌면 그 이상의 시간이 — 걸립니다. 남이 쓴 코드를 읽는 것은 원래 자기가 쓰는 것보다 더 어렵습니다. 이것은 소프트웨어 공학의 오래된 진실입니다. 그래서 프로그래머는 갈림길에 서게 됩니다. 코드를 꼼꼼히 검증하면 AI를 쓰는 생산성 이점이 사라지고, 검증을 건너뛰면 클린 코드의 원칙이 무너집니다. 엉클 밥이 “코드를 파고들고 싶지 않다”고 말할 때, 그는 바로 이 갈림길에서 후자의 유혹에 시달리고 있음을 고백하는 것입니다.

제3장: 목수와 전동공구 — 엉클 밥의 자기진단

흥미롭게도 엉클 밥은 이 트윗 이전에도 자신의 AI 코딩 경험에 대해 다른 트윗에서 솔직한 기록을 남긴 바 있습니다. 그는 6주 이상 AI를 사용해 코딩을 해왔다고 밝히면서, 그 “힘(power)”은 부정할 수 없지만 “위험과 시간 낭비” 역시 마찬가지로 부정할 수 없다고 말했습니다. 그리고 자신의 프로젝트가 AI 없이 직접 작성했더라면 지금쯤 비슷한 진도를 나가지 않았을까 하는 의문을 표하면서, 자신의 상황을 이렇게 비유했습니다. “수공구에 능숙한 목수가 모든 종류의 전동공구가 갖춰진 작업장을 받은 것 같다. 그가 소박한 캐비닛 하나를 만들어야 하는데, 전동공구 사용법을 모르기 때문에 처음 몇 번의 프로젝트는 오히려 더 오래 걸리고 망친 작업물을 버려야 하지 않을까?”

이 비유는 놀랍도록 정직한 자기진단입니다. 여기서 핵심은 엉클 밥이 스스로를 “무능한 초보”가 아니라 “수공구에 능숙한 목수”로 정의한다는 점입니다. 그는 50년 넘게 갈고닦은 “수공구” — 텍스트 에디터, TDD, 리팩토링, 디자인 패턴, SOLID 원칙 — 로 어떤 소프트웨어든 만들어낼 수 있는 사람입니다. 문제는 전동공구(AI)가 전혀 다른 방식으로 작동한다는 것입니다.

수공구의 세계에서 목수는 모든 것을 통제합니다. 끌의 각도, 톱질의 깊이, 사포질의 방향 — 모든 동작이 장인의 의도를 직접 반영합니다. 결과물의 모든 디테일이 장인의 손끝에서 나왔기 때문에, 그는 자기가 만든 것을 완벽히 이해합니다. 전동공구의 세계에서는 이야기가 달라집니다. 전동공구는 빠르고 강력하지만, 그만큼 통제의 감각이 줄어듭니다. 나무를 손으로 깎을 때의 섬세한 촉감, 저항의 변화를 느끼며 방향을 조절하는 그 직접성이 사라집니다. 전동공구가 하는 일은 “대략” 맞지만, 장인이 원하는 “정확히” 맞는 것과는 미묘하게 다를 수 있습니다.

AI 코딩 도구는 이 비유의 전동공구보다 훨씬 더 극단적입니다. 전동공구는 적어도 물리 법칙에 따라 예측 가능하게 동작합니다. 테이블 쏘는 항상 같은 각도로 나무를 자릅니다. AI는 그렇지 않습니다. 같은 지시에 다른 코드를 생성할 수 있고, 생성된 코드가 “얼핏 보면 맞지만 미묘하게 틀린” 것일 수 있으며, 가장 위험한 것은 — 틀렸을 때 자신 있게 틀린다는 것입니다. 이것이 엉클 밥이 AI를 “lying SOB”라고 부르는 이유입니다. 거짓말은 의도적으로 남을 속이는 행위를 뜻합니다. AI는 물론 의도적으로 거짓말을 하지 않습니다. 하지만 결과적으로 — 자신감 넘치는 목소리로 그럴듯한 코드를 내놓되 그것이 미묘하게 틀릴 수 있다는 점에서 — 프로그래머의 신뢰를 배반하는 것은 분명합니다.

제4장: “세계가 무너지는 동안” — 과장이 아닌 이유

트윗의 마지막 문장은 가장 극적입니다. “So give me another hit and let me feel the euphoria again, while the world collapses around me.” 한 번 더 놓아주고, 다시 유포리아를 느끼게 해달라, 주위 세계가 무너지는 동안에. 이것을 단순한 자조적 유머로 읽을 수도 있습니다. 하지만 엉클 밥의 경력과 사상적 맥락을 고려하면, “세계가 무너진다”는 표현에는 구체적인 함의가 있습니다.

엉클 밥은 수십 년 동안 소프트웨어 산업에 대한 경고를 반복해왔습니다. 우리 문명 전체가 소프트웨어 위에 세워져 있는데, 프로그래머들에게는 의사나 변호사 같은 직업적 표준도, 윤리 강령도, 자격 제도도 없다고. 언젠가 끔찍한 소프트웨어 재해가 발생할 것이고 — 737 MAX보다 훨씬 더 큰 규모의 — 그때서야 세상이 진지하게 소프트웨어 전문직업성(professionalism)을 요구하게 될 것이라고. 그가 2016년 애자일 컨퍼런스 강연에서, Jesse Duffield와의 인터뷰에서, 그리고 수많은 블로그 포스트와 트윗에서 반복한 이 경고는 항상 같은 전제 위에 서 있었습니다. 프로그래머가 자기 코드를 이해하고 책임져야 한다는 것.

그런데 AI 코딩 도구의 확산은 이 전제를 정면으로 위협합니다. 프로그래머들이 AI가 생성한 코드를 충분히 검증하지 않고 프로덕션에 배포하기 시작하면, 엉클 밥이 반세기에 걸쳐 경고해온 “소프트웨어 종말(software apocalypse)”의 가능성이 급격히 높아집니다. 그리고 가장 잔인한 아이러니는 — 바로 그 위험을 누구보다 잘 아는 자신이 유혹에 빠지고 있다는 것입니다.

“세계가 무너지는 동안”이라는 표현은 거시적 수준에서는 AI가 생성한 저품질 코드가 소프트웨어 생태계를 오염시키는 현상(안드레이 카르파시(Andrej Karpathy)가 경고한 “Slopacolypse”, 즉 AI가 만든 저품질 코드 쓰레기로 GitHub이 가득 차는 미래)을 가리킬 수 있고, 미시적 수준에서는 자기 자신의 코드베이스가 자기가 이해하지 못하는 코드로 채워져가는 상황을 가리킬 수 있습니다. 어느 쪽이든 엉클 밥에게는 종말적인 것입니다.

제5장: 인지부조화의 전장

이 트윗이 진정으로 표현하고 있는 것은 극심한 인지부조화(cognitive dissonance)입니다. 한쪽에는 반세기에 걸쳐 구축한 신념 체계가 있습니다. 코드를 이해하라, 테스트를 작성하라, 깨끗하게 유지하라, 모든 줄에 책임져라. 다른 한쪽에는 AI가 선사하는 압도적인 생산성과 쾌감이 있습니다. 그리고 이 두 가지는 양립하기 극도로 어렵습니다.

이 인지부조화가 특히 고통스러운 이유는, 엉클 밥이 단순한 사용자가 아니라 교육자이자 사상가이기 때문입니다. 그는 “프로그래머가 이래야 한다”고 수십 년간 가르쳐온 사람입니다. 그의 책을 읽고, 강연을 듣고, 클린 코드 원칙을 실천하는 프로그래머가 전 세계에 수백만 명입니다. 그런 사람이 자기 자신의 원칙을 지키기 어렵다고 고백하는 것은, 개인적 실패의 문제가 아니라 그 원칙이 새로운 현실과 충돌하고 있음을 보여주는 증거입니다.

2024년 6월 Jesse Duffield와의 인터뷰에서 엉클 밥은 AI에 대해 매우 냉정한 태도를 보였습니다. “AI가 내 프로그래밍 방식을 바꿨느냐”는 질문에 그는 단호하게 “아니, 전혀”라고 답했습니다. 그의 AI 사용은 ChatGPT에 API 사용법을 물어보는 수준, 즉 스택 오버플로우의 대체재 정도에 불과했습니다. 프로그래머의 일자리가 위협받느냐는 질문에도 “전혀 아니다”라고 잘라 말했습니다. AI는 도구이고, 좋은 도구이며, 모든 새 기술이 그랬듯이 프로그래머의 수요를 늘릴 것이라고.

그런데 그로부터 1년여가 지난 뒤, 그는 직접 AI 코딩을 6주 이상 해보고는 “힘은 부정할 수 없지만 위험과 시간 낭비도 마찬가지”라고 인정하게 됩니다. 그리고 다시 시간이 흘러 지금, 그는 AI 코딩을 헤로인에 비유하고 있습니다. 이것은 단 2년 사이에 “전혀 영향 없다”에서 “중독적이다”로 태도가 급변한 것입니다. AI 코딩 도구의 발전 속도가 얼마나 빠른지를, 그리고 그 유혹이 아무리 강철 같은 원칙을 가진 사람이라도 흔들 수 있다는 것을 보여줍니다.

제6장: 정직함이라는 용기

그러나 이 트윗에서 가장 주목해야 할 것은 엉클 밥의 나약함이 아니라 그의 정직함입니다.

엉클 밥은 자신의 유혹을 숨길 수도 있었습니다. 73세의 소프트웨어 전설로서 “AI? 나는 여전히 수작업으로 코딩한다, 클린 코드의 원칙은 불변이다”라고 선언할 수 있었습니다. 혹은 반대로, “AI의 시대가 왔다, 새로운 도구를 받아들여야 한다”며 자신의 원칙을 수정할 수도 있었습니다. 어느 쪽이든 깔끔한 메시지가 되었을 것입니다. 그러나 그는 그 어느 쪽도 택하지 않았습니다. 대신, 지금 자기 안에서 벌어지고 있는 모순을 있는 그대로 공개했습니다.

“I WANT to trust claude.” 믿고 싶다. “at least at some level.” 적어도 어느 수준에서는. “I WANT to believe that there is a way to wield the lying SOB to generate good clean applications.” 이 거짓말쟁이 녀석을 잘 다루면 깨끗한 애플리케이션을 만들어낼 수 있는 방법이 있다고 믿고 싶다. 여기서 “WANT”가 세 번 반복됩니다. 믿고 싶다, 신뢰하고 싶다, 가능하다고 믿고 싶다. 그러나 “want”는 “can” 이 아니고, “believe”도 아닙니다. 원한다는 것은 아직 그렇지 못하다는 뜻입니다.

이 정직함은 Kent Beck이 말한 네 가지 가치 중 하나인 “용기(courage)”의 발현입니다. 엉클 밥 자신이 Jesse Duffield와의 인터뷰에서 강조한 바로 그 용기. 자기가 틀릴 수 있음을 인정하는 용기, 자기의 원칙이 새로운 현실 앞에서 충분하지 않을 수 있음을 직시하는 용기, 그리고 그 혼란을 4만 명의 팔로워 앞에서 공개적으로 드러내는 용기.

제7장: 세대의 충돌이 아닌, 인간의 조건

이 현상을 “노인이 신기술에 적응하지 못하는 것”으로 읽는 것은 피상적인 해석입니다. 엉클 밥이 겪고 있는 것은 세대 차이의 문제가 아니라, AI 코딩 도구를 사용하는 모든 프로그래머가 정도의 차이는 있지만 경험하는 보편적 긴장입니다. 2026년 1월, Hacker News에 올라온 “Claude로 몇 주간 코딩한 소감”이라는 글의 댓글에는 비슷한 고백이 넘쳐납니다. “처음의 도파민 러시가 지나고 나면, AI가 프로젝트를 내가 원하지 않는 방향으로 밀고 나가면서 환멸이 찾아온다.” 한 개발자를 코칭한 컨설턴트의 글에는 이런 구절이 등장합니다. “예술이 사라졌어요. 남은 건 좌절뿐이었어요(The art went away and it was just frustration).”

엉클 밥이 다른 사람들보다 이 긴장을 더 첨예하게 느끼는 이유는, 그가 “코드를 이해한다”는 것의 가치를 다른 누구보다 깊이 체화한 사람이기 때문입니다. 보통의 프로그래머에게 AI가 생성한 코드를 검증하지 않는 것은 “귀찮지만 어쩔 수 없는 타협”입니다. 엉클 밥에게 그것은 자기 존재의 근간을 부정하는 행위입니다. 그래서 유혹이 더 고통스럽고, 그래서 그것을 헤로인에 비유하는 것입니다.

하지만 동시에, 이 트윗은 엉클 밥이 AI 코딩을 완전히 거부하지도 않고 있음을 보여줍니다. 그는 사용을 중단하겠다고 말하지 않습니다. 그는 AI가 쓸모없다고 말하지 않습니다. 그는 “이것을 잘 다루면 좋은 것을 만들 수 있는 방법이 있다고 믿고 싶다”고 말합니다. 이것은 포기의 선언이 아니라, 아직 답을 찾지 못한 사람의 솔직한 중간 보고입니다.

제8장: 이 아저씨가 이러는 진짜 이유

그러면 결국 “이 아저씨는 왜 이러는 것일까?”에 대한 답은 무엇인가요?

엉클 밥이 이런 것은, AI 코딩 도구가 프로그래머의 가장 원초적인 욕구와 가장 깊은 직업적 윤리를 동시에 자극하기 때문입니다. 빠르게 만들어내고 싶은 욕구와, 자기가 만든 것을 완전히 이해해야 한다는 윤리. 이 두 가지는 AI 이전 시대에는 대체로 양립 가능했습니다. 직접 코드를 작성하면 빠르게 만들면서 동시에 이해할 수 있었으니까요. AI는 이 둘을 분리시켰습니다. 전례 없는 속도로 만들어내되, 이해는 포기하라고 속삭입니다. 그리고 이 속삭임은 — 엉클 밥조차 인정하듯이 — 거부하기 매우 어렵습니다.

엉클 밥이 이러는 것은, 그가 73세의 완고한 노인이어서가 아니라 반세기의 경험이 주는 직감이 “이건 위험하다”고 외치는데 눈앞의 생산성이 “하지만 이걸 봐”라고 유혹하기 때문입니다. 그가 이러는 것은, 자기가 가르쳐온 원칙이 틀렸다고 생각하기 때문이 아니라 그 원칙을 지키는 것이 이전에는 “당연한 것”이었는데 이제는 “의지적 노력이 필요한 것”이 되어버렸기 때문입니다.

그가 이러는 것은, 결국 인간이기 때문입니다. 아무리 강한 원칙을 가졌어도, 아무리 오랜 경험이 있어도, 충분히 강력한 유혹 앞에서는 흔들릴 수 있습니다. 그리고 그 흔들림을 숨기지 않고 공개할 수 있는 사람 — 그것이 진짜 장인의 자세가 아닐까 합니다.

엉클 밥의 이 트윗은, 경고입니다. AI 코딩의 위험을 경고하는 것이기도 하지만, 더 근본적으로는 “나조차 이런데 당신들은 괜찮겠느냐”는 경고입니다. 클린 코드의 사도가 코드를 들여다보기 싫다고 고백하는 세계에서, 코드의 이해에 대한 관심이 그보다 훨씬 적은 보통의 프로그래머들은 이 유혹을 어떻게 견딜 수 있겠습니까?

아마 이것이 이 트윗의 진정한 메시지일 것입니다. “나는 지금 이 유혹과 싸우고 있다. 당신도 싸우고 있을 것이다. 적어도 이것이 유혹이라는 사실만큼은 인지하자.” 헤로인이 위험한 것은 투여하기 때문이 아니라, 그것이 위험하다는 사실을 잊게 만들기 때문입니다.


작성일: 2026-02-23

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.