그래프 엔지니어링 팩트체크 - Loop Engineering은 끝났나? : 루프 vs 그래프, LangGraph, Anthropic 패턴, 가짜 수치 걸러내기
- -
안녕하세요! 갓대희입니다.

지난 글에서 루프 엔지니어링(loop engineering)을 정리했다.
"AI한테 매번 시키지 말고, AI를 시키는 시스템을 짜라"는 이야기였다.
그 글을 올린 지 두 달이 채 안 됐는데, 벌써 다음 이름이 나왔다.
그래프 엔지니어링(graph engineering)이다.
솔직히 처음 반응은 피곤함이었다.
또 엔지니어링? 프롬프트에서 컨텍스트, 하네스, 루프로 넘어오더니 이제 그래프다.
이름만 6주에 한 번씩 갈아끼우는 느낌이다.
자료를 정리하다 보니 황당했다. 이 말을 퍼뜨린 두 사람 다 농담이었다. 이름 좀 그만 바꾸자는 비꼼인데, 이틀 만에 강의·로드맵이 붙고 가짜 수치까지 따라붙었다.
앞 단계가 사라진 게 아니라 겹친다
그렇다고 "다 헛소리"로 끝내긴 아깝다. 농담으로 시작했어도, 그래프 엔지니어링 안에도 충분히 건져갈 인사이트가 있다. 그 부분만 추려 보겠다.
- 이름은 2026년 7월 18일 X의 한 줄짜리 농담에서 나왔다. Peter Steinberger, Hamel Husain 둘 다 비꼰 것이다.
- 도구는 이미 있었다. LangGraph는 2024년 1월부터 있었고, 지금 월 6,500만 회 내려받는다.
- 돌던 수치 상당수가 가짜다. "정확도 18%↑·비용 85%↓"는 산업 도면 한 종류 연구를 일반화한 것이다.
- 루프도 이미 그래프다. 자기 자신으로 돌아오는 그래프일 뿐이라, 다음 세대로 갈아탄 게 아니다.
- 그래도 배울 게 있다. 작업 단계가 늘어나는 경우가 세 가지 있고, 그때 루프로는 못 하는 일이 네 가지 생긴다.
- 배울 땐 유행어 말고 공식 문서를 봐라. Anthropic Building Effective Agents에 같은 패턴이 다이어그램까지 먼저 정리돼 있다.
- 대신 비용이 는다. 병렬로 늘어나는 건 AI 숫자지, 그걸 읽는 사람 눈이 아니다.
목차
- 노드(node): 일을 하는 단계(상자) 하나. 에이전트일 수도, 그냥 명령어일 수도, 사람의 승인일 수도 있다.
- 엣지(edge): 단계와 단계를 잇는 선. 다음에 어디로 갈지를 정한다.
- 조건부 엣지(conditional edge): 결과에 따라 갈라지는 선. 테스트가 깨졌으면 A로, 서버가 죽었으면 B로.
- 상태(state): 단계 사이에 실려 다니는 데이터 꾸러미. 뭘 했고 뭐가 남았는지가 여기 적힌다.
- 체크포인트(checkpoint): 상태를 저장해 두는 지점. 멈췄다가 그 자리에서 다시 시작할 수 있게 해준다.
- 인터럽트(interrupt): 사람이 답할 때까지 잠깐 멈추라는 표시.
- 팬아웃·팬인(fan-out·fan-in): 한 갈래를 여러 갈래로 펼쳐 동시에 돌리고, 끝나면 다시 하나로 합치는 것.
1. 농담 한마디가 2주 만에 로드맵이 되기까지

