참고 · 선택

그래프 엔지니어링 — 실행 · 코드 · 지식

그래프라고 불리는 것이 셋 있습니다. 담당하는 층이 달라서, 고르는 게 아니라 구분하는 것입니다.

  • 1세 가지 그래프가 각각 무엇을 그리는지 안다
  • 2언제 어느 것에 손을 대는지 판단한다
  • 3그래프가 과잉인 경우를 가려낸다
읽는 시간 12분실습 15분선수 없음 · 선택
자세히 보기
실행 그래프누가 다음에도는가코드 그래프무엇이 무엇을부르는가지식 그래프무엇이 무엇과엮여 있나같은 이름이지만, 셋은 서로 다른 층을 답합니다
개념왜 헷갈리나

같은 이름이 셋을 가리킵니다

2026년 들어 AI 쪽에서 그래프가 붙은 말이 한꺼번에 늘었습니다. 그런데 이 셋은 서로 다른 것을 그립니다. 어느 쪽이 더 좋은지 고르는 문제가 아니라, 지금 내가 막힌 지점이 어느 층인지 가려내는 문제입니다.

실행 그래프코드 그래프지식 그래프
그리는 것일의 진행 순서코드의 구조자료의 관계
노드는에이전트 · 함수 · 검증기함수 · 클래스 · 파일엔티티 — 사람 · 제품 · 문서
엣지는다음에 무엇이 도는가무엇이 무엇을 부르는가무엇이 무엇과 엮여 있나
답하는 질문“이 다음엔 누가?”“이걸 바꾸면 뭐가 깨지지?”“이 둘은 무슨 관계지?”
대표 도구LangGraph · Agent FrameworkCodeGraph · SerenaGraphRAG · LazyGraphRAG
이 과정의 연결B-4 에이전트 · B-10 하네스B-5 MCP1-2 콘텍스트
한 줄 요약셋은 경쟁 관계가 아닙니다. 한 시스템 안에서 동시에 돕니다 — 실행 그래프가 에이전트를 배선하고, 그 에이전트가 코드 그래프에 질의하고, 답의 근거를 지식 그래프에서 끌어옵니다.
이름이 겹치는 이유셋 다 노드와 엣지로 그린다는 점만 같습니다. 자료구조가 같을 뿐, 담기는 내용도 만드는 사람도 다릅니다.
실행 그래프누가 다음에 도는가

배선이 곧 설계입니다

2026년 문헌이 Graph Engineering이라고 부를 때는 대개 이것을 가리킵니다. 여러 에이전트·함수·검증기·사람이 어떻게 맞물려 도는지를 설계하는 일입니다.

다루는 것
프롬프트모델 한 번의 호출
콘텍스트모델이 무엇을 보는지
에이전트 루프한 에이전트가 어떻게 생각하고 도구를 쓰는지
실행 그래프여러 에이전트·루프·함수·검증기·사람이 어떻게 맞물리는지
원문“엔지니어링은 엣지에 있다” — 무엇을 시킬지가 아니라, 무엇 다음에 무엇이 오고 그 사이에 어떤 검사가 걸리는지가 설계의 본체라는 뜻입니다.

루프로 될 일인가, 그래프가 필요한 일인가

이 구분이 이 절의 전부입니다. 루프에서는 목표와 기준만 정하고 경로는 에이전트가 고릅니다. 그래프에서는 허용된 경로와 그 위의 검사를 내가 선언합니다.

루프면 충분하다그래프가 필요하다
끝나는 지점이 하나로 분명하다일이 서로 다른 전문 분야로 갈린다
단계가 자연스럽게 이어진다나눠서 동시에 돌리는 이득이 있다
같은 도구 · 같은 모델로 끝난다단계마다 모델 · 도구가 다르다
검증자 하나면 된다다른 노드의 결과를 따로 검토해야 한다
에이전트가 자유롭게 돌아다녀도 안전하다어디를 지났는지 남아야 한다
먼저 루프대부분의 일은 끝나는 지점 하나에 검증자 하나이고, 그건 루프입니다. 일이 강제하기 전에 그래프부터 꺼내는 것은 순수한 낭비입니다.

구성요소 — 셋, 그리고 프로덕션에서 넷 더

