AI 코딩의 위험한 착각: 제레미 하워드가 말하는 소프트웨어 엔지니어링 vs. 코딩

AI 코딩의 위험한 착각: 제레미 하워드가 말하는 소프트웨어 엔지니어링 vs. 코딩

핵심 논제: 코딩은 소프트웨어 엔지니어링이 아니다

AI 지원 코딩은 소프트웨어 개발을 엔지니어링 학문이라기보다 스타일 전이 문제로 취급함으로써 생산성에 대한 위험한 착각을 만든다. 대형 언어 모델(LLM)은 학습 데이터에 존재하는 패턴을 보간하여 구문적으로 올바른 코드를 생성할 수 있지만, 진정한 소프트웨어 엔지니어링을 정의하는 고수준 설계, 아키텍처적 사고, 새로운 문제 해결 능력은 수행하지 못한다. 이 구분은 중요하다. 시스템에 대한 깊은 정신 모델을 유지하지 않은 채 인지 작업을 AI에 위임하면 조직은 실제로 아무도 이해하지 못하는 동작 코드를 보유하게 되는 “이해 부채(understanding debt)”가 발생한다.

보간 착각과 “바이브 코딩”

현대 AI 코딩 도구는 종종 “슬롯 머신”처럼 작동한다. 개발자는 레버(프롬프트)를 당기고 확률적인 결과를 받는다. 이 과정을 “바이브 코딩(vibe coding)”이라고 부르며, 프롬프트 엔지니어링과 컨텍스트 관리로 통제감을 주는 착각을 만든다. 하지만 이는 기술적 직관에 기반을 두고 있지 않다.

구성적 창의성 vs. 진정한 혁신

제레미 하워드는 창의성의 유형을 구분한다:

  • 조합·구성 창의성(Combinatorial/Compositional Creativity): LLM은 이 영역에서 매우 효과적이다. 기존 인간 지식을 방대한 새로운 방식으로 결합할 수 있다. 예를 들어, Rust로 C 컴파일러를 작성하는 것은 훈련 데이터에 존재하는 Rust 코드와 기존 컴파일러 로직을 보간한 것이며, “클린룸” 발명이 아니다.
  • 외삽 창의성(Extrapolative Creativity): LLM은 훈련 분포 밖으로 나가는 데 어려움을 겪는다. 문제에 진정으로 새로운 해결책이 필요할 때, LLM은 종종 표면적인 유사성에 머물러 근본적으로 잘못된 결과를 내며 크게 실패한다.

슬롯 머신 효과

LLM이 가끔 “승리”(작동하는 기능)를 제공하면, 개발자는 프롬프트와 조정의 루프에 중독될 수 있다. 하워드는 이것이 개발자를 논리의 통제에서 벗어나 모델 출력에 도박을 걸게 만들기 때문에 고통스럽고 스트레스를 유발한다고 지적한다.

조직 약화의 위험

코딩 작업을 AI에 위임하면 조직이 살아남고 진화하는 데 필요한 지식 자체가 약화될 위험이 있다. 하워드는 지식은 위키피디아에 있는 정적인 자산이 아니라, 적응적 습득 과정으로 살아있는 것이라고 주장한다.

통제의 침식

AI가 코드베이스의 대부분을 생성하면 “악의적인 통제 침식”이 일어난다. 개발자는 설계와 엔지니어링 근육을 사용하지 않게 되고, 역량을 성장시킬 수 없는 “약화(enfeeblement)” 상태에 빠진다. 이는 특히 중급 개발자에게 위험한데, 이들은 AI 출력의 타당성을 검증할 깊은 직관을 절대 갖추지 못할 수 있다.

이해 부채(Understanding Debt)

하워드는 IPykernel에서 복잡한 충돌을 AI로 해결한 사례를 공유한다. AI가 결국 문제를 해결했지만, 결과 코드는 아무도 이해하지 못한다. 이는 중요한 위험을 만든다: 코드가 이해되지 않으면 장기적인 안정성, 메모리 누수, 엣지 케이스 취약점 등을 알 수 없기 때문이다. 인간이 이해하지 못하는 코드를 제품에 베팅하는 것은 투기적이며 위험한 도박이다.

마찰을 통한 학습: 인터랙티브 프로그래밍의 필요성

진정한 기술 직관은 “바람직한 난이도(desirable difficulty)”를 통해 형성된다—현실이 정신 모델에 반발할 때 발생하는 마찰이다.

저마찰 도구의 실패

코딩 과정에서 모든 마찰을 제거하는 도구(예: 자율 AI 에이전트)는 장기 기억과 깊은 이해 형성을 방해한다. 하워드는 에빙하우스의 연구와 간격 반복 개념을 인용하며, 기억은 어려운 회상 작업을 통해서만 형성된다고 강조한다.

REPL과 노트북의 힘

약화를 방지하기 위해 하워드는 인터랙티브하고 상태를 유지하는 환경(REPL, Jupyter Notebook)으로 돌아갈 것을 주장한다. 그는 실시간으로 객체를 조작하고—문제에 손을 대어 반발을 유도하는—그 과정에서 진정한 통찰이 생긴다고 말한다.

"인간은 컴퓨터 안의 객체를 실시간으로 조작하고, 연구하고, 이동시키며, 결합할 수 있을 때 컴퓨터와 훨씬 더 많은 일을 할 수 있다."

그는 목표가 인간을 루프에서 완전히 자동화하는 것이 아니라, 인터랙티브 환경에서 AI를 활용해 인간이 시스템에 대한 더 깊은 정신 모델을 구축하도록 돕는 것이라고 강조한다.

AI 위험: 중앙집중화 vs. 멸종

존재론적 위험에 대해 하워드는 주요 위험이 자율 AI가 “이륙”해 세상을 파괴하는 것이 아니라 권력의 중앙집중화라고 주장한다.

  • 중앙집중화 함정: AI 멸종에 대한 공포는 종종 몇몇 대기업이나 정부에 권력을 집중시켜 “안전을 보장”하자는 요구로 이어진다.
  • 진정한 위협: 역사상 가장 강력한 기술을 소수의 손에 집중시키면 권력에 굶주린 개인들이 그 통제를 독점하려는 강력한 동기가 생기며, 이는 악성 AI보다 문명에 훨씬 큰 위험을 초래한다.

하워드는 해결책이 기술을 사회 전반에 퍼뜨려 권력 균형과 상호 방어 체계를 구축하는 것이라고 믿는다. 단일 실패 지점을 만들지 말아야 한다.


요약: 제레미 하워드는 AI가 스타일 전이 문제로서 ‘코딩’에는 뛰어나지만 ‘소프트웨어 엔지니어링’이라는 근본적인 역량은 부족하다고 주장한다. 이는 ‘이해 부채’와 조직 약화라는 미래 위험을 초래한다.

제목: AI 코딩의 위험한 착각: 제레미 하워드가 말하는 소프트웨어 엔지니어링 vs. 코딩

Sources