시작은 2026년 6월 7일이다.
Addy Osmani가 Loop Engineering을 발행했고, 지난 글은 그걸 정리한 것이었다.
Osmani의 정의는 이렇다.
"Loop engineering is replacing yourself as the person who prompts the agent."
(루프 엔지니어링이란 에이전트에게 프롬프트를 쓰는 그 사람 자리에서 당신을 빼내는 것이다.)
빨래 건조기를 떠올리면 쉽게 이해될 것이다. 매 분 "더 돌려, 그만 돌려"라고 말하지 않는다. "이만큼 마르면 멈춰"라는 조건만 걸어두면 알아서 돌아간다.
루프가 한 바퀴 도는 모양은 발견 → 분류 → 수정 → 검증이고, 이걸 굴리는 부품들이 있다.
- 오토메이션: 정해진 시각에 알아서 '시작' 버튼을 누른다.
- 워크트리: AI마다 책상을 따로 줘서 서로 덮어쓰지 않게 한다.
- 스킬: 프로젝트 지식을 적어둬, 매번 처음부터 설명하지 않게 한다.
- 플러그인·커넥터: PR을 열고 티켓을 갱신할 손발을 달아준다.
- 서브에이전트: 만드는 AI와 검사하는 AI를 일부러 나눈다.
- 상태 파일: 어제 멈춘 곳에서 잇게 해주는 기억이다.
마지막 부품을 Osmani는 한 문장으로 정리했다. "The agent forgets, the repo doesn't." (에이전트는 잊어도, 저장소는 잊지 않는다.) 이 문장이 뒤에 나올 체크포인트 이야기의 뿌리다.
그로부터 6주 뒤인 7월 18일, OpenClaw를 만든 Peter Steinberger가 X에 한 줄을 올렸다.
"Are we still talking loops or did we shift to graphs yet?"
(우리 아직 루프 얘기 중인가, 아니면 벌써 그래프로 넘어갔나?) — Peter Steinberger
그리고 같은 날, 몇 시간 뒤에 AI 평가(eval)로 알려진 Hamel Husain이 받아쳤다.
"Loop Engineering Is Dead. Enter Graph Engineering."
(루프 엔지니어링은 죽었다. 그래프 엔지니어링이 왔다.) — Hamel Husain
사실 이건 두 사람의 가벼운 티키타카였다. 슈타인베르거는 유행어가 바뀌는 속도를 꼬집은 것이고, 후세인은 그 드립을 냉큼 받아쳐 한 술 더 뜬 것일 뿐이다.
형식부터가 그렇다. 후세인이 올린 건 진지한 분석 글이 아니라 한 줄짜리 '가짜 부고'에 가깝고, 본문도 사실상 비어 있었다.
문제는 그다음인데, 주말이 채 지나기도 전에 타임라인에는 관련 강의와 로드맵, 툴 스택(Tool stack)이 쏟아져 나왔다.
마이크로소프트, 스탠퍼드, 앤트로픽(Anthropic)이 동시에 그래프 엔지니어링을 발견했다는 스레드까지 돌기 시작했다. 장난으로 던진 농담이 단 이틀 만에 정식 커리큘럼이 되어버린 꼴이 됐다.
한국어 해설 영상들은 대체로 "둘 다 농담이었다"에서 이야기를 맺는다. 그런데 찾다 보니 걸리는 게 하나 있었다.
Josh Simmons가 쓴 We are entering the graph engineering phase는 글에 적힌 날짜가 7월 4일이다. Steinberger의 농담보다 2주 앞선다.
다시 말하면, 이 말을 진지하게 쓰던 사람은 이미 있었다. 농담이 그걸 유행으로 만들었을 뿐이다. 농담이 없었으면 아마 조용히 묻혔을 것이다.
- 6월 7일 — Addy Osmani, Loop Engineering 발행.
- 7월 18일 — Steinberger의 한 줄. 몇 시간 뒤 Husain의 "부고".
- 7월 20일 무렵 — 강의·로드맵·툴 스택 등장. 가짜 통계 확산.
- 7월 22일 — LangChain이 공식 블로그로 답한다 — "새 개념 아니다."
7월 22일, LangChain이 3 Years of Graph Engineering with LangGraph를 냈다. 제목부터가 답이다.
"Graph engineering isn't a new idea. It's the latest name for a well established approach to building reliable agents."
(그래프 엔지니어링은 새 아이디어가 아니다. 믿을 만한 에이전트를 만드는, 이미 자리 잡은 방식에 붙은 가장 최근의 이름일 뿐이다.) — LangChain
같은 글에서 LangGraph를 "3년 전부터 만들어 왔다"고 적었고, 지금 월 6,500만 회 이상 내려받힌다고 밝혔다.
공개된 패키지 기록으로는 2024년 1월이 첫 자취다. 대략 2년 반 전이다. 어느 쪽으로 세든, 이번 유행보다 한참 앞선다.
그런데 개발자들은 별 반응이 없었다
X 타임라인은 뜨거웠는데, 개발자 커뮤니티는 조용했다. 확인하려고 Hacker News 검색 API를 돌려 봤다.
"graph engineering"이라는 정확한 문구로 걸리는 글은 단 네 건이다.
그중 둘은 2019년·2023년의 무관한 논문이고, 이번 유행에 해당하는 건 두 건뿐이다.
| 날짜 | 제목 | 점수 | 댓글 |
|---|---|---|---|
| 7월 21일 | Loop Engineering, Graph Engineering, and Layers That Matters | 5점 | 0개 |
| 7월 19일 | We are entering the graph engineering phase | 2점 | 0개 |
두 건 합쳐 7점이고, 둘 다 댓글이 0개다. 차이는 점수보다 댓글 수에 있다. 5점에 댓글 20개면 의견이 갈렸다는 뜻이지만, 5점에 댓글 0개는 거의 안 읽혔다는 뜻이다. 게다가 2점짜리는 글쓴이가 자기 글을 직접 올린 것이었다.
비교해 보면 차이가 뚜렷하다.
같은 곳에서 "loop engineering"으로 검색하면 45건이 나온다. 그중 하나는 37점에 댓글 10개가 달렸다.
그래프 엔지니어링은 X에서 유행했지, 개발자 커뮤니티에서 유행한 게 아니다.
소셜에서 본 열기와 실제 논의량이 이 정도로 어긋나는 경우도 드물다.
2. 먼저 걷어낼 것 — 떠도는 가짜 수치

