에이전트 코딩은 함정이다
최근 업계를 휩쓸고 있는 '에이전트 코딩(Agentic Coding)'의 위험성을 지적하며, 개발자의 인지적 부채와 핵심 기술의 퇴화를 경고하는 글입니다. AI가 코드를 작성하고 인간은 지휘자 역할만 한다는 식의 개발 방식은 숙련된 개발자의 비판적 사고력까지 저하시킬 수 있다고 분석합니다. 단순한 기술 발전을 넘어, 주니어 개발자의 학습 저해 및 시스템 복잡성 증가 등 실제로 관찰되는 부작용들을 통해 이번 상황은 과거의 추론적 우려와는 다른 실질적인 위협임을 강조합니다.
에이전트 코딩은 함정이다: 인지적 부채(Cognitive Debt)와 기술 퇴화(Atrophy)에 대한 경계
"AI가 코드를 작성하고, 루프 안에 있는 인간은 오케스트레이터(지휘자) 역할을 한다." 이것이 현재 업계를 뜨겁게 만들고 있는 분위기입니다. 즉, 전통적인 코딩은 사실상 죽었고, 명세서 주도 개발(Spec Driven Development, SDD)이 미래라는 것입니다. 개발자는 계획을 수립하고, 코드 작성 자체와는 분리됩니다. AI 에이전트가 더 잘 알고 있으며 모든 구현을 처리합니다. 개발자는 전문가로서 '좋은 취향(Good taste)'을 제공하고, 결과물을 검토하며, 자신이 세심하게 마련한 계획대로 에이전트가 실행하도록 지속적으로 방향을 잡아주는 역할만 합니다.
이 시점에서 워크플로우는 다양한 형태를 취하지만, 일반적으로 누군가 프로젝트의 요구 사항을(미시적, 거시적 수준에서 동시에) 정의하고, 계획을 생성한 다음, 슬롯머신 레버를 계속 당기듯 여러 에이전트 인스턴스를 사용해 완성될 때까지 반복적으로 수정하는 과정을 거칩니다. 그 과정 내내 '지휘자'와 생성되어 커밋되는 코드 사이의 거리는 점점 멀어지고 있습니다.
코딩 에이전트는 유용하고 강력하지만, 이미 논의되어야 할 몇 가지 정량적인 트레이드오프가 존재합니다:
- AI의 비결정론(non-determinism)이 증가한 모호성을 완화하기 위해, 주변 시스템의 복잡성이 증가합니다.
- 많은 개발자 집단의 기술이 퇴화합니다.
- 개인과 팀 전체의 벤더 종속성(Vendor lock-in)이 발생합니다 (예: Claude Code 장애로 인해 전체 팀이 마비된 사례가 이미 있었습니다).
- 도구 접근 비용이 변동되고 증가합니다. 직원의 비용은 고정되어 있지만, 토큰 비용은 끊임없이 변동하는 목표입니다.
이러한 코딩 에이전트 방식으로 성공하려면 상당히 중요한 요소에 달려 있습니다. 바로 문제가 발생하기 전에 수천 줄의 생성된 코드에서 결함을 발견할 수 있는, 비판적으로 사고하고 아키텍처 수준에서 편안하게 작업할 수 있는 숙련된 개발자만이 필요하다는 것입니다. 하지만 아이러니하게도, 개인의 비판적 사고 능력과 인지적 명확성은 AI 도구가 부정적인 영향을 미치는 것으로 이미 입증되었습니다.
"또 다른 추상화(Abstraction)"가 아닙니다.
우리가 커뮤니티에서 흔히 듣는 말은 프로그래머들이 단지 "스택 위로 이동"하여 다른 유형의 추상화 계층으로 들어가는 것뿐이라는 것입니다. 이러한 도구들이 애초에 추상화 계층인지 여부는 아직 정해진 바가 없으며, 모호성이 높아지는 것이 반드시 추상화 수준이 높아지는 것을 의미하지는 않습니다.
이를 제쳐두더라도, 프로그래머가 새로운 언어와 새로운 프로그래밍 방식에 대해 경계하는 경향이 있다는 것은 사실입니다. FORTRAN이 출시되었을 때 프로그래머들도 회의적이었습니다. 그들은 비슷한 주장을 펼쳤습니다. 그것은 버그와 불안정성을 더 많이 초래할 가능성이 높으며, 어셈블리어를 직접 작성하는 것이 더 효율적이라고 말이죠. 나중에는 컴파일러의 통합이 프로세스에 너무 많은 "마법"을 도입한다는 논의가 있었습니다. 이들은 새로운 기술을 수용했을 때 잃어버릴 수 있는 것에 대한 두려움을 중심으로 한 규범적 논쟁이었습니다.
오늘날 일어나고 있는 일과의 차이점은, 과거의 그러한 두려움들이 추측적이고 이론적이었다는 것입니다. AI 도구가 존재해 온 짧은 몇 년 동안, 우리는 이미 상당한 영향을 보고 있습니다. 이는 주니어 개발자들뿐만 아니라 10년 이상의 경험을 가진 사람들에게도 마찬가지입니다:
주니어 개발자들은 코드를 직접 다루는 능력이 잘리고 그 자리를 생성된 코드를 검토하는 것으로 대체되면서 더 가파른 오르막에 직면하게 됩니다. 코드 리뷰는 중요하지만, 학습 과정의 기껏해야 50%에 불과합니다. 코드를 직접 다루면서 발생하는 마찰과 도전 과제가 없다면 그들의 학습 능력은 심각하게 저하됩니다.
이 현상을 연구하는 데는 시간이 걸리므로, 현재 상황을 실시간으로 파악하기 위해서는 일화적 증거를 모으는 것이 중요합니다. 하지만 이는 이미 학술적으로도 연구되었으며, 이것이 실제 현상이라는 점을 강화하는 수많은 보고서가 존재합니다. 이번만큼은 실제로 다릅니다. C++ 개발자가 Java나 Python으로 옮겼을 때 뇌안개(Brain fog)를 호소하지 않았습니다. 시스템 관리자가 AWS로 옮겼을 때 네트워킹을 이해하는 능력을 잃어버린다고 느끼지도 않았습니다.