코딩 에이전트와 도구 발전: 생산성 향상을 위한 실질적인 접근

José Valim, Programming language evolution in the AI era. San Francisco Ruby Conference 2025.

작성자
Evil Martians
발행일
2025년 12월 27일

핵심 요약

  • 1 코딩 에이전트의 실질적인 개선은 모델이 아닌 지침(instructions), 도구(tools), 런타임(runtime) 개선에 달려 있습니다.
  • 2 프레임워크는 에이전트 행동을 안내하는 'agents.md' 파일을 생성해야 하며, 웹 앱을 위한 브라우저 내 커스텀 런타임은 뛰어난 통합과 생산성을 제공합니다.
  • 3 Ruby와 Rails는 뛰어난 인트로스펙션(introspection)을 갖추고 있으나, 구조화된 템플릿과 통합된 문서화 측면에서 에이전트 통합을 위한 개선이 필요합니다.

도입

본 발표는 Elixir의 창시자인 Jose Valim이 AI 기술의 과장된 부분을 넘어 개발자의 일상적인 생산성을 향상시킬 수 있는 코딩 에이전트의 실질적인 발전에 초점을 맞춥니다. 그는 에이전트 개선을 모델 자체의 발전이 아닌, 에이전트의 지침, 도구, 런타임이라는 세 가지 핵심 요소에 집중함으로써 달성할 수 있다고 강조합니다. 이 강연은 현재 사용 가능한 기술을 활용하여 개발 경험을 개선하는 방안을 모색하며, 특히 코딩 에이전트의 효과적인 통합에 대한 깊이 있는 통찰을 제공합니다.

코딩 에이전트의 개선 방안은 크게 세 가지 축으로 나뉩니다.

1. 지침(Instructions) 개선

  • agents.md 파일 활용: 에이전트의 LLM(대규모 언어 모델) 행동을 안내하는 시스템 프롬프트 외에, agents.md 파일을 통해 비즈니스 도메인 규칙, 프로젝트별 단계, 커스텀 워크플로우, 그리고 흔한 실수 및 반복되는 문제점을 문서화하여 에이전트의 행동을 미세 조정할 수 있습니다.

  • 프레임워크 통합: Rails와 같은 프레임워크가 새로운 앱을 생성할 때 agents.md 파일을 기본으로 포함해야 한다는 주장이 제기됩니다. 이는 LLM이 최신 프레임워크 버전이나 프로젝트의 특정 관행을 따라가지 못하는 격차를 메우는 데 중요합니다.

  • Pre-commit 태스크: 테스트 실행, RuboCop 자동 수정, 보안 검사 등 인간 개발자와 에이전트 모두가 커밋 전에 수행해야 할 일련의 작업을 단일 명령어로 통합하는 것이 생산성 향상에 기여합니다.

2. 도구(Tools) 개선 (MCPs)

  • MCP(Multi-modal Communication Protocol)의 역할: MCP는 에이전트의 기능을 확장하는 새로운 표준으로, GitHub, Sentry, 데이터베이스 등 다양한 서비스와 연동하여 에이전트에게 새로운 도구를 제공합니다.

  • 보안 문제: Simon Willis가 제시한 ‘Little Trifecta’ 개념은 MCP 사용 시 보안 위험을 경고합니다. 개인 데이터 접근, 외부 통신 가능성, 신뢰할 수 없는 콘텐츠 노출이라는 세 가지 조건이 충족될 경우, 에이전트가 민감한 데이터를 유출할 수 있습니다. 예를 들어, 에러 메시지나 로그에 악성 코드가 포함될 수 있습니다.

  • 개선 방향: 더 적은 MCP 클라이언트와 더 나은 런타임이 필요하다는 주장이 제기됩니다. 이는 보안 위험을 줄이고 효율적인 통합을 가능하게 합니다.

3. 런타임(Runtime) 개선

  • 런타임의 중요성: 런타임은 지침, 모델, 도구를 연결하여 에이전트가 작동하도록 하는 핵심 요소입니다. 커스텀 런타임을 구축하면 최고의 생산성을 이끌어낼 수 있습니다.

  • Tidewave 사례: Tidewave는 웹 개발자를 위한 코딩 에이전트로, 브라우저 내에 런타임을 통합하여 웹 애플리케이션과 에이전트 간의 깊은 상호작용을 가능하게 합니다. 템플릿과 DOM 매핑 이해, 선제적인 에러 처리, 브라우저 테스트, 언어 런타임 및 데이터베이스 접근 등을 통해 에이전트가 스스로 기능을 구현하고 테스트하며 버그를 수정하는 능력을 보여줍니다.

  • 에이전트 통합: 코딩 에이전트를 우리가 구축하는 대상(예: 라이브러리는 에디터, 웹 앱은 브라우저, 데이터 분석은 노트북, 게임은 게임 엔진)에 직접 통합해야 한다는 주장이 강조됩니다. 이는 도구 간의 단편화를 줄이고 전체 개발 워크플로우를 유기적으로 연결합니다.

4. 인트로스펙션(Introspection)의 필요성

  • 언어의 이해: 커스텀 코딩 에이전트가 효과적으로 작동하려면 언어, 프레임워크, 게임 엔진 등이 무엇을 하는지 완벽하게 이해할 수 있는 인트로스펙션 기능이 필수적입니다. Ruby와 Rails는 이미 훌륭한 인트로스펙션 기능을 갖추고 있지만, 특정 영역에서는 개선이 필요합니다.

  • 구조화된 템플릿: 현재 Ruby의 ERB 파일은 HTML을 문자열 보간 방식으로 처리하여 구조적 이해나 유효성 검사가 어렵습니다. Herb와 같은 구조화된 HTML 템플릿은 인간 개발자뿐만 아니라 에이전트에게도 큰 이점을 제공합니다.

  • 통합된 문서화: Ruby의 문서화는 접근성이 떨어지고 표준 API가 부족합니다. 런타임에서 문서화를 가져올 수 있는 API와 Ruby, Rails, 모든 Gem의 문서가 통합된 단일 웹사이트는 인간과 에이전트 모두에게 큰 도움이 될 것입니다.

결론

Jose Valim은 코딩 에이전트의 등장으로 개발 도구에 대한 기본적인 질문을 다시 던지게 되었으며, 이는 문서화, 구조화된 템플릿과 같은 영역에서 새로운 개선 기회를 제공한다고 결론지었습니다. AI는 개발 프로세스에 충분한 변화를 가져와 우리가 기존의 개발 방식을 재고하고 개선할 수 있는 동기를 부여합니다. 궁극적으로, 이러한 발전은 개발자들이 차세대 개발 도구를 구축하도록 영감을 주어, 더욱 생산적이고 효율적인 개발 환경을 조성할 것입니다.

댓글 0

로그인이 필요합니다

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

로그인 하러 가기

아직 댓글이 없습니다

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