본론에 들어가기 전에 숫자부터 걸러 보자.
- "그래프 엔지니어링 도입으로 정확도 18% 향상, 비용 85% 절감" — 두 숫자는 진짜다. 다만 출처가 화학 공정 배관 도면(P&ID)을 다룬 2026년 3월 논문이다. 게다가 둘은 비교 대상이 서로 다르다 — 18%는 이미지 원본과 비교한 값이고, 85%는 도면 파일을 통째로 넣는 방식과 비교한 값이다. 유행하는 문장은 이 둘을 하나의 도입 전후처럼 붙여 놨다. 그 논문에는 "graph engineering"이라는 말이 아예 나오지 않는다.
- "스탠퍼드·Anthropic 310만 달러 공동 연구" — 확인되지 않는다.
- "마이크로소프트가 RAG를 그래프로 교체했다" — GraphRAG 이야기인데 두 군데가 틀렸다. 마이크로소프트 스스로 GraphRAG를 "모듈형 그래프 기반 RAG 시스템"이라고 설명한다. RAG의 한 종류지 대체가 아니다. 게다가 2024년 2월에 발표된 것이라, 이번 유행보다 2년 넘게 앞선다.
- "스탠퍼드가 그래프 엔지니어링을 채택했다" — 스탠퍼드의 DSPy는 지식 그래프 시스템이 아니다.
- "Anthropic이 그래프 엔지니어링 서비스를 출시했다" — Anthropic이 그런 이름의 제품이나 분야를 발표한 적은 없다.
3. 루프도 이미 그래프다 — 세대 교체가 아니다

"루프 엔지니어링은 죽었다"는 말은 좀 어색하다. 이유는 단순하다.
"A loop is already a graph. It is simply a graph whose path returns to an earlier node."
(루프는 이미 그래프다. 경로가 앞선 노드로 되돌아가는 그래프일 뿐이다.) — Turingpost
지난 글에서 그린 파이프라인을 다시 보자.
Planner에서 Critic까지 상자가 늘어서 있고, 통과하지 못하면 Writer로 되돌아간다.
이건 형식적으로 이미 그래프다. 노드가 있고 엣지가 있으니까.
그래서 "여기까지는 루프고, 여기부터는 그래프"라고 가를 수 없다. 루프가 그래프의 한 종류이기 때문이다.

루프로 보면
완료 조건까지 반복한다. 경로가 앞 노드로 돌아올 뿐이다.
그래프로 보면
노드·엣지·갈래·합류. 루프는 그 안의 한 종류다.
세대 교체가 아니다 — 루프 ⊂ 그래프
그럼 하네스·루프·그래프는 서로 무슨 사이일까.
앞 기술이 사라지고 다음 기술이 등장하는 발전 단계가 아니다. 겹쳐 있는 개념이다.
| 이름 | 정체 | 비유 |
|---|---|---|
| 하네스 | AI가 실제로 일할 수 있게 만든 환경. 파일을 읽고 고치는 도구, 터미널, 기억, 권한과 안전 규칙. Claude Code·Codex가 여기 해당한다. |
작업장 |
| 루프 | 그 작업장 안에서 완료 조건을 걸어두고 반복시키는 방식. "테스트 12개가 다 통과할 때까지 고쳐라." |
건조기 |
| 그래프 | 작업이 흘러가는 관계를 미리 지도처럼 그려둔 것. A가 끝나면 B와 C로 갈리고, 둘 다 끝나면 D에서 합친다. |
지도 |
핵심은 셋이 겹친다는 점이다.
하네스라는 작업장 안에서 루프도 돌고, 그래프도 돈다. 그래프 안에 루프가 들어가기도 한다.
그래프라고 해서 여러 AI를 동시에 돌린다는 뜻도 아니다 — 에이전트 하나만 움직이는 그래프도 있고, 순서대로만 실행되는 그래프도 있다.
4. 그래도 남는 것 — 언제 그래프가 필요해지나
그래프 엔지니어링 안에도 충분히 건져갈 인사이트가 있다.

핵심 질문 하나는 이거다. 내 작업 단계가 언제부터 머릿속으로 안 그려지나?
여기서 말하는 상자(노드)는 거창한 게 아니다. 일을 하는 단계 하나이다.
초안 쓰기, 테스트 돌리기, 사람 승인 받기 — 각각이 한 단계다.
단계가 세 개면 머릿속으로 따라간다.
다섯 개도 괜찮다. 그런데 열 개가 되면 "실패하면 어디로 가지?"가 헷갈리기 시작한다.
그때 그래프가 필요해진다.
단계가 늘어나는 이유는 보통 아래 세 가지다.
■■■
단계 3개
머릿속으로 OK
■■■■■
단계 5개
아직 괜찮다
■■■■■■■■■■
단계 10개
못 따라감 → 지도(그래프) 필요


