바이브 코딩의 시대, Karpathy가 제시한 에이전틱 엔지니어링 5가지 핵심
처음 AI 코딩 도구를 접했을 때만 해도 모든 게 마법 같았습니다. 단순히 자연어로 질문을 던지면 코드가 완성되는 이른바 바이브 코딩의 시대를 경험하며, 개발의 난이도가 획기적으로 낮아졌다고 믿었죠. 하지만 3개월 정도 복잡한 프로젝트에 이 도구들을 투입해보니 현실은 달랐습니다. 엉뚱한 라이브러리를 가져오거나, 맥락을 놓치고 엉뚱한 함수를 짜내는 상황이 빈번해지더군요. 그때 문득 Andrej Karpathy의 강연을 보게 되었고, 단순히 도구에 의존하는 단계를 넘어 에이전틱 엔지니어링이라는 구조적 접근이 필요하다는 걸 뼈저리게 깨달았습니다.
Agent와 Sub-Agent의 계층적 위임
단순 챗봇을 넘어 에이전트의 위계 구조를 설계하는 것이 핵심입니다. 하나의 거대한 프롬프트에 모든 걸 맡기는 대신, 작업을 세분화하여 각 에이전트에게 권한을 나누어주는 방식이죠.
실무에서 경험한 가장 큰 실패는 하나의 에이전트에게 전체 로직을 다 맡기는 것이었습니다. 초반 2주 동안은 잘 돌아가는 듯했지만, 에이전트가 처리해야 할 컨텍스트가 늘어날수록 결정의 질이 급격히 떨어지더군요. 결국 저는 작업을 에이전트와 서브 에이전트로 쪼개기 시작했습니다. 예를 들어 코드 생성 에이전트와 코드 검증 에이전트를 분리하고, 상위 에이전트가 전체 계획을 잡고 서브 에이전트에게 실행을 병렬로 요청하는 방식(Fan-out/Fan-in)을 적용했죠. 이렇게 구조를 나누고 나니, 에이전트가 겪던 소위 '중간 정보 유실(Lost-in-the-Middle)' 문제가 눈에 띄게 줄어들었습니다.
프롬프트를 넘어서는 컨텍스트 엔지니어링
컨텍스트는 단순히 글자 수를 채우는 것이 아닙니다. 시스템, 대화, 툴이라는 3단계 레이어를 설계하고 이를 CLAUDE.md 같은 문서로 문서화하여 에이전트가 항상 최상의 상태를 유지하게 만드는 전략이 필수입니다.
많은 분이 프롬프트만 잘 짜면 된다고 생각합니다. 하지만 실제로는 비용과 신호 강도, 캐시 효율이라는 3중 압박을 관리하는 것이 진짜 엔지니어링입니다. 컨텍스트가 너무 길어지면 에이전트는 오히려 중요한 신호를 놓치기 시작하거든요.
Tool과 MCP, 에이전트의 손과 발
MCP(Model Context Protocol)는 에이전트 생태계의 USB-C 포트와 같습니다. 이제 에이전트는 자신만의 고립된 환경에서 벗어나 외부 데이터와 시스템을 표준화된 방식으로 자유롭게 호출할 수 있습니다.
처음 툴을 설계할 때 저는 모든 권한을 에이전트에게 주었습니다. 결과는 끔찍했죠. 파일 삭제 권한을 가진 에이전트가 실수로 로그 파일을 통째로 날려버린 적이 있었습니다. 이후에는 '최소 권한의 원칙'을 철저히 지키기로 했습니다. 툴을 만들 때는 검증 단계와 에러 핸들링 로직을 반드시 포함했고, 에이전트가 툴을 사용하기 전 단계에서 휴먼 피드백을 한 번 더 거치도록 안전장치를 설계했습니다. MCP라는 표준화된 인터페이스를 활용하니, 이제는 확장성 고민 없이도 필요한 기능을 언제든 덧붙일 수 있게 되더군요.
자주 묻는 질문(FAQ) ❓
바이브 코딩과 에이전틱 엔지니어링의 결정적 차이는 무엇인가요?구조화된 예측 가능성입니다. 바이브 코딩은 운에 맡기는 느낌이라면, 에이전틱 엔지니어링은 계획과 검증 루프를 통해 에이전트의 행동을 시스템적으로 통제하고 개선하는 과정입니다. |
MCP가 실제로 그렇게 중요한가요?표준화가 주는 생산성 차이가 큽니다. 예전에는 각 서비스마다 툴을 따로 만들어야 했지만, 이제는 MCP 규격만 맞추면 어떤 서비스든 에이전트가 즉시 도구로 활용할 수 있어 연결 비용이 획기적으로 줄어듭니다. |
엔지니어링의 본질로 돌아가며
결국 에이전틱 엔지니어링은 AI에게 모든 것을 떠넘기는 게 아니라, AI를 어떻게 하면 더 똑똑한 조력자로 세울지 고민하는 과정입니다. 오늘 소개한 5가지 개념을 하나씩 실제 워크플로우에 적용해보세요. 처음엔 위임의 스펙트럼이 낯설게 느껴질 수 있지만, 이 과정을 반복하다 보면 AI와 함께 일하는 직감이 자연스럽게 길러질 것입니다. 이제 막연한 기대를 멈추고, 더 정교한 시스템을 설계하는 에이전틱 엔지니어링으로 나아갈 때입니다.
댓글
댓글 쓰기