#AI

Embracing the Software 3.0 Era

Embracing the Software 3.0 Era
01

Summary

AI 에이전트 설계, 정답은 이미 20년 전 소프트웨어 공학에 있었다?

Andrej Karpathy가 예고한 Software 3.0 시대, 익숙한 '계층형 아키텍처'로 정복하는 방법

이 아티클은 LLM 기반의 Software 3.0 시대를 맞이하며, AI 에이전트를 실무에 어떻게 적용할 것인지에 대한 날카로운 통찰을 제공합니다. 특히 Anthropic의 Claude Code를 사례로 들어, 난해해 보이는 에이전트 구조를 우리가 이미 잘 아는 'Controller-Service-Infrastructure' 계층으로 치환하여 설명합니다. 복잡한 프롬프트 엔지니어링을 넘어 시스템적인 에이전트 아키텍처가 필요한 개발자에게 명확한 가이드를 제시합니다.

  • 01Software 1.0(로직)에서 3.0(프롬프트)으로의 진화와 Karpathy의 미래 전망
  • 02LLM을 실무에 길들이는 제어 장치, '하네스(Harness)'의 정의와 역할
  • 03Claude Code의 기술적 구조를 Spring/Express의 계층형 아키텍처와 1:1 매칭
  • 04AI 에이전트 개발 시 주의해야 할 'God Skill' 등 5가지 안티패턴과 코드 스멜
  • 05복잡한 작업을 독립적으로 수행하는 서브 에이전트와 도메인 단위 '스킬'의 설계 원칙

RECOMMENDATION

사내 AI 도구를 직접 구축하거나 대규모 AI 에이전트 시스템을 설계해야 하는 백엔드 엔지니어 및 아키텍트에게 강력 추천합니다. 기존의 소프트웨어 공학 지식을 AI 개발에 어떻게 이식할 수 있는지 보여주는 훌륭한 교본입니다.

The Problem

LLM은 강력한 잠재력을 지녔지만, 자체적으로는 코드베이스를 읽거나 데이터베이스에 접근하는 등의 실제 작업을 수행할 수 없는 한계가 있습니다. 또한 Andrej Karpathy가 주창한 Software 3.0 시대로 진입하면서, 프롬프트 기반의 새로운 프로그램을 효율적으로 관리하고 설계할 구조적 방법론이 부재한 상황입니다.

The Solution

LLM의 능력을 실무에 연결하는 '하네스(Harness)' 개념을 도입하고, Anthropic의 Claude Code와 같은 에이전트 구조를 기존 Software 1.0의 '계층형 아키텍처(Layered Architecture)'에 대입하여 설계합니다. 슬래시 커맨드를 컨트롤러로, 서브 에이전트를 서비스 레이어로, 개별 기능을 단일 책임 원칙(SRP)을 따르는 스킬로 모듈화하여 관리합니다.

The Result

검증된 소프트웨어 공학 원칙을 AI 에이전트에 적용함으로써, 복잡한 에이전트 시스템을 구조적으로 이해하고 유지보수할 수 있는 기틀을 마련했습니다. 특히 MCP(Model Context Protocol)를 통해 외부 시스템과의 결합도를 낮추고, 추상화 경계를 명확히 하여 재사용 가능한 에이전트 구성 요소를 확보하게 되었습니다.

Trade-off

본문에 구체적인 정량적 수치는 명시되지 않았으나, 계층화된 하네스 구조를 도입할 경우 시스템의 복잡도가 증가하고 관리해야 할 컴포넌트(CLAUDE.md, MCP 등)가 늘어나는 트레이드오프가 예상됩니다. 또한 기존 아키텍처의 안티패턴인 'God Skill'이나 'Circular Dependency'가 에이전트 설계에서도 여전히 발생할 수 있어 주의가 필요합니다.

03

Key Concepts

Concept · 01

Software 3.0

자연어 프롬프트 자체가 프로그램이 되는 시대로, 명시적 로직(1.0)이나 학습된 모델 가중치(2.0)를 넘어 LLM과의 상호작용이 핵심이 되는 패러다임입니다.

  • Andrej Karpathy가 정의한 소프트웨어 발전의 세 번째 단계
  • 컴퓨터에게 '어떻게'가 아닌 '무엇을' 원하는지 자연어로 전달함
Concept · 02

MCP (Model Context Protocol)

AI 모델을 데이터베이스, API 등 외부 시스템과 표준화된 방식으로 연결하기 위한 개방형 프로토콜입니다.

  • 전통적 아키텍처의 '인프라스트럭처' 또는 '어댑터' 계층으로 역할함
  • 내부 로직과 외부 인터페이스 간의 추상화 경계를 제공하여 결합도를 낮춤
Concept · 03

Harness (하네스)

강력한 야생마를 제어하는 마구처럼, LLM의 원천적인 능력을 실제 업무 프로세스에 연결하고 제어하는 시스템적 장치를 의미합니다.

  • LLM의 컨텍스트 윈도우 한계 및 할루시네이션 문제를 보완하는 역할
  • 메모리 관리, 도구 사용, 세션 및 상태 관리를 담당하는 오케스트레이션 프레임워크