| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
- 개발자
- AI
- 기술블로그
- 알고리즘
- 클린코드
- 엘라스틱서치
- kotlin
- ES
- spring boot
- 백준
- Spring
- 개발
- Elasticsearch
- 애자일기법
- 데이터베이스
- JPA
- cleancode
- framework
- 프레임워크
- 스프링
- Java
- Baekjoon
- 그리디알고리즘
- 코드
- 코딩테스트
- 그리디
- API
- 자바
- 코딩
- database
- Today
- Total
튼튼발자 개발 성장기🏋️
Graph Engineering 본문
Graph Engineering
결과를 만드는 건 모델이 아니라 설계다
AI 아웃풋의 품질 = 모델 성능 × 설계 수준. 모델은 모두에게 동일하게 주어진다.
설계는 5단계로 진화했다 — Prompt → Context → Harness → Loop → Graph
작업의 복잡도가 설계 수준을 결정한다. 낮은 단계를 건너뛰면 상위 단계는 더 복잡하게 실패한다.
필요한 건 새 도구가 아니라, 우리가 이미 쓰는 Jira · Confluence · Git을 설계 부품으로 다시 보는 것
01 같은 모델, 다른 결과 — 차이는 설계에서 온다
2023 → 2026, 질문이 바뀌었다
"그냥 물어보면 된다"에서 "무엇을, 어떤 순서로, 누구에게 맡길지 설계해야 한다"로 질문 자체가 바뀌었습니다. 모델 성능은 모두에게 동일하게 주어집니다. 차이를 만드는 건 그 앞뒤를 감싸는 설계입니다.
팀 현장의 현실
오타 수정 티켓 하나와, 여러 도메인이 얽힌 Epic 하나는 필요한 설계 수준이 완전히 다릅니다. 하나의 방식을 모든 작업에 똑같이 적용하면 늘 과하거나, 늘 부족합니다.
02 AI 엔지니어링, 5단계의 진화
레버리지는 점점 모델 "바깥"으로 이동합니다 — 요청 문구 한 줄에서, 여러 에이전트로 이루어진 조직 설계까지.
| 시기 | 계층 | 엔지니어링 대상 | 핵심 질문 | 역할 비유 |
|---|---|---|---|---|
| 2023-24 | Prompt | 모델에 보내는 요청 문구 | "잘 요청하고 있는가?" | 운영자 |
| 2024 | Context | 모델이 접근 가능한 정보 | "올바른 정보를 갖고 있는가?" | 편집자 |
| 2025 | Harness | 도구 · 메모리 · 복구 구조 | "무엇으로 작업을 뒷받침하는가?" | 도구 제작자 |
| 2026 초기 | Loop | 단일 에이전트의 반복 사이클 | "언제 검사하고 멈출 것인가?" | 시스템 설계자 |
| 2026 중기 | Graph | 다중 에이전트 간 조정 | "누가·무엇을·어떤 순서로 하는가?" | 조직 설계자 |
03 5단계, 하나씩 뜯어보기
Prompt Engineering
초기 LLM 시대, 모델에게 보내는 '요청 문구' 자체가 결과를 바꿀 수 있는 유일한 조절 지점이었다.
역할 부여, 예시 제공, 출력 형식 지정 등으로 질문·지시문을 최적화해 원하는 출력을 끌어내는 기법.
즉시 적용 가능, 추가 인프라 불필요, 학습 곡선이 낮아 누구나 바로 쓸 수 있다.
재현성이 낮고, 정보 부족 문제는 해결하지 못하며, 작업이 복잡해지면 프롬프트만으로는 한계가 뚜렷하다.
Context Engineering
컨텍스트 윈도우 확장과 RAG 확산으로, "무엇을 물어보는가"보다 "무엇을 보여주는가"가 결과를 좌우하게 됐다.
모델이 접근할 수 있는 정보 — 문서, 코드, 이력 — 를 전략적으로 선택·정리·주입하는 작업.
정확도와 최신성이 오르고, 근거 없는 환각(hallucination)이 크게 줄어든다.
좋은 컨텍스트를 고르는 데 비용이 들고, 과도한 정보를 밀어 넣으면 오히려 노이즈로 성능이 떨어진다.
Harness Engineering
에이전트가 도구를 스스로 호출하기 시작하며, 그 주변 지원 구조 설계가 중요해졌다. 컨텍스트·도구·오케스트레이션·상태관리·평가·복구, 6가지 요소로 에이전트를 뒷받침하는 틀을 설계하는 일.
신뢰성이 오르고, 다양한 도구·다중 세션에 걸친 작업이 가능해지며, 실패해도 복구할 수 있다.
설계·유지보수 복잡도가 늘고, 단순 작업엔 처음부터 과한 투자로 느껴질 수 있다.
Jira · Git · 테스트 도구를 넘나드는 상 난이도 작업, 세션이 길게 이어지는 작업
Loop Engineering
단일 에이전트가 "언제 멈출지" 스스로 판단해야 하는 자동화 요구가 늘며 등장. 발견 → 계획 → 실행 → 검증 → 반복의 사이클을 설계하는 일. 핵심은 자체 검증이 아닌 독립적인 검증자다.
명확한 목표에 대해 자율적으로 끝까지 수행 — Claude Code 등 코딩 에이전트의 기본 동작 방식이 바로 이것.
병렬 작업·전문성 분리에는 한계가 있고, 검증자가 없으면 스스로를 과신하기 쉽다.
목표와 완료 기준이 명확한 순차 작업(기능 구현 → 테스트 → 수정 반복), 중 난이도 티켓
Graph Engineering
2026년 7월 18-19일, X(트위터)에서 논의가 결화됨. Peter Steinberger의 질문에서 시작됐다 — "우리는 여전히 루프를 말하는가, 아니면 그래프로 이동했는가?"
서로 다른 전문성을 가진 여러 노드(에이전트·단계) 간의 조정(coordination)을 설계하는 일. Loop의 대체가 아니라 확장이다.
04 그래프는 정확히 세 부분으로 이루어진다
Node · 노드
실제 작업을 수행하는 단위. 전문화된 에이전트(연구자·작가·검토자) 또는 결정적 단계(함수·도구 호출). 각 노드는 하나의 명확한 역할을 갖는다.
Edge · 엣지
노드 간 라우팅. 직선형(A→B)·조건부(통과/실패)·팬아웃(동시 시작)·팬인(결과 통합) 네 가지 형태가 있다.
Shared State · 공유 상태
엣지를 따라 흐르는 객체. 작업 내용, 초안, 검토 결과, 메타데이터 등 모든 노드가 읽고 쓸 수 있다.
예시 · 스타터 그래프
작업 → 노트
노트 → 초안
초안 → 판정
05 루프로 충분한가, 그래프가 필요한가
| 신호 | Loop로 충분 | Graph가 필요 |
|---|---|---|
| 작업의 형태 | 명확한 끝이 있는 단일 작업 | 서로 다른 전문성이 필요한 단계들 |
| 병렬화 | 단계가 순차적 | 여러 작업을 동시에 수행 후 통합 |
| 도구·모델 | 전체에서 동일 | 단계별로 다른 도구셋·모델 |
| 제어 흐름 | 한 에이전트가 자유롭게 이동 | 명시적·감시 가능한 라우팅 필요 |
| 검증 | 에이전트가 자기 출력을 검사 | 별도의 검토자 노드가 필요 |
06 Graph Engineering, 정말 새로운가?
기존 기술 · 이미 있던 것들
LangGraph(StateGraph) · Microsoft AutoGen GraphFlow · Google ADK 2.0 · A2A 프로토콜
그럼에도 의미 있는 것
공유 용어(노드·엣지·상태) 확립, "프레임워크 세부사항이 아니다"라는 인식 확산, 점점 더 많은 팀의 실제 필요.
07 그래프를 그리기 전에, 8가지를 먼저 확인하라
08 실전 적용 — Jira · Confluence · Git
Jira 티켓 복잡도가 곧 설계 수준이다
| 복잡도 | 예시 티켓 | 추천 엔지니어링 | 이유 · 핵심 |
|---|---|---|---|
| 최하 | 오타·문구 수정, 단순 문의 응대 | Prompt | 컨텍스트 없이 바로 요청해도 충분하다 |
| 하 | 단일 파일 버그 수정 | Context | 관련 코드 + Jira 설명을 정확히 넣어주는 게 핵심 |
| 중 | 단일 기능 개발 (PR 1건) | Loop | 탐색 → 계획 → 구현 → 검증(리뷰) 반복이면 충분 — Claude Code 기본 동작 |
| 상 | 여러 모듈 연동, 구조 리팩토링 | Harness | 여러 도구(Jira·Git·테스트) + 메모리 + 복구까지 갖춘 환경 필요 |
| 최상 | Epic, 여러 팀·도메인 관여 | Graph | 역할별 노드 분리 + 병렬 진행 + 독립 검토 노드 필요 |
이미 손에 있는 Graph의 부품
| Node · 노드 | → Jira 하위태스크 / 담당자별 역할 (백엔드·프론트·QA·문서화) |
| Edge · 엣지 | → 이슈 워크플로우 전이 + PR (리뷰 통과 → 배포, 실패 → 재작업으로 조건부 라우팅) |
| Shared State · 공유 상태 | → Jira 티켓(설명·댓글·체크리스트), Confluence 문서 |
| Context 소스 | → Confluence 요구사항·설계 문서 |
| 독립 검토자 노드 | → PR 코드 리뷰어 |
예시 — "신규 PG 연동 Epic"
Confluence (Context)
Jira 하위태스크 (Node 정의)
백엔드·프론트·QA (Fan-out)
독립 검토자 (Edge)
Fan-in, 실패 시 피드백
배포
기억할 세 가지
Prompt부터 Graph까지, 낮은 단계부터 순서대로 숙달하라. 루프로 충분하면 루프를 써라 — 과잉설계가 가장 흔한 실수다. 그리고 이것이 곧 Graph Engineering의 Node·Edge·State다.
'AI > Claude Code' 카테고리의 다른 글
| Claude Code: 제대로 알고 쓰자(Ultraplan편) (0) | 2026.04.10 |
|---|---|
| Claude Desktop: 제대로 알고 쓰자(Computer use tool편) (0) | 2026.03.25 |
| Claude Code: 제대로 알고 쓰자(channels 편) (0) | 2026.03.20 |
| Claude Code: 제대로 알고 쓰자(remote control편) (0) | 2026.02.27 |
| Claude Code: 제대로 알고 쓰자(mcp편) (0) | 2026.02.10 |