① 실패 원인이 여러 개일 때
루프에서는 뭔가 실패하면 보통 이전 단계로 되돌아간다.
그런데 실제 실무에서 실패는 한 종류, 단 한가지의 케이스 가 아니다.
테스트가 깨지고, 스펙이 모호하거나, 외부 서버가 죽은 것 등등 다양할 것 이다.
이런 것들을 구분하지 않고 전부 "이전 단계로 돌아가 다시 해봐"로 처리하면 루프가 이상해진다.
서버가 죽었는데?? 코드를 다섯 번 고치는 그런식이다.
원인마다 처리 방식이 달라야 한다.
그래서 "실패 종류 분류" 단계가 하나 생기고, 갈래마다 단계가 또 생긴다. 그래서 단계가 하나씩 더 붙는다.

② 일을 나눠 동시에 돌릴 수 있을 때
파일 다섯 개를 순서대로 고치면 느리다.
서로 안 얽혀 있다면 동시에 일을 시키고 마지막에 하나로 합치면 된다.
이때 "여러 갈래로 펼치는 단계(팬아웃)"와 "다시 모으는 단계(팬인)"가 추가된다.
파일 개수만큼 단계가 실행 중에 늘어나기도 한다.
③ 단계 사이에 넘길 기록이 필요할 때
이건 단계를 늘리는 이유라기보다, 단계가 늘면 같이 따라오는 숙제에 가깝다.

단계끼리 데이터를 주고받는데 형식이 제각각이면 읽고 쓰기가 힘들다. 그래서 통일된 형식의 상태 객체(작업일지)를 하나 정해 두고, 모든 단계가 그걸 조금씩 고쳐 다음으로 넘긴다.
이게 있으면 나중에 "계획보다 두 바퀴 더 돈 이유가 뭐였지"를 되짚을 수 있다.
한 번은 테스트 실패, 한 번은 외부 연결이 끊긴 것이었다는 식으로.

흔한 오해다. 테스트를 돌리는 단계는 그냥 npm test면 되고, 검색하는 단계는 grep이면 된다. 사람이 승인하는 단계가 끼어도 된다.
오히려 명령어로 끝날 일을 AI 단계로 만들면 손해다.
AI에는 늘 환각 위험이 따라붙는다.
"이 테스트 다 통과하는지 확인해 줘"라고 말로 시키는 것보다, 테스트 명령을 그냥 실행하는 쪽이 정확하다.
5. 루프로는 못 하고 그래프로는 되는 네 가지
"그냥 루프가 복잡해진 것 아닌가?" 어찌 보면 맞는 말이다. 다만 다른 지점이 하나 있다.
모든 절차를 미리 노드와 엣지로 코드에 적어둔다는 것.
Shell 스크립트로 짠 루프는 흐름이 실행 중에만 있다.
그래프는 그 흐름을 파일·코드로 남겨 두고, 돌리기 전에 검사하거나 중간에 이어서 할 수 있다.

그래서 네 가지가 가능해진다.

- 돌리기 전에 눈으로 검사한다. 그림으로 그려 놓고 막다른 길이나 멈춤 조건 없는 순환을 미리 잡아낸다.
- 멈췄다가 이어서 한다. 사람 승인이 필요한 지점에서 멈추고, 며칠 뒤 승인하면 그 자리에서 재개한다. 상태를 DB에 저장해 두기 때문이다.
- 되돌려서 다른 갈래로 다시 해본다. 처음부터가 아니라 갈림길에서부터.
- 단계를 갈아 끼운다. 쉬운 단계는 작은 모델, 어려운 단계는 큰 모델. 노드마다 모델을 달리 두면 토큰이 절약된다.
Shell로 돌리던 루프는 터미널을 실수로 닫거나 한도에 걸리면 그냥 끊기기 때문에 처음부터 다시 해야 한다.
그래프는 체크포인트가 있어 멈춘 자리부터 잇는다.
그럼 언제 루프에서 그래프로 넘어가야 할까? 답은 이전에 얘기 했었다.
작업 단계가 머릿속으로 안 그려질 때 — 예를 들면 열 개정도 되는 복잡한 단계라던지, "실패하면 어디로 가지?"등등의 루프가 헷갈리기 시작할 때가 아닐까. 이정도로 복잡한 순간이 아니라면 지금 방식으로 충분하다.
참고할 만한 공식 문서는 따로 있다
여기까지 읽고 "그래서 뭘 보고 배우나" 싶다면, "graph engineering"으로 검색하지 않는 편이 낫다는 생각이 들었다.
대신 같은 내용을 훨씬 먼저, 더 정확하게 정리한 문서가 있다.
하나는 Anthropic의 Building Effective Agents다. (이 글을 하나 제대로 이해하는게 더 좋은 것 같다.)