이름하는 일
노드일을 하는 단위. LLM 호출 · 도구 에이전트 · 평범한 함수 · 정책 검사 · 사람의 승인 — 모든 노드가 AI일 필요는 없습니다
엣지어디로 갈 수 있는지. 직행 · 조건 · 병렬 · 되돌아가기 · 오류 · 사람 대기
상태그래프를 따라 흐르는 공유 기록. 노드마다 필요한 칸만 넘깁니다
프로덕션에서 더없으면 생기는 일
리듀서병렬 결과를 합치는 규칙(이어붙이기 · 덮어쓰기 · 충돌 해소). 없으면 마지막에 끝난 놈이 이깁니다
가드넘으면 안 되는 선. 단단한 제약을 프롬프트 안에 숨기면 안 됩니다
체크포인트중간 저장. 실패 지점부터 재개하고, 사람 답을 기다리는 동안 멈출 수 있습니다
인터럽트승인 · 검토를 받으려 실행을 멈추는 지점

여섯 가지 배선 패턴

패턴모양쓰는 자리
프롬프트 체이닝일렬단계가 고정이고 각 단계를 검증할 수 있을 때
라우팅갈래입력 종류에 따라 다른 전문가로 보낼 때
병렬화팬아웃 · 팬인서로 독립인 일을 동시에 돌릴 때
오케스트레이터 · 워커중앙 분배일을 쪼개 나눠주고 결과를 모을 때
평가자 · 최적화기되돌아가기만들고 → 평가하고 → 고치기를 반복할 때
사람 개입중간 정지되돌리기 어려운 행동 앞
이미 배운 것B-10 하네스의 팀 아키텍처 패턴 6종(파이프라인 · 팬아웃/팬인 · 전문가 풀 · 생산자/검토자 · 감독자 · 계층 위임)이 바로 이 배선입니다. 이름만 다를 뿐 같은 얘기라, 하네스로 팀을 만들어 본 적이 있다면 실행 그래프는 이미 절반 그려본 셈입니다. 한 세션 안에서 병렬로 돌리는 방법은 B-4에 있습니다.

조직 그래프와 작업 그래프

규모가 커지면 그래프가 두 겹으로 나뉩니다. 하나는 오래 살고, 하나는 이번 실행에서만 존재합니다.

구분조직 그래프작업 그래프
수명오래 산다 — 다시 배포할 때까지이번 실행 동안만
노드이름과 역할이 있는 담당자지금 해야 할 작업
답하는 것누가 무엇을 맡나지금 무엇을 해야 하나
변하는 방식바꾸려면 다시 배포돌면서 갈라지고 합쳐지고 취소된다

담당자를 고정하면 각자 자기 구역의 문맥을 쌓습니다. 인증·권한을 맡은 담당자는 그 코드를 계속 보게 되고, 스키마를 맡은 담당자는 마이그레이션 이력을 계속 봅니다. 매번 새로 쪼개는 것보다 축적이 생깁니다.

과잉의 신호“이메일 하나 답하려고 조직도를 설계했다”가 대표적인 실패입니다. 크기가 맞는지 보는 기준은 하나입니다 — 모든 노드가 루프로는 못 할 일을 하고 있고, 전체를 한 숨에 설명할 수 있다. 둘 중 하나라도 아니면 노드를 줄이세요.
코드 그래프무엇이 무엇을 부르는가

에이전트가 grep을 덜 돌리게

“이 함수를 바꾸면 뭐가 깨지나”를 에이전트는 보통 찾고 → 열고 → 또 찾고로 풉니다. 파일을 열 때마다 토큰이 나가고, 놓친 호출처는 그냥 안 보입니다.

코드 그래프는 이 작업을 미리 해둡니다. tree-sitter로 소스를 파싱해 심볼(함수·클래스·타입)과 엣지(호출·임포트·상속)를 뽑아 로컬 SQLite에 쌓고, 에이전트는 MCP로 질의합니다. 파일을 여는 대신 질문 하나를 던지는 방식으로 바뀝니다.

지금 이 저장소에도이 강의 저장소에는 이미 .codegraph/codegraph.db가 있습니다. 아래 실습은 새 프로젝트에서 해보세요.

실습 — 붙이고 인덱싱하기

# ① 설치
npm i -g @colbymchenry/codegraph

