Code Mode — LLM이 코드를 실행하는 새로운 에이전트 패러다임
📺 원본 영상: Code Mode - Sunil Pai, Cloudflare 🎙️ 채널: AI Engineer 📅 정리 일자: 2026-04-20 ⚠️ Note: 본 리포트는 영상의 음성을 텍스트로 변환(STT)하여 정리한 것입니다. 화면에 표시된 자료(차트, 코드, 슬라이드 등)는 포함되지 않을 수 있습니다.
개요
Cloudflare에서 AI 에이전트를 개발하는 Sunil Pai는 이 강연에서 “코드 모드(Code Mode)“라고 부르는 새로운 에이전트 상호작용 방식을 소개한다. 핵심 아이디어는 간단하다. LLM이 도구(tool)를 JSON 형태로 하나씩 호출하는 대신, 실행 가능한 코드(주로 JavaScript)를 직접 생성하고, 그 코드를 안전한 샌드박스 환경에서 즉시 실행하는 것이다. 이 접근법은 단순한 최적화 기법을 넘어, 인간과 시스템이 상호작용하는 방식 전반을 재정의할 가능성을 지닌다.
도구 호출의 한계 — 규모가 커질수록 무너진다
AI 에이전트를 처음 만들 때, 도구 호출(tool calling) 방식은 직관적이고 깔끔하게 느껴진다. 두세 개의 도구와 짧은 실행 흐름이라면 문제가 없다. 그러나 현실의 엔터프라이즈 환경에서는 Google 서비스, Jira, 내부 Wiki, 각종 SaaS API가 뒤섞이고, 수백 개의 도구 정의가 컨텍스트를 가득 채우기 시작한다. Sunil Pai에 따르면, 이 순간부터 시스템은 이상하게 작동하기 시작한다. 도구 간 조합이 비직관적으로 이루어지고, 모델과의 왕복 통신(round-trip)이 반복되면서 전체 응답 속도가 급격히 저하된다.
이 문제는 Cloudflare가 직접 겪으면서 실감했다. Cloudflare의 API 표면은 약 2,600개의 엔드포인트로 구성되어 있다. 이 모두를 개별 도구로 노출하면 첫 번째 API 호출에서만 약 120만 토큰이 소비된다. 현실적으로 전체 Cloudflare API 표면을 위한 MCP(Model Context Protocol) 서버를 만드는 것은 불가능에 가깝다. 이 막다른 상황이 코드 모드 아이디어의 출발점이 되었다.
코드 모드란 무엇인가 — JSON 대신 코드로 말하다

02:13 - JSON 왕복 방식 대신 코드를 생성하는 코드 모드 개념 설명 슬라이드
Sunil Pai의 동료 Matt Carey가 제안한 해법은 우아하게 단순하다. 수천 개의 개별 도구 대신, 딱 두 개의 도구만 노출한다. search와 execute. 두 도구 모두 코드 문자열을 입력으로 받는다. search에는 OpenAPI JSON 스펙 전체를 입력으로 전달하고, execute는 실제 API를 호출하는 함수들의 집합을 제공한다. 모델은 자연어 요청을 받으면, 이 두 도구를 활용해 어떤 엔드포인트를 어떤 순서로 호출할지를 코드로 작성하고 한 번에 실행한다.

03:27 - Cloudflare API 2600개 엔드포인트를 search/execute 두 도구로 압축하는 아키텍처 다이어그램
결과는 극적이었다. 120만~150만 토큰이 필요하던 첫 요청이 약 1,000토큰으로 줄었다. 99.9%에 가까운 감소다. 강연자는 이것이 단순한 압축이 아니라, 모델이 직접 필요한 정보를 탐색하고 코드로 표현하는 능력 덕분이라고 설명한다.

