3줄 요약

  1. Storey는 시스템 건강을 기술 부채 외에 인지 부채와 의도 부채로 확장하여 세 겹으로 분류했다.
  2. Shaw와 Nave는 카너먼의 이중 인지 모델에 AI를 ‘시스템 3’으로 추가하며, 비판 없이 AI에 의존하는 ‘인지 항복’의 위험을 경고한다.
  3. Ajey Gore는 코딩이 무료가 되면 검증이 비싼 것이 된다고 주장하며, 조직은 빌드가 아닌 판단 중심으로 재편되어야 한다고 말한다.

세 겹의 시스템 부채

Margaret-Anne Storey는 시스템 건강의 세 가지 층을 제안한다.

  • 기술 부채는 코드에 산다. 구현 결정이 미래의 변경 가능성을 훼손할 때 축적된다.
  • 인지 부채는 사람에 산다. 시스템에 대한 공유 이해가 보충 속도보다 빠르게 침식될 때 축적된다.
  • 의도 부채는 산출물에 산다. 시스템을 안내해야 할 목표와 제약이 제대로 기록되거나 유지되지 않을 때 축적된다.

LLM이 대량의 코드를 쏟아내는 시대에 인지 부채가 특히 빠르게 쌓인다. 팀이 시스템의 동작을 이해하지 못하면 변경에 대해 추론할 수 없다. 의도 부채가 쌓이면 인간이든 AI 에이전트든 시스템을 효과적으로 진화시킬 수 없다.

Fowler는 부채 은유의 증식에 약간 피로감을 느낀다고 하면서도, 세 부채의 상호작용과 진단~완화 방법을 다룬 이 논문이 합리적인 프레임워크라고 평가한다.

시스템 3: AI를 카너먼 모델의 새 계층으로

Storey의 논문이 참조한 Shaw와 Nave의 와튼 스쿨 논문은 카너먼의 이중 시스템에 LLM을 추가한다.

카너먼의 핵심 아이디어는 인간에게 두 인지 시스템이 있다는 것이다.

  • 시스템 1(직관): 빠르고 거의 무의식적인 결정
  • 시스템 2(숙고): 문제에 의도적 사고를 적용하는 과정

Shaw와 Nave는 AI를 시스템 3으로 놓는다. 시스템 3의 등장이 가져오는 새로운 위험이 인지 항복(cognitive surrender)이다. 외부에서 생성된 인공 추론에 비판 없이 의존하면서 시스템 2를 우회하는 현상이다.

중요한 구분이 있다. 인지 항복은 수동적 신뢰와 비판적 평가의 부재가 특징이고, 인지 오프로딩(cognitive offloading)은 숙고 과정에서 전략적으로 인지를 위임하는 행위다. 전자는 시스템 2를 우회하고, 후자는 시스템 2 안에서 이루어진다.

검증이 비싼 것이 된다

Ajey Gore는 코딩이 무료가 되면 비싼 것은 무엇이 되는가를 묻고, 그 답이 검증이라고 말한다.

자카르타 교통에서 ETA 알고리즘의 “정확함"은 호치민시에서의 “정확함"과 다르다. 수백 명의 엔지니어가 ~900개의 마이크로서비스에 코드를 밀어넣을 때, “정확함"은 하나의 정의가 아니라 수천 개의 정의이며, 모두 변하고, 모두 맥락 의존적이다. 이것들은 에지 케이스가 아니다. 이것이 일 전체다.

Fowler는 대체로 동의하면서, 에이전트가 자동화된 검증이 있을 때 잘 작동한다는 관찰이 TDD 같은 실천을 다시 주목하게 만든다고 덧붙인다. 다만 Gore의 레거시 마이그레이션 비관론에는 이견이 있다. 에이전트 코딩은 레거시 맥락에서 과대평가되지만, LLM이 레거시 코드가 무엇을 하는지 이해하는 데 큰 도움이 된다는 증거는 있다.

Gore가 그리는 조직 재편은 이렇다.

에이전트가 실행을 담당하면, 인간의 일은 검증 시스템을 설계하고, 품질을 정의하고, 에이전트가 해결하지 못하는 모호한 케이스를 처리하는 것이 된다. 10명의 엔지니어가 기능을 만들던 팀이 3명의 엔지니어와 7명의 수용 기준 정의~테스트 하니스 설계~결과 모니터링 인력으로 재편된다. 빌드를 강등하고 판단을 승격하는 이 전환은 불편하다. 대부분의 엔지니어링 문화가 저항한다. 저항하지 않는 팀이 이긴다.

소스 코드의 미래

David Cassel이 The New Stack에서 소스 코드의 미래에 관한 여러 시각을 정리했다. LLM을 염두에 둔 새로운 언어를 실험하는 쪽도 있고, TypeScript나 Rust 같은 엄격한 타입 언어가 LLM에 가장 적합하다고 보는 쪽도 있다.

Fowler는 어떻게 전개될지 관심이 있다고 하면서, 여전히 인간과 LLM이 함께 유용한 추상화를 만드는 역할이 중요하다고 본다. DDD의 유비쿼터스 언어 개념이 그 핵심이다.

Unmesh Joshi의 말이 이를 잘 요약한다.

프로그래밍은 컴퓨터가 이해할 수 있는 코딩 문법을 타이핑하는 것이 아니라 해결책을 성형하는 행위다. 문제를 집중된 조각으로 나누고, 관련 데이터와 행동을 결합하며, 의도를 드러내는 이름을 선택하는 것이 핵심이다. 가장 창작적인 행위는 해결하려는 문제에 명확하게 매핑되는 해결책의 구조를 드러내는 이름을 지속적으로 짜나가는 것이다.

가장 흥미로운 지점

네 주제를 관통하는 공통 실이 있다. 인간의 이해와 판단이 시스템의 병목이라는 것이다.

  • Storey의 인지 부채: 이해가 침식되면 변경 추론이 불가능하다.
  • Shaw~Nave의 인지 항복: AI에 판단을 넘기면 위험하다.
  • Gore의 검증 비용: “정확함"을 정의하는 것이 인간의 판단 영역이다.
  • Fowler~Unmesh의 추상화: 의도를 드러내는 이름을 짓는 것이 프로그래밍의 본질이다.

AI가 실행 비용을 0에 가깝게 만들수록, “무엇이 맞는가"를 아는 능력의 가치가 올라간다. 기술 부채가 코드에 쌓이고 인지 부채가 팀에 쌓인다면, AI 시대에 가장 위험한 것은 의도 부채일 수 있다. 시스템이 왜 존재하는지를 잊으면, 아무리 빠르게 코드를 생성해도 방향이 없다.

출처

Martin Fowler, 2026년 4월 2일 발행 원문: https://martinfowler.com/fragments/2026-04-02.html