# ② 에이전트에 MCP 서버로 등록
codegraph install

# ③ 초기화 + 첫 인덱싱
codegraph init -i .

# ④ 인덱스 상태 확인
codegraph status

Node가 없다면 저장소의 설치 스크립트(Windows는 PowerShell install.ps1, macOS · Linux는 install.sh)를 써도 됩니다. 어느 쪽이든 codegraph 명령이 생기면 그다음은 같습니다.

인덱싱이 끝나면 CLI로도 바로 물어볼 수 있습니다. 에이전트는 같은 것을 MCP 도구로 부릅니다.

codegraph query renderPage      # 이름으로 심볼 찾기
codegraph callers renderPage    # 이걸 부르는 곳
codegraph callees renderPage    # 이게 부르는 것
codegraph impact renderPage     # 바꾸면 영향받는 범위
codegraph context "결제 실패 처리"   # 작업 하나에 필요한 문맥 묶음

언제 그래프고, 언제 grep인가

코드 그래프는 구조를 답합니다. 글자를 답하지는 않습니다.

이런 질문그래프grep · 읽기
“X를 바꾸면 뭐가 깨지나”
“X는 어디 정의돼 있나”
“X를 부르는 곳이 전부 어디인가”
“이 로그 문구가 어디서 나오나”
주석 · 문자열 내용 찾기
이미 연 파일 안에서 찾기

수치 — 누가 잰 것인지 구분해서

출처주장
도구 저장소의 자체 벤치마크7개 저장소에서 툴콜 89%↓ · 토큰 69%↓ · 비용 60%
제3자 도구 비교툴콜 58~70%↓ (측정 조건이 다름)
별도 연구(Codebase-Memory, 31개 저장소)토큰 약 10배↓ · 툴콜 2.1배
숫자를 그대로 믿지 마세요벤더 수치는 자기 벤치마크이고 저장소 구성과 질문 종류에 크게 좌우됩니다. 세 출처가 방향은 같지만 폭은 제각각인 게 그 증거입니다. 우리 저장소에서 재보기 전까지는 방향만 참고하세요.

못 하는 것

한계내용
인덱스 지연파일 감시가 몇백 ms 뒤에 따라옵니다. 방금 고친 파일을 곧바로 질의하면 옛 결과가 나옵니다
정적 분석의 벽런타임 동적 디스패치 · 리플렉션 · DI 컨테이너 · 프레임워크 관례 진입점은 못 따라갑니다
의미 검색이 아님“인증 비슷한 거 어디 있지” 같은 질문에는 답하지 못합니다. 이름과 구조로만 찾습니다
파일 크기기본적으로 1MB를 넘는 파일은 건너뜁니다
유지보수 위험이 분야 상위 도구 다수가 사실상 1인 프로젝트입니다. 사내 표준으로 삼기 전에 라이선스와 유지보수 주체를 확인하세요 — 예를 들어 별 수는 비슷해도 하나는 MIT, 하나는 비상업 전용 라이선스인 경우가 있습니다.
지식 그래프무엇이 무엇과 엮여 있나

한 번에 못 찾는 답

벡터 검색은 비슷한 문단을 찾아옵니다. 그래서 답이 문서 하나에 들어 있으면 잘합니다. 반대로 두세 다리를 건너야 나오는 질문에는 약합니다 — “이 부품을 납품하는 회사가 작년에 문제를 일으킨 적 있나” 같은 것입니다.

지식 그래프는 자료를 엔티티와 관계로 미리 정리해 둡니다. 관계가 명시된 엣지가 되기 때문에 여러 다리를 건너 따라갈 수 있고, 지나온 경로가 남습니다.

벡터 검색 (RAG)지식 그래프
잘하는 질문문서 하나에 답이 있는 것여러 다리를 건너야 하는 것
만드는 시간며칠몇 주
설명 가능성낮음 — 왜 그 문단이 나왔는지 불분명높음 — 지나온 경로가 보임
유지 비용문서 재색인스키마 · 엔티티 관리
실제로는둘 중 하나를 고르기보다 겹쳐서 씁니다 — 벡터로 넓게 긁고, 그래프로 이어 붙입니다(GraphRAG)

비용이 발목을 잡았다가, 풀렸습니다