04:01 - 1.2~1.5M 토큰 → 1000 토큰 감소 결과 수치 설명
코드라는 매개체가 가져다주는 이점은 토큰 절약만이 아니다. 코드에는 타입 API가 존재하므로 타입 검사가 가능하고, 문법 오류는 즉시 감지된다. 모델은 이미 방대한 양의 코드 데이터로 학습되어 있어 코드 생성에 자연스럽게 특화되어 있다. 무엇보다, 루프, 상태 보유, 시퀀싱, 병렬 처리 같은 기능들을 코드로 한 번에 표현할 수 있다. JSON 도구 호출 방식에서 이 모든 것을 구현하려면 복잡한 오케스트레이션 레이어가 필요하지만, 코드에서는 그냥 코드를 짜면 된다.
DDoS 대응 시나리오 — 코드 모드의 실전 적용
강연자가 제시한 실제 사용 사례는 설득력이 높다. 새벽 세 시, 웹사이트가 DDoS 공격을 받고 있다. 담당 엔지니어는 Cloudflare 대시보드를 열고 수많은 메뉴를 뒤지는 대신, 에이전트에게 이렇게 말한다. “공격 중인 모든 악성 IP를 찾아서 전부 차단해 줘.”
기존 MCP 방식으로는 이 작업을 수행하기 위해 약 여덟 번의 API 왕복 통신이 필요하다. 반면 코드 모드에서는 모델이 JavaScript 코드를 생성하고, 이 코드가 API 표면 바로 옆에서 즉시 실행되어 한 번에 완료된다. 패닉 상태의 엔지니어에게 메뉴를 찾아 헤매게 할 시간도, AE에게 연락할 여유도 없을 때, 이 차이는 실질적인 비즈니스 임팩트로 이어진다.
💡 [영상 참조] 강연자는 이 시점에서 라이브 데모를 시도하며 실제 MCP 서버를 통해 “list my workers” 명령을 실행하는 화면을 보여줍니다. 데모 중 JavaScript 페이지네이션 오류가 발생하는 등 예상치 못한 상황이 벌어졌으나, 결국 작동 원리 자체는 확인되었습니다. 상세 내용은 원본 영상을 확인하세요.

06:08 - 라이브 데모 - MCP 서버를 통한 workers 목록 조회 코드 실행 화면
더 깊은 함의 — LLM이 허물고 있는 경계
코드 모드가 단순한 엔지니어링 최적화 이상의 의미를 지닌다는 것을 Sunil Pai는 한 가지 대비를 통해 설명한다. 프로그래머가 “데스크탑에 사진 200장이 있는데 분류하고 이름을 바꿔줘”라는 요청을 받으면, IDE를 열고 스크립트를 짜서 비전 모델에 이미지를 넘기고, 캡션을 받아 파일명을 변경하는 작업을 순식간에 해결한다. 하지만 강연자의 어머니는 이렇게 할 수 없다. 정확히 그 기능만 하는 앱은 세상에 없고, 범용 사진 관리 앱은 월 7달러에 불필요한 기능만 가득하다.
이 이분법은 지금까지 당연하게 여겨졌다. 기술 비숙련자는 다수를 위해 만들어진 인터페이스를 사용하고, 프로그래머만이 시스템을 자유롭게 조작할 수 있었다. LLM은 이 경계를 허물고 있다. 누구나 자연어로 “파일 이름을 날짜와 위치 기반으로 바꿔줘”라고 말하면, LLM이 코드를 생성하고 해당 시스템에서 실행한다. 지구상의 모든 사람이 이제 시스템과 상호작용하는 코드를 만들어낼 수 있는 파트너를 갖게 된 것이다.
Kenton의 틱택토 — 상태 기계 속으로 들어가다
이 아이디어가 내포하는 더 기묘하고 심오한 가능성을 강연자는 동료 Kenton(Cloudflare Workers의 창시자)의 사례를 통해 설명한다. Kenton은 스스로를 위한 바이브 코딩(vibe coding) 환경을 구성하고, tldraw·Excalidraw 스타일의 캔버스를 생성했다. 그리고 캔버스 위에 틱택토 판을 직접 그린 뒤, LLM에게 “나랑 틱택토 게임을 해”라고 요청했다.
모델의 첫 반응은 예측 가능했다. 틱택토 앱 코드를 생성하기 시작한 것이다. Kenton은 즉시 이를 멈췄다. “아니, 네가 시스템 전체 상태에 접근할 수 있잖아. 그 상태를 보고 나랑 게임을 해.” 시스템의 상태는 단순히 스트로크(획)의 배열이었다. 격자선 좌표, X 획, 등등. 모델은 이 데이터를 자신의 컨텍스트로 읽어들이더니 “이게 틱택토 판처럼 보이고, 왼쪽 상단에 X가 있네요. 가운데에 O를 그릴게요”라고 응답했다.
이 순간이 강연자에게 충격적이었던 이유는, 시스템 어디에도 틱택토 게임 로직 코드가 없었다는 점이다. 모델은 별도의 앱을 만들지 않고, 시스템이 노출한 상태 기계(state machine) 자체 속으로 들어가 게임을 플레이했다. Sunil Pai는 이를 이렇게 표현한다. 모델이 “프로그램을 생성하는 것을 멈추고, 상태 기계 안에 깃들기 시작했다(stopped generating a program, and instead started inhabiting the state machine).” 여기에는 애니메이션 영화 《공각기동대(Ghost in the Shell)》의 은유가 담겨 있다.

