Claude Code, Codex CLI 같은 코딩 에이전트를 최대한 활용하기 위한 ‘에이전틱 루프’ 설계의 핵심을 정리한다. YOLO 모드의 위험과 안전한 실행 방법, 루프에 맞는 도구 선정, 범위가 엄격히 제한된 자격 증명 발급, 적용하기 좋은 문제 유형을 다룬다.
2025년 9월 30일
Anthropic의 Claude Code와 OpenAI의 Codex CLI 같은 코딩 에이전트는 동작하는 코드를 만들어내는 데 있어 LLM의 유용성을 진정으로 한 단계 끌어올렸다. 이들 에이전트는 자신들이 작성하는 코드를 직접 실행하고, 오류를 수정하고, 기존 구현 세부를 파고들며, 심지어 실험을 통해 문제에 대한 효과적인 코드 해법을 찾아낼 수 있다.
현대 AI에서 흔히 그렇듯, 이 새로운 도구들의 잠재력을 완전히 끌어내기 위해서는 꽤 깊은 이해가 필요하다.
여기서 길러야 할 중요한 새로운 기술은 바로 에이전틱 루프를 설계하는 것이다.
코딩 에이전트를 바라보는 한 가지 방식은, 코딩 문제의 해법을 찾기 위한 브루트포스(무차별 대입) 도구라는 것이다. 문제를 명확한 목표와 그 목표를 향해 반복적으로 접근할 수 있는 도구 집합으로 환원할 수 있다면, 코딩 에이전트는 종종 브루트포스로 효과적인 해법에 도달할 수 있다.
내가 선호하는 LLM 에이전트의 정의는 목표를 달성하기 위해 도구를 루프로 실행하는 것이다. 이를 잘 쓰는 기술은 에이전트가 사용할 도구와 루프를 세심하게 설계하는 일이다.
에이전트는 본질적으로 위험하다—엉뚱한 결정을 내리거나 악성 프롬프트 인젝션 공격에 당해 도구 호출이 해로운 결과를 낳을 수 있다. 가장 강력한 코딩 에이전트 도구가 “셸에서 이 명령을 실행”이기 때문에, 일탈한 에이전트는 여러분이 직접 명령을 실행해 할 수 있는 일이라면 무엇이든 할 수 있다.
솔로몬 하이크스의 말을 인용하자면:
AI 에이전트는 LLM이 루프를 돌며 자신의 환경을 망가뜨리는 것이다.
Claude Code 같은 코딩 에이전트는 이를 상쇄하기 위해 기본적으로 실행하는 거의 모든 명령에 대해 여러분의 승인을 요청한다.
이는 다소 번거롭기도 하지만, 더 중요한 것은 브루트포스로 문제를 푸는 효율을 극적으로 떨어뜨린다는 점이다.
각 도구는 내가 YOLO 모드라고 부르는 자체 버전을 제공한다. 이 모드에서는 기본적으로 모든 것이 자동 승인된다.
이건 매우 위험하지만, 동시에 가장 생산적인 결과를 얻는 데 핵심이기도 하다!
감시 없이 YOLO 모드를 돌릴 때 고려해야 할 주요 위험은 다음 세 가지다.
그럼에도 YOLO 모드를 쓰고 싶다면 몇 가지 선택지가 있다:
대부분은 3번을 선택한다.
컨테이너 이스케이프가 존재하긴 하지만, 대부분의 사람에게 옵션 1—Docker나 Apple의 새로운 container 도구를 사용하는 것—은 수용할 만한 위험이라고 생각한다.
나는 2번을 가장 선호한다. GitHub Codespaces를 즐겨 쓰는데, 브라우저로 접근 가능한 온디맨드 전체 컨테이너 환경을 제공하고 무료 티어도 넉넉하다. 문제가 생겨도 어딘가의 Microsoft Azure 머신이 CPU를 태울 뿐이고, 최악의 경우 그 환경에 체크아웃한 코드가 공격자에게 유출되거나, 연결된 GitHub 저장소로 잘못된 코드가 푸시될 수 있는 정도다.
남의 컴퓨터에서 코드를 실행하는 에이전트 유사 도구는 충분히 많다. ChatGPT와 Claude의 Code Interpreter 모드는 이 측면에서 놀랄 만큼 멀리 갈 수 있다. OpenAI의 Codex Cloud를 (약간 악용해) 써서도 많은 성과를 냈다.
코딩 에이전트 자체도 다양한 수준의 샌드박싱을 구현하지만, 지금까지는 그것을 신뢰하기에 충분히 설득력 있는 문서를 보지 못했다.
업데이트: Anthropic이 Claude Code를 위한 안전한 YOLO 모드 문서를 제공하고 있었다. 문서에서는 이렇게 말한다:
Claude가 임의의 명령을 실행하도록 허용하는 것은 위험하며, 데이터 손실, 시스템 손상, 심지어 데이터 유출(예: 프롬프트 인젝션 공격)을 초래할 수 있습니다. 이러한 위험을 최소화하려면, 인터넷 접근이 없는 컨테이너에서
--dangerously-skip-permissions를 사용하세요. Docker Dev Containers를 이용한 이 레퍼런스 구현을 따를 수 있습니다.
인터넷 접근을 신뢰하는 호스트 목록으로 잠그는 것은, 비공개 소스 코드를 훔치는 유출 공격을 막는 훌륭한 방법이다.
YOLO 모드를 안전하게(충분히) 실행할 방법을 찾았다면, 다음 단계는 코딩 에이전트에게 어떤 도구를 제공할지 결정하는 일이다.
이 지점에서 MCP를 도입할 수도 있지만, 나는 보통 셸 명령 관점으로 생각하는 편이 더 생산적이었다. 코딩 에이전트는 셸 명령 실행에 정말 능숙하다!
환경이 필요한 네트워크 접근을 허용한다면, NPM과 PyPI 같은 곳에서 추가 패키지를 내려받아 쓸 수도 있다. 임의의 패키지 설치가 메인 컴퓨터를 망가뜨리지 않도록 에이전트를 어떤 환경에서 돌릴지 역시 중요하다!
MCP에 기대기보다는, 에이전트가 쓸 법한 패키지들의 사용법을 적어둔 AGENTS.md 같은 파일을 만들어두는 걸 좋아한다.
여러 웹사이트의 스크린샷을 찍는 프로젝트에서는 내가 만든 shot-scraper CLI 도구를 설치하고 AGENTS.md에 다음 내용을 적어두었다:
스크린샷을 찍으려면 다음을 실행:
shot-scraper http://www.example.com/ -w 800 -o example.jpg
이 한 가지 예시만으로도 에이전트는 다른 스크린샷을 위해 URL과 파일 이름을 어떻게 바꿔야 할지 충분히 짐작한다.
성능이 좋은 LLM은 이미 놀랄 만큼 다양한 기존 도구 사용법을 알고 있다. “playwright python을 써라” 또는 “ffmpeg를 써라”라고 지시하면, 대부분의 모델은 그것을 효과적으로 활용한다—그리고 루프를 돌면서 초기의 실수에서 회복하고 추가 지시 없이도 올바른 주문을 스스로 찾아내곤 한다.
올바른 명령을 노출하는 것 외에도, 그 명령들에 어떤 자격 증명을 노출해야 할지 고민해야 한다.
이상적으로는 자격 증명이 아예 필요 없도록 하는 게 좋다—사실 서명하거나 API 키 없이도 할 수 있는 작업이 많다—하지만 어떤 문제는 인증이 꼭 필요하다.
이 주제는 그 자체로도 깊지만, 여기서는 두 가지 핵심 권고만 제시하겠다:
예시로 설명해 보겠다. 얼마 전 나는 Fly.io에서 스케일 투 제로 애플리케이션의 콜드 스타트가 느린 문제를 조사하고 있었다.
Claude Code에게 Dockerfile을 직접 수정하고, Fly 계정에 배포하고, 기동 시간을 측정할 수 있게 해주면 훨씬 빨리 일할 수 있겠다고 판단했다.
Fly는 조직을 만들 수 있고, 그 조직별로 예산 한도를 설정할 수 있으며, 해당 조직 안에서 앱을 만들거나 수정하는 권한만 있는 Fly API 키를 발급할 수 있다...
그래서 이번 조사만을 위한 전용 조직을 만들고, 예산을 5달러로 설정하고, API 키를 발급한 뒤 Claude Code를 마음껏 돌렸다!
그때의 결과는 자세히 쓸 만큼 유용하진 않았지만, 이 프로젝트를 통해 “에이전틱 루프를 설계하는 것”이 꼭 길러야 할 중요한 기술임을 처음 자각했다.
모든 문제가 이 작업 패턴에 잘 반응하는 것은 아니다. 여기서 눈여겨봐야 할 것은 명확한 성공 기준이 있고, 좋은 해법을 찾기 위해 (다소 지루할 수도 있는) 시행착오가 필요할 가능성이 높은 문제다.
“어휴, 여기선 변형을 잔뜩 시도해봐야겠네”라는 생각이 든다면, 에이전틱 루프를 시도할 가치가 있다는 강력한 신호다!
몇 가지 예시:
이 모든 예시의 공통 주제는 자동화된 테스트다. 코딩 에이전트와 기타 LLM 코딩 도구의 가치는, 깔끔하게 통과하는 좋은 테스트 스위트가 있을 때 비약적으로 증폭된다. 다행히 LLM은 아직 테스트가 없다면 그것을 빠르게 갖추는 과정도 훌륭히 가속해 준다.
에이전틱 루프를 설계하는 것은 매우 새로운 기술이다—Claude Code가 처음 공개된 것이 불과 2025년 2월이다!
이 개념에 분명한 이름을 붙임으로써, 이를 둘러싼 생산적인 대화를 나누는 데 도움이 되길 바란다. 이 도구들을 가능한 한 효과적으로 사용하는 방법에 관해 우리가 더 알아내야 할 것은 정말 많다.