이 글이 정리한 워크플로 패턴 다섯 개가 사실상 그래프 엔지니어링이 말하려던 것이고, 패턴마다 다이어그램이 붙어 있다.
앞 절 ①②③에 그대로 대응되는 얘기인데 그중 두 장만 간단히 설명하고 넘어 가려 한다.


| 공식 패턴 이름 | 하는 일 | 이 글의 어디 |
|---|---|---|
| Routing | 입력을 분류해 각각 다른 후속 작업으로 보낸다. | ① 실패 원인이 여러 개일 때 |
| Parallelization | 여러 LLM이 동시에 일하고 결과를 프로그램이 합친다. | ② 일을 나눠 동시에 돌릴 수 있을 때 |
| Evaluator-Optimizer | 한쪽이 만들고 다른 쪽이 평가·피드백하는 루프. | 만드는 AI와 검사하는 AI 분리 |
| Orchestrator-Workers | 중앙 LLM이 일을 쪼개 일꾼에게 맡기고 결과를 종합한다. | Bun의 팬아웃·팬인 |
| Prompt Chaining | 한 단계 출력이 다음 단계 입력이 되는 사슬. | 순차 그래프(내 하네스) |
차이는 이름보다 구조에 있다.
새 이름이 붙기 훨씬 전에 이미 그림까지 그려져 있었다.
같은 글이 워크플로와 에이전트를 갈라 둔 것도 이 글 3절과 같은 이야기다.
"Workflows are systems where LLMs and tools are orchestrated through predefined code paths."
(워크플로는 LLM과 도구가 미리 정해진 코드 경로로 엮인 시스템이다.)
다른 하나는 LangGraph 공식 문서의 Graph API다. 용어 정의가 가장 짧고 분명하다.
상태는 "현재 스냅숏을 나타내는 공유 데이터 구조", 노드는 "현재 상태를 받아 계산하고 갱신된 상태를 돌려주는 함수", 엣지는 "다음에 어느 노드를 실행할지 정하는 함수"다.
같은 문서의 한 줄이 이 개념 전체를 요약한다.
"Nodes do the work, edges tell what to do next."
(노드가 일을 하고, 엣지가 다음에 뭘 할지 알려준다.) — LangGraph 공식 문서
덧붙는 한마디도 새겨둘 만하다. "Nodes and Edges are nothing more than functions." (노드와 엣지는 함수일 뿐이다.)
앞에서 "단계가 전부 AI일 필요는 없다"고 한 게 공식 문서에도 같은 말로 적혀 있다.
Anthropic의 그 글은 패턴을 늘어놓기 전에 이렇게 못 박는다.
"Start with simple prompts, optimize them with comprehensive evaluation, and add multi-step agentic systems only when simpler solutions fall short."
(단순한 프롬프트로 시작하고, 충분한 평가로 다듬어라. 여러 단계짜리 에이전트 시스템은 더 단순한 방법이 한계에 부딪힌 뒤에만 더해라.)
유행을 타고 들어온 사람이 제일 놓치기 쉬운 문장이다. "많은 경우, 검색과 예시를 붙인 단일 LLM 호출 하나면 충분하다"는 말도 같은 글에 있다. 단계를 늘리는 건 마지막 수단이지 출발점이 아니다.
6. 내 하네스는 그래프인가
지난 글에서 이 블로그를 만드는 하네스를 부품별로 뜯어봤다.
루프 엔지니어링 이란? — 프롬프트를 짜는 게 아니라 시스템을 짜는 시대(프롬프트 엔지니어링은 끝났다? 다음은 '루프 엔지니어링'이다)
ex) 이 글에서 설명했던 내 블로그 파이프 라인 예시