10:27 - Kenton의 틱택토 사례 - tldraw 캔버스 위에서 LLM이 상태 기계를 직접 조작하는 화면
여담으로, 이후 reasoning trace를 확인해보니 Claude Opus가 Kenton에게 일부러 게임을 져줬다는 사실이 밝혀졌다고 한다. 이는 정렬(alignment) 관점에서 또 다른 흥미로운 주제를 열어젖히지만, 이 강연의 범위는 아니다.
하네스 아키텍처 — 새로운 소프트웨어 구조
이런 흐름을 인식한 개발자들은 최근 너도나도 “하네스(harness)“라고 부르는 것을 만들고 있다. 강연자에 따르면, 지난 3~6개월 사이 많은 팀이 코딩 에이전트가 범용 컴퓨팅 기계로서 탁월하다는 사실을 깨달았다. Claude Code를 Raspberry Pi나 Mac Mini에서 돌리는 사람들이 늘어나고 있는데, 강연자는 “API 호출 정도를 위해 400달러짜리 머신을 살 필요는 없다”며 웃음 섞인 지적을 한다.
하네스의 핵심 구조는 단순하다. 모델이 코드를 생성할 수 있고, 그 코드를 안전하게 실행할 수 있는 공간이 있으며, 그 공간 안에 특정 기능(capability)만 명시적으로 노출된다는 것이다. 이 실행 공간을 “샌드박스(sandbox)“라고 부른다.
샌드박스와 역량 기반 보안 — 코드 모드의 안전 장치
이 샌드박스는 기존의 컨테이너 개념과는 출발점이 다르다. 컨테이너는 온갖 기능을 갖추고 시작해서 외부에서 보안을 씌우는 방식이지만, 코드 모드의 샌드박스는 아무 능력도 없이 시작한다. 코드 실행 자체만 가능하고, 외부 네트워크 호출도, 노출된 API도 아무것도 없다. 여기서 필요한 기능만 명시적으로 부여한다. 이를 역량 기반 보안(capability-based security)이라 한다.
Cloudflare는 이 용도로 V8 isolate를 사용한다. V8 isolate는 시작 속도가 매우 빠르고, 10년 이상의 보안 강화 역사를 지니고 있다. 하지만 강연자는 특정 기술 스택이 핵심이 아님을 강조한다. WebAssembly나 커스텀 JavaScript 인터프리터를 써도 된다. 중요한 것은 속성이다. 샌드박싱, 역량 기반 보안, 빠른 시작과 일회성 실행(ephemeral execution).

13:35 - 샌드박스 역량 기반 보안 아키텍처 다이어그램 - capabilities를 명시적으로 부여하는 구조
또 하나의 핵심 요구사항은 **완전한 관측 가능성(observability)**이다. 강연자는 다소 유머러스하게 표현한다. “왜 지난 화요일에 에이전트가 230만 달러어치 ‘라마 배설물’을 거래했는지 알아야 한다.” 에이전트가 실행한 모든 코드, 그 결과, 그 경로를 완전히 추적할 수 있어야 한다는 것이다.
생성형 UI — 모든 사용자에게 맞춤 인터페이스를
코드 모드와 하네스 아키텍처가 가져오는 가능성 중 하나는 생성형 UI(Generative UI)다. 강연자는 e-커머스를 예시로 든다. 서비스 규모가 커질수록 UI는 점점 모든 사람을 위한 최소 공통 분모 형태로 수렴한다. ML 팀을 데려와 “이 사용자에게는 버튼 색을 바꿔보면 어때요?”라는 수준의 A/B 테스트를 하는 것이 현실이다.
코드 모드에서는 다르다. 사용자의 컨텍스트 전체—취향, 장바구니 상태, 불만 요인—를 파악한 뒤, 그 사람에게 최적화된 UI를 그 자리에서 코드로 생성할 수 있다. “이 신발을 반품하고 100달러 미만의 비슷한 걸 찾아줘”와 “내 배송이 왜 이렇게 늦어?”는 완전히 다른 UI를 필요로 한다. 이 두 요청을 하나의 범용 인터페이스로 처리할 필요가 없어지는 것이다.

