LLM 시대에도 프로그래밍의 즐거움을 지키는 법
Haskell 개발자가 AI로 인한 번아웃과 코딩 기술 상실 우려 속에서, LLM을 완전히 의존하지 않으면서도 적절히 활용해 생산성을 높이는 방향을 제시하는 글입니다. 코드베이스의 주인으로 남으려면 직접 코드를 계속 작성해야 하며, 생성된 코드 검토의 지옥에 빠지지 않는 전략이 필요하다고 강조합니다.
LLM 시대에 프로그래밍 즐거움을 지키는 방법
turion, 2026년 9월 18일 오전 9:56
AI 번아웃으로 향해 가고 계신가요? 프로그래밍 실력은 거의 없고 품질에 대한 열망도 없으면서 Claude 계정만 크게 갖고 있는 사람에게 직업을 빼앗길까 두렵나요? 프로젝트의 코드 품질에, 혹은 더 나쁘게는 '당신 자신'의 코드 품질에 실망하고 있나요? 이 글은 그런 여러분을 위한 것입니다.
빅테크 기업들이 운영하는 프론티어 LLM에는 중대하고 정당한 윤리적 우려가 있으며, 이는 이미 충분히 논의되었습니다. 저도 그 우려를 알고 동의합니다. 이 글은 그런 이야기가 아닙니다. 저를 친(親) LLM 테크브로로 오해하지 말아 주세요. 또한, 제 글이 LLM이 생성한 것으로 오해받은 적이 있어서 말씀드리자면, 이 글은 AI 도움 없이 100% 사람이 직접 쓴 것입니다.
거대 기계 속의 영혼들
Sean McMullen의 이 제목의 훌륭한 책이 있어서 십대 시절 즐겨 읽었는데, 언뜻 보면 우리 상황과 정반대를 묘사합니다. 개별 구성 요소가 인간이고, 그 인간들이 모여 하나의 계산 장치를 이루는 거대한 컴퓨터 이야기입니다. 반면 LLM은 실제 컴퓨터 위에서 돌아가며 (초)인간인 척합니다. 하지만 다시 들여다보면 이야기와 현실이 그리 다르지 않습니다. 소프트웨어 생산 과정에서 우리의 역할은 주체자(행위자)에서 기계의 톱니바퀴로 서서히 강등되고 있습니다. 명세(spec) 주도의 디스토피아는 이렇습니다. 명세를 넘겨받아 LLM에 밀어 넣고, 기술봉건 영주가 토큰을 덜 배급하기로 결정하면 토큰이 떨어져 울고 있는 우리의 모습.
저는 Haskell 프로그래머로서 Haskell을 쓰는 것을 즐깁니다. 물론 직장에서 만드는 제품을 좋아하고, 제 오픈소스 라이브러리로 할 수 있는 일들을 좋아하지만, 정말 즐기는 것은 이 언어로 생각을 표현하는 과정 자체입니다. 대부분의 독자분들도 그럴 거라고 생각하고, 다른 많은 언어에서는 그렇지 않을 거라고 가정합니다. 이것이 어느 정도는 다양한 프로그래밍 언어 애호가들이 LLM 보조 미래를 얼마나 밝게 혹은 어둡게 보는지에 대해 서로 다른 의견을 갖는 이유를 설명해 줍니다.
코드를 생성하면 그 즐거움의 상당 부분이 위험에 빠집니다. 그러니, 하지 마세요, 아마도요.
저는 (적어도 즐거운 부분은) Haskell 프로그램을 계속 직접 작성하고 싶고, (너무 많은) 생성된 코드를 읽고 검토하고 싶지 않습니다. 동시에, 뇌를 서서히 갉아먹지 않으면서 토큰을 유용하게 쓰고 싶습니다. 프로그래밍의 즐거움을 지키면서 동시에 LLM으로 적당히 생산성을 높이는 방법을 보여드리고 싶습니다. 겉보기에 훨씬 생산적인 것처럼 보이지만 모든 즐거움을 잃는 것이 아니라요. LLM을 완전히 끊는 것(abstinent)을 원하신다면 그것도 훌륭하며, 이미 무엇을 하고 있는지 알고 계실 겁니다. 하지만 그러고 싶지 않은 이유가 있을 수 있습니다. 예를 들어 실제로 실질적인 생산성 향상을 보여줘야 하거나, 팀, 회사, 업계 전체가 LLM을 대대적으로 도입하는 흐름 속에서 뒤처지고 싶지 않은 경우죠.
계속 코드를 작성하라
코드베이스의 주인으로 남고 싶다면, 코드를 계속 직접 작성해야 합니다. 전부 생성하게 두면 코드베이스는 코딩 에이전트만 활개 칠 수 있는 LLM 황무지로 변할 것입니다. 그러니 계속 코드를 작성하세요. 그렇지 않으면 결국 코드베이스를 잃게 됩니다.
코드를 계속 작성해야 하는 또 다른 이유는 좋은 프로그래머로 남기 위해서입니다. 기술은 연습하지 않으면 상실될 수 있으며, 코딩 작업을 포기하고 에이전트에게 넘기는 문턱이 정말 낮기 때문에 여기서는 그 위험이 특히 큽니다. 코딩을 하지 않고 모든 것을 에이전트에게 맡긴 지 몇 주만 지나도 직접 코딩으로 돌아가기 어려워지는 것을 스스로 느끼게 될 것입니다.
LLM은 광고만큼 좋고 사람이 읽기 쉬운 코드를 만들지 못합니다. LLM 자신이 이후에 단독으로 작업할 코드를 만드는 데는 그럭저럭 괜찮습니다. 하지만 어딘가에 분명 버그가 있을 완전히 생성된 파일을 보며, 그 낯선 풍경 때문에 인간으로서 도저히 버그를 찾을 수 없을 것 같은 절망을 이미 경험해 보셨을 겁니다.
그렇다면 에이전트에게 코딩을 맡기지 않고 어떻게 생산성 향상을 얻을 수 있을까요? 만들기를…