이번엔 같은 걸 그래프 기준으로 다시 본다. 결론부터 말하면 절반은 그래프고, 절반은 아니다.
내 하네스 흐름 (요약)
조건부 루프백은 있음 · 실행 위치 체크포인트는 없음 (세션 한도 → 조용히 끊김)
| 그래프의 조건 | 내 하네스 | 판정 |
|---|---|---|
| 조건부 엣지 | 있다. 실패 코드마다 갈 곳이 다르다. 근거가 부족하면 Researcher로, 문체가 어색하면 Writer로, HTML이 깨지면 Publisher로. | ✅ |
| 노드별 모델 | 있다. 초안을 쓰는 첫 바퀴만 큰 모델을 쓰고, 이후 기계적인 수정은 중간 모델로 내린다. | ✅ |
| 규격화된 상태 | 있다. spec.json→evidence.json→draft.md→qa_report.json→final.html이 단계 사이를 흐른다. |
✅ |
| 멈춤 조건 | 있다. 루프백은 최대 3회, Critic 라운드는 기본 2회로 잘라 둔다. | ✅ |
| 코드로 선언 | 아니다. 흐름이 코드가 아니라 마크다운 문서에 설명문, 매뉴얼 문장으로 적혀 있고, 그걸 오케스트레이터 모델이 읽고 해석한다. 라우팅 표는 있지만 컴파일되지는 않는다. | ❌ |
| 체크포인트·재개 | 아니다. 산출물 파일은 남지만 실행 위치는 저장되지 않는다. | ❌ |
| 팬아웃·팬인 | 있긴 하지만 리서치 단계만 백그라운드로 병렬을 쓰고, 나머지는 순차 동작이다. | ⚠ |
표로 보면 갈래·모델 배치·상태·멈춤 조건은 갖췄고, 코드 선언과 체크포인트는 비었다. 흐름이 문서에 설명문·매뉴얼 문장으로 적혀 있으니 그림으로 그려 검사하는 것도 안 된다.
이 글을 쓰며 내가 사용하던 워크플로우를 까보니 개선하고싶은 부분이 생기는걸 알게 되었다. 체크포인트가 없어서 실제로 손해를 본 것 같다.
격리 모드로 하네스를 돌리면 별도 프로세스에서 비대화형으로 실행된다. 그런데 여기서 세션 한도에 걸리면 사람에게 묻지도 못하고 최종 결과물 없이 조용히 죽는다. 남는 건 중간 산출물 파일뿐이고, 어디까지 갔는지는 사람이 파일을 열어 눈으로 확인한 뒤 손으로 다시 붙여야 한다.
그래프 엔지니어링이 자랑하는 체크포인트·재개가 정확히 이 문제를 겨냥한다. 이름이 농담이든 아니든, 내 하네스에 실제로 빈 자리가 있다는 건 사실이다.
7. 냉정하게 — 단계를 늘리면 비용이 늘어난다
그래프를 쓴다고 AI가 갑자기 똑똑해지진 않는다.
작업을 나누고, 동시에 돌리고, 결과를 검증해서 성공률을 올리는 쪽에 가깝다.
천재처럼 보일 때까지 여러 번 시킨 셈이다. 그리고 여러 번 시키면 돈이 든다.
나또한 이렇게 글의 퀄리티를 높이기 위해 반복하면서 토큰 소모가 엄청 급증 하게 된다.

16
동시 에이전트
워크플로 1개 상한 예시. Bun 피크는 4×16≈64
2
사람 눈
검토와 책임은 여전히 사람 몫
만드는 일은 넘겨도, 읽는 일은 아직이다
가장 큰 실측 사례가 Bun이다. JavaScript·TypeScript 런타임인 Bun은 Claude Code의 동적 워크플로(dynamic workflows)를 써서 핵심 코드를 Zig에서 Rust로 옮겼다.
왜 여기 끌어오냐면, 숫자가 크기 때문이다.
워크플로 하나가 최대 16개 에이전트를 동시에 굴리는데, 최고점에 워크플로 네 개를 겹쳐 돌렸다. 클로드 예순네 개가 동시에 일한 셈이다.

- 기간 11일(5월 3일 시작 → 5월 14일 병합), 워크플로 약 50개. 최고점에 워크플로 네 개를 각각 다른 워크트리에서 돌렸고, 워크플로마다 클로드가 16개씩이라 동시에 약 64개가 일했다.
- 옮기기 전 Zig 코드가 주석 제외 535,496줄이었고, 병합된 변경은 +1,009,272줄이다. 커밋은 6,502개(병합 커밋 제외), 최고점에 분당 약 1,300줄이 나왔다.
- 병합 전 CI에서 기존 테스트를 전부 통과했다. Bun v1.4.0 기준으로 v1.3.14에서 재현되던 버그 128개를 고쳤다.
- 토큰은 캐시되지 않은 입력 59억 개, 출력 6억 9천만 개, 캐시된 입력 읽기 720억 개가 들었다. 공개 API 단가로 환산하면 약 16만 5천 달러다.
- Rust 코드의 약 4%가
unsafe블록 안에 있다. 별도 감사 문서가 센 정확한 수는 13,365개다.
마지막 줄을 오해하진 말자.
unsafe가 1만 3천 개라고 버그가 1만 3천 개라는 뜻은 아니다. C나 C++ 라이브러리와 연결할 때는 정상적인 코드에도 unsafe가 필요하다. 실제로 그 블록의 78%는 한 줄짜리다.
이 감사 자체도 Bun이 직접 하고 공개한 것이다.
외부 감시가 잡아낸 게 아니라 스스로 밝힌 쪽에 가깝다. 그 문서는 약 9,300개는 안전한 코드로 바꿀 수 있고 4,000개쯤은 남는다고 적었고, 별개로 안전한 코드에서 부를 수 있는데 위험한 함수 다섯 개를 찾아냈다.
자동 테스트를 통과했다는 것과 안전성 검토가 끝났다는 말은 다르다. 자동 검사는 재기로 한 것만 잰다.
테스트·빌드는 알 수 있어도, 읽기 쉬운지·위험한 우회가 많은지·유지비가 얼마나 늘었는지는 재지 않는다.
검사하지 않은 항목은 통과한 게 아니다. 아무도 보지 않은 것이다.