15:40 - 생성형 UI 예시 - 사용자별 맞춤 인터페이스 생성 슬라이드
💡 [영상 참조] 강연자는 이 시점에서 Claude Opus가 생성한 생성형 UI 슬라이드를 보여주며 “이걸 Opus에게 만들게 했는데 여전히 좀 이상하게 생겼다”고 언급합니다. 상세 내용은 원본 영상을 확인하세요.
다음 10억 명의 사용자는 AI 에이전트다
강연의 후반부는 조금 더 철학적인 방향으로 흐른다. 강연자는 시스템을 설계하는 개발자들에게 중요한 관점 전환을 촉구한다. 지금까지 개발자들은 인간 사용자를 위해 버튼과 폼을 만들었다. 그러나 코드 모드 세계에서는, 시스템을 실제로 활발하게 호출하는 것은 AI 에이전트—작은 로봇들—가 될 것이다.
이들은 pub(술집)에 모이지 않는다. 레지스트리(registry)에 산다. 타입과 문법 오류로 꿈을 꾼다. 따라서 에이전트를 위한 개발자 경험(DX)을 설계해야 한다는 것이다. 강연자가 꼽은 실천 항목들은 다음과 같다.
- Markdown 형태의 문서화 (에이전트가 파싱하기 좋은 형태)
- 에이전트가 다음 행동을 알 수 있게 해주는 명확한 에러 메시지
- 검색을 통한 기능 탐색 가능성 (discoverability)
- 그리고 무엇보다, 역량 기반 보안(capability-based security)을 시스템 설계의 핵심으로 삼는 것
강연자는 이 흐름에서 UI 개발자, 특히 React 프로그래머들이 의외의 강점을 가질 것이라고 본다. 오랜 기간 사용자와 가장 가까운 레이어에서 일해온 경험이, 에이전트-인간 상호작용 설계에서 핵심 역량이 될 수 있다는 것이다.
마무리 — eval의 귀환, 그리고 새로운 연구 영역
Sunil Pai는 강연을 마무리하면서 이 모든 변화를 역사적 맥락에서 짚는다. 우리는 30년 동안 소프트웨어의 특정 기술 트리를 탐색하지 않았다. eval()이 너무 위험했기 때문이다. 이제 우리에게는 안전한 eval이 있고, 코드를 생성해주는 LLM이 있다. 지금까지 프로그래머만이 시스템을 자유롭게 조작할 수 있었던 특권은 해체되고 있다. 코드가 인간과 시스템 사이의 새로운 공용어가 되는 세계에서, 핵심은 단순하다. “코드가 말하게 두어라(Let the code do the talking).”
강연자는 이것이 아직 열려 있는 연구 영역이라는 점을 솔직하게 인정한다. 방향은 보이지만, 그 끝이 어디인지는 아직 모른다. 그리고 그 불확실성 자체가 흥미롭다는 말로 강연을 맺는다.
📚 출처 및 참고
| 구분 | 내용 |
|---|---|
| 원본 영상 | Code Mode - Sunil Pai, Cloudflare |
| 채널 | AI Engineer |
| 발표자 | Sunil Pai (Cloudflare, AI Agents 담당) |
| 리포트 작성 | 2026-04-20 |
| 작성 방식 | YouTube 영상 STT 변환 후 에디팅 |
💬 본 리포트는 영상 내용을 바탕으로 재구성되었습니다. 정확한 내용은 원본 영상을 참조해 주세요.
STT 교정 주석
본 리포트 작성 과정에서 다음 STT 오류를 교정했습니다.
| STT 원본 | 교정 | 근거 |
|---|---|---|
| wipe coding | vibe coding (바이브 코딩) | 혼자 AI와 코딩하는 최신 트렌드를 지칭하는 문맥 |
| Tlraw, Excalibraw | tldraw, Excalidraw | 널리 알려진 오픈소스 캔버스 라이브러리 |
| [06:52] Mythos model | 불명확 (Claude Opus 모델일 가능성 있음) | “pay for the [model]” 문맥상 유료 API 모델 지칭. 원본 영상 확인 권장 |
Related Reports
- Every API Is a Tool for Agents - Matt Carey, Cloudflare
- Why Eval++ Is the Next Great Compute Primitive — Sunil Pai & Matt Carey, Cloudflare
- Give Your Agent a Computer — Nico Albanese, Vercel
- Beyond Components - Designing Generative UI for MCP Apps — Ruben Casas, Postman
- Why, and how you need to sandbox AI-Generated Code — Harshil Agrawal, Cloudflare