2024년 Microsoft가 GraphRAG를 내놓으며 관심이 몰렸지만, 큰 데이터셋 인덱싱에 3만 3천 달러가 드는 비용 때문에 대부분의 팀에게는 그림의 떡이었습니다. 이후 이 비용 문제를 푸는 연구가 이어졌습니다.

지표내용
인덱싱 비용LazyGraphRAG는 벡터 RAG와 같은 수준 — 풀 GraphRAG의 0.1%
글로벌 질의 비용비슷한 품질에서 풀 GraphRAG 대비 700배 저렴
정확도그래프 구조를 얹어 벡터 단독 대비 정답 정밀도 최대 35% 개선 보고
환각단순 벡터 검색 대비 40% 이상 감소 보고
전망Gartner — 2028년까지 기업 AI 에이전트 시스템의 50% 이상이 그래프 기반 컨텍스트를 쓸 것
숫자는 벤치마크마다 다릅니다위 수치들은 서로 다른 실험에서 나온 것이라 더하거나 비교하면 안 됩니다. 공통된 결론은 폭이 아니라 방향입니다 — 여러 다리를 건너는 질문에서 이기고, 단일 문서 질문에서는 벡터 검색이 더 싸고 빠릅니다.
기본기와 이어집니다지식 그래프는 결국 필요한 것만 골라 넣는 도구입니다. 자료를 통째로 넣지 말고 관련된 것만 주라는 1-2 콘텍스트의 원칙을, 자동으로 하는 장치라고 보면 됩니다. 밖으로 나가는 데이터 기준은 0-3 안전하게 쓰는 기준B-5를 함께 보세요.
정리손대기 전에

세 가지만 묻습니다

위에서부터 물어보고 처음 “예”가 나오는 곳에서 멈춥니다. 셋 다 아니면 지금은 그래프가 필요한 상황이 아닙니다.

1

막힌 게 순서인가?

일이 전문 분야로 갈리고, 누가 무엇 다음에 도는지를 내가 정해야 한다면 → 실행 그래프. 아직 한 갈래로 끝난다면 루프로 두세요.

2

막힌 게 코드 구조인가?

에이전트가 파일을 여닫느라 토큰을 태우고 영향 범위를 놓친다면 → 코드 그래프. 문자열·주석을 찾는 일이라면 grep이 여전히 낫습니다.

3

막힌 게 자료의 관계인가?

답이 문서 하나에 없고 두세 다리를 건너야 나온다면 → 지식 그래프. 단일 문서 질문이라면 벡터 검색이 더 싸고 빠릅니다.

과잉의 신호 셋① 노드 중에 그냥 함수로 넣어도 되는 것이 있다 ② 전체 구조를 한 숨에 설명하지 못한다 ③ 그래프를 넣기 전에 루프로 제대로 해본 적이 없다. 하나라도 해당되면 되돌아가세요. 그래프는 루프의 비용을 곱셈으로 늘립니다.

실습 — 내 일을 분류해 보기

지금 하는 일 중 AI에게 시켰다가 잘 안 됐던 것 세 가지를 떠올려 아래에 넣고 물어보세요.

아래 세 가지 일을 각각 분류해줘.

1) (일 하나)
2) (일 하나)
3) (일 하나)

분류 기준:
- 실행 그래프 — 여러 전문 단계로 갈리고 순서·검사를 내가 정해야 한다
- 코드 그래프 — 코드의 호출·영향 범위를 찾느라 시간이 든다
- 지식 그래프 — 답이 여러 자료에 흩어져 있고 관계를 따라가야 한다
- 해당 없음 — 프롬프트나 단순 루프로 충분하다

각각에 대해 (1) 어디에 해당하는지 (2) 그렇게 본 이유 한 줄
(3) "해당 없음"이면 대신 무엇을 손봐야 하는지 알려줘.
과하게 그래프로 몰지 말고, 애매하면 "해당 없음"으로 판단해줘.
정리세 그래프는 층이 다릅니다. 순서가 막히면 실행 그래프, 코드 구조가 막히면 코드 그래프, 자료의 관계가 막히면 지식 그래프입니다. 그리고 대부분의 경우 — 아직 아무것도 필요하지 않습니다.
클로드코드 시작하기참고 · 선택