이 지점에서 실제로 논쟁이 붙었다.
Zig를 만든 Andrew Kelley가 7월 9일에 반박 글을 올렸다. 테스트만으로 충분하다는 주장을 이렇게 되받았다.
"It's not sufficient to catch bugs in Zig code but it is sufficient to catch bugs in 1 million lines of unreviewed slop?"
(Zig 코드의 버그를 잡기엔 부족한 테스트가, 검토 안 된 100만 줄짜리 쓰레기의 버그는 잡기에 충분하다고?) — Andrew Kelley
인용할 때 주의할 게 하나 있다. "unreviewed slop"은 반문 안에 들어 있는 표현이지, "이 작업물은 쓰레기다"라고 단정한 문장이 아니다. 기사 제목들이 이걸 직접 인용처럼 옮겨 놓았는데, 원문 구조는 조금 다른 것 같다.
바이너리가 작아진 것도 Rust 덕분만은 아니다.
Bun 스스로 Rust 재작성과 ICU 데이터 정리, 링커 최적화가 합쳐진 결과라고 적었다.
Kelley는 여기서 한 발 더 나가 "그 엔지니어링 작업은 재작성과 아무 상관이 없다"고 반박했다.
비용 방향도 분명하다.
Anthropic이 자사 멀티에이전트 리서치 시스템을 설명하면서 이렇게 적었다 — "에이전트는 보통 채팅보다 토큰을 약 4배 쓰고, 멀티에이전트 시스템은 채팅보다 약 15배 쓴다."

