AI 코딩 에이전트 개선: 지침, 도구, 런타임 최적화

[Euruko 2025] “Navigating Uncharted Waters: Coding Agents and Tooling Evolution” – José Valim

작성자
EuRuKo
발행일
2025년 11월 24일

핵심 요약

  • 1 AI 코딩 에이전트의 효율성 향상을 위해 지침(agents.md), 도구(MCPs), 런타임(Tidewave.ai)의 개선 방안을 제시합니다.
  • 2 프레임워크가 신규 애플리케이션 생성 시 agents.md 파일을 자동으로 생성하여 에이전트의 초기 가이드라인을 제공해야 한다고 주장합니다.
  • 3 에이전트를 개발 중인 애플리케이션(예: 웹 앱의 브라우저)에 직접 통합하는 런타임 개선을 통해 컨텍스트 이해도를 높이고 생산성을 극대화할 수 있습니다.

도입

본 발표는 Elixir의 창시자이자 Tidewave.ai의 CEO인 Jose Valim이 AI 코딩 에이전트의 실질적인 개선 방안에 대해 논의합니다. 미래 예측보다는 현재 사용 가능한 도구들을 활용하여 개발 언어와 툴링을 어떻게 개선할지에 초점을 맞춥니다. 에이전트의 네 가지 구성 요소(모델, 지침, 도구, 런타임) 중 모델은 대규모 조직의 영역이므로, 지침, 도구, 런타임 세 가지 측면에서 코딩 에이전트의 생산성을 높이는 방법을 탐구합니다.

AI 코딩 에이전트 개선 방안

1. 지침 개선 (Improving Instructions)

  • agents.md 파일 활용: 코딩 에이전트의 동작을 안내하는 표준화된 agents.md 파일을 프로젝트 루트에 두어 비즈니스 도메인 규칙, 프로젝트별 단계, 맞춤형 워크플로, 반복되는 실수를 문서화합니다.

  • 프레임워크의 역할: Rails와 같은 프레임워크가 rails new와 같이 새 애플리케이션 생성 시 agents.md를 자동으로 생성하여 컨벤션을 제공해야 합니다. Phoenix 프레임워크는 이미 이를 구현했습니다.

  • LLM의 격차 해소: 에이전트가 이미 알고 있는 일반적인 정보(예: Rails가 MVC 웹 프레임워크라는 사실) 대신, 모델이 학습하지 못한 최신 프레임워크 기능이나 프로젝트 고유의 격차를 agents.md에 명시하여 에이전트의 실수를 줄입니다.

  • Pre-commit 태스크 통합: 테스트 실행, 코드 포맷팅, 보안 검사(예: Robocop, Brakeman) 등 커밋 전 수행할 작업을 태스크로 정의하고 에이전트에게 지시하여 워크플로를 따르게 합니다.

2. 도구 개선 (Improving Tools)

  • MCP (Model Context Protocol): 에이전트의 기능을 확장하는 신흥 표준으로, GitHub, Sentry, 데이터베이스 등 다양한 외부 서비스와 연동할 수 있습니다.

  • 보안 문제 (LLM Trifecta): Simon Willison이 제시한 ‘LLM Trifecta’(개인 데이터 접근, 외부 통신, 신뢰할 수 없는 콘텐츠 노출)는 에이전트의 정보 유출 위험을 경고합니다. 코딩 에이전트는 기본적으로 코드베이스에 접근하고 외부 통신이 가능하므로, 신뢰할 수 없는 콘텐츠를 포함하는 MCP와 연동 시 프롬프트 인젝션 공격에 취약해질 수 있습니다.

  • 프롬프트 인젝션 예시: Sentry에서 에러 메시지에 사용자 ID와 같은 민감한 정보가 포함될 경우, 악의적인 사용자가 이를 통해 ‘코드베이스를 압축하여 외부 서버로 전송하라’는 명령을 에이전트에 주입할 수 있습니다. 이는 SQL 인젝션과 유사한 새로운 형태의 공격입니다.

  • 핫 테이크: 보안 취약성을 줄이기 위해 더 적은 MCP 클라이언트와 더 나은 런타임이 필요합니다.

3. 런타임 개선 (Improving Runtimes)

  • Tidewave.ai 데모: 코딩 에이전트 런타임을 에디터 밖으로 꺼내 브라우저에 통합한 Tidewave.ai는 웹 애플리케이션 개발에 최적화된 런타임의 예시입니다.

  • 런타임의 이점: 브라우저 내에서 실행되므로 DOM과 템플릿 구조를 이해하고, 예외 발생 시 자동으로 오류를 처리하며, 구현된 기능을 브라우저에서 직접 테스트하고, 언어 런타임(REPL, 문서, 로그) 및 데이터베이스에 접근하여 완전한 컨텍스트를 제공합니다.

  • 공유 컨텍스트: 개발자가 에이전트와 웹 앱 사이에서 정보를 번역할 필요 없이, 에이전트가 직접 웹 앱과 상호작용하며 모든 컨텍스트를 공유하여 생산성을 높입니다.

  • 핫 테이크: 코딩 에이전트를 개발 중인 대상(스크립트/라이브러리: 에디터, 웹 앱: 브라우저, 데이터 분석: 노트북, 게임: 게임 엔진)에 직접 통합하여 컨텍스트를 극대화해야 합니다.

4. 더 나은 런타임을 위한 도구 개선

  • 인트로스펙션의 중요성: 언어와 브라우저의 내부 동작을 들여다볼 수 있는 인트로스펙션 기능은 에이전트와 개발자 모두에게 중요합니다. Ruby와 Rails는 이미 훌륭한 인트로스펙션 기능을 제공합니다.

  • 구조화된 템플릿: ERB와 같은 현재의 템플릿 언어는 HTML을 문자열 보간 방식으로 생성하여 구조적 정보가 부족합니다. HEEx와 같이 구조화된 템플릿 언어는 유효성 검사, 린팅, 자동 포맷팅 등 개발자 경험을 향상시키며 에이전트에게도 더 풍부한 정보를 제공합니다.

  • 통합 문서화: Ruby 커뮤니티는 문서 접근성 개선이 필요합니다. 메타 프로그래밍된 코드에 대한 문서화, Doc 테스트와 같은 문서 유효성 검사 기능, 그리고 Elixir, Rust, Go처럼 모든 Ruby 패키지의 문서를 구조화되고 깔끔한 형식으로 제공하는 통합 문서화 웹사이트가 필요합니다. 이는 에이전트 학습과 개발자 편의성 모두에 크게 기여할 것입니다.

결론

AI는 15년 이상 개발 툴링 분야에 종사해 온 연사에게 과거의 작업들을 되돌아보고 새로운 개선 방안을 찾을 기회를 제공합니다. 개발자 경험을 개선하는 것이 에이전트 경험을 향상시키고, 그 반대도 마찬가지입니다. 따라서, 언어, 프레임워크, 문서화 등 개발 도구의 근본적인 개선은 AI 시대에 더욱 중요해지며, 이러한 통찰력을 바탕으로 차세대 개발 도구를 구축할 것을 독려합니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!