기준을 헷갈리면 안 된다. 15배는 채팅 대비지 단일 에이전트 대비가 아니다. 그리고 모든 그래프가 정확히 15배라는 뜻도 아니다. 다만 에이전트를 늘리고 서로 검토하게 할수록 비용이 빠르게 커진다는 방향만은 분명하다.
진짜 병목 포인트는 AI 숫자는 병렬로 늘어나는데, 이를 검증하는 사람의 눈은 안 늘어난다. 에이전트가 16대여도 검토하는 눈은 둘이다.
쓸 때 기억할 세 가지
- 완료 여부를 기계가 분명히 판정할 수 있는 일에만 쓴다. 테스트 통과, 빌드 성공, 파일 형식처럼 기준이 뚜렷해야 한다.
- 실행 전에, 자동 검사가 보는 것과 보지 않는 것을 나눠 적는다. 앞 목록은 맡겨도 되지만 뒤 목록은 결국 사람이 읽어야 한다.
- "쪼갤 수 있는가"보다 "쪼개도 되는 일인가"를 먼저 묻는다. 시장 조사처럼 서로 독립된 일은 나누기 쉽다. 그런데 코드는 얽혀 있다. 로그인 화면을 고치면 DB에 영향이 가고, DB를 바꾸면 결제가 깨질 수 있다.
- 필요 없는데 단계부터 늘리기. 토큰과 디버깅 시간만 나간다.
- 명령어로 될 일을 AI 단계로 만들기. 환각 위험을 굳이 사서 넣는 셈이다.
- 갈래를 만들어 놓고 전부 같은 곳으로 보내기. 그러면 분류한 의미가 없다.
- 멈춤 조건 없는 순환. 그래프는 눈으로 확인할 수 있으니, 그리고 나서 꼭 훑어본다.
지난 글은 "천장이 사라진 게 아니라 지렛대 받침점이 옮겨갔다"로 끝냈다. 이번에도 비슷한 자리다. 천장은 안 사라졌다. 자리만 옮겼다. 예전 한계는 한 번에 얼마나 큰 일을 시키느냐였다. 지금은 토큰을 얼마나 태울지, 나온 결과를 누가 읽고 책임질지다.
만드는 일은 AI에게 넘길 수 있다. 읽는 일은 아직 사람 몫이다.
8. 자주 묻는 질문
Q. 이름이 농담이면 그냥 무시해도 되나?
이름은 무시해도 된다. 그 뒤에 붙은 문제까지 무시하면 안 된다. 작업 단계가 열 개를 넘어 머릿속으로 못 따라가는 상황은 실제로 생기고, 그때 쓰는 도구도 이미 있다. 용어를 몰랐다고 뒤처진 건 아니지만, 그 문제를 몰랐다면 이야기는 달라진다.
Q. 루프 엔지니어링은 이제 안 배워도 되나?
반대다. 루프가 그래프의 한 종류라, 루프를 건너뛰고 그래프로 갈 수는 없다. 순서는 그대로다. 루프로 해보다가 감당이 안 될 때 그래프로 넘어가면 된다.
Q. 뭘로 시작하면 되나?
LangGraph가 가장 무난하다. 2024년부터 쓰였고 자료가 많다. 노드 함수를 만들고, 상태 객체를 정하고, add_node·add_edge로 이어 붙인 뒤 컴파일하면 된다. 그래프 그림도 자동으로 그려 준다. Claude Code를 쓴다면 동적 워크플로가 비슷한 자리를 맡는다.
그래도 도구보다 개념이 먼저다. Anthropic Building Effective Agents로 패턴 다섯 개를 먼저 보고, 내 문제가 그중 어디에 해당하는지 정한 다음 도구를 고르는 순서를 권한다. 그 글의 조언대로 더 단순한 방법이 한계에 부딪히기 전에는 안 늘리는 쪽이 낫다.
Q. 그래프로 바꾸면 비용이 줄어드나?
방향은 둘 다 있다. 노드마다 작은 모델을 배치하면 줄고, 에이전트 수를 늘리고 서로 검토시키면 는다. 순 효과는 설계에 달렸다. 다만 단계를 늘리는 쪽이 기본값이라, 신경 쓰지 않으면 늘어나는 쪽으로 간다.
마무리 — 이름은 흘려보내고, 점검표만 챙긴다
이번 소동에서 건질 것도 새 프레임워크가 아니다. 질문 몇 개다.
- 실패를 종류별로 나누고 있나? 전부 "다시 해봐"로 돌리고 있다면 갈래를 만들 때다.
- 멈췄을 때 이어서 할 수 있나? 처음부터 다시 돌리고 있다면 체크포인트가 없는 것이다.
- 상태가 규격화돼 있나? 단계마다 데이터 모양이 다르면 늘릴수록 힘들어진다.
- 멈춤 조건이 다 걸려 있나? 한 군데라도 비면 무한히 돈다.
네 개 중 하나만 골라 이번 주에 손봐도 충분하다. 나는 체크포인트부터 볼 생각이다. 앞에서 말했듯, 거기서 실제로 손해를 봤기 때문이다.
다음에 또 새 엔지니어링이 나오면 이번처럼 하면 된다. 이름은 흘려보내고, 내 작업에서도 같은 불편이 있는지만 본다. 없으면 넘기고, 있으면 그때 배운다.
- 루프 엔지니어링 — 이 글의 바로 앞편. 루프의 부품 5개와 기억장치 1개.
- 하네스 엔지니어링 — 한 층 아래. 프롬프트→컨텍스트→하네스의 계층과 7원칙.
- Ralph Loop — 한 작업을 완료까지 자기참조로 반복하는 루프 패턴.
- AGENTS.md와 Rules 설정 — 컨텍스트를 파일로 고정하는 실전 가이드(Codex CLI 입문 4).
참고 자료
출처
- 3 Years of Graph Engineering with LangGraph — LangChain (2026-07-22)
- Loop Engineering — Addy Osmani (2026-06-07)
- Building Effective Agents — Anthropic : 워크플로 패턴 5종 + 다이어그램. 이 주제를 제대로 배우려면 여기부터
- Graph API — LangGraph 공식 문서 : 상태·노드·엣지 정의와 최소 예제
- We are entering the graph engineering phase — Josh Simmons (2026-07-04)
- Rewriting Bun in Rust — Bun · unsafe 감사 (2026-05-21)
- How Anthropic runs large-scale code migrations with Claude Code (2026-07-16)
- How we built our multi-agent research system — Anthropic (토큰 4배·15배 출처)
- My Thoughts on the Bun Rust Rewrite — Andrew Kelley (2026-07-09)
- Orchestrate subagents at scale with dynamic workflows — Claude Code Docs (16·1,000 한도 출처)
- GraphRAG for Engineering Diagrams (ChatP&ID) — 18%·85% 수치의 실제 출처 (2026-03-23)
- GraphRAG — Microsoft Research (2024-02-13)
- HN 48995842 · HN 48965438 — 점수·댓글 수 확인 (2026-07-29 조회)
- Is Graph Engineering Real? — Turing Post
- 그래프 엔지니어링 — 정상록 (2026-07-27)
- Graph Engineering for AI Agents — Eigent
- AI 그래프 엔지니어링 — 디지털마케터
- 루프 나온지도 얼마 안 됐는데 그래프 엔지니어링? — ZeroCho TV (2026-07-28)
- 하네스? 루프? 이번엔 또 그래프라고? — 바이브랩스 (2026-07-23)
작성일: 2026년 7월 29일. 용어가 확산된 지 2주가 채 안 된 시점의 기록이라, 이후 정리된 정의나 도구가 나올 수 있다.
면책: 제품별 기능명·한도·가격은 업데이트마다 달라지므로 적용 전 각 제품의 최신 공식 문서를 함께 확인하기를 권한다. HN 점수·댓글 수는 2026-07-29 조회 기준이다.
'AI > 하네스 엔지니어링' 카테고리의 다른 글
소중한 공감 감사합니다