AI 엔지니어링의 중심 축이 '말을 건네는 기법'에서 '스스로 일하게 만드는 시스템 설계'로 진화해 온 4단계의 전체 히스토리를 정리해 드립니다.
이 흐름은 이전 단계를 버리는 게 아니라, 안쪽에서부터 outer-layer(바깥 레이어)를 하나씩 쌓아 올리는 과정입니다.
🏛️ AI 엔지니어링 4단계 진화사

1️⃣ Prompt Engineering (2022 ~ 2024년 초)
- 핵심 질문: "AI 모델에게 어떻게 말을 걸어야 말을 잘 알아들을까?"
- 배경: 초기의 단령형 모델은 의도를 오해하거나 지시를 자주 놓쳤습니다.
- 주요 기법: Few-shot(예시 추가), CoT("Step-by-step으로 생각해줘"), 역할 부여.
- 한계: 아무리 문장을 예쁘게 다듬어도, 모델이 접근할 수 있는 정보가 부족하면(표현의 문제 vs 정보의 문제) 한계가 명확했습니다.
2️⃣ Context Engineering (2024년 말 ~ 2025년)
- 핵심 질문: "AI 모델에게 어떤 정보와 맥락을 먹여줘야 할까?"
- 배경: 프롬프트 입력창이 길어지고(Context Window 확장), RAG(검색 증강 생성) 기법과 .cursorrules, CLAUDE.md 같은 프로젝트 규칙 파일이 보편화되었습니다.
- 주요 기법: 정보 큐레이션, 컨텍스트 축소/요약(Compact), 메모리 관리, 적시 정보 검색.
- 한계: 맥락을 너무 많이 채우면 모델이 지침을 놓치거나 멍청해지는 'Context Rot(맥락 부패)' 현상이 발생하여, 환경과의 실시간 상호작용이 필요해졌습니다.
3️⃣ Harness Engineering (2025년 말 ~ 2026년 초)
- 핵심 질문: *"AI 에이전트가 오작동하지 않고 일할 통제된 안전 환경(마구)*을 어떻게 깔아줄까?"
- 배경: AI가 단순히 글을 쓰는 것을 넘어 직접 코드를 실행하고 터미널 명령을 수행하게 되면서 나온 개념입니다. (Harness = 말에 채우는 고삐/마구)
- 주요 기법:
o 외부 시스템 연동 프로토콜(MCP)
o 안전한 격리 샌드박스, 파일 접근 권한 제한
o 기계적 강제(Mechanical Enforcement): 커스텀 린터(Linter)와 테스트 빌더를 붙여 AI가 작성한 에러를 기계적으로 차단 - 한계: 환경은 완성되었지만, 여전히 에러가 날 때마다 사람이 다음 명령을 손수 입력해야만 했습니다.
4️⃣ Loop Engineering (2026년 최신 패러다임)
- 핵심 질문: "사람이 상주하지 않아도 스스로 시도-검증-수정을 반복하여 목표를 완수하는 루프(Loop)를 어떻게 설계할 것인가?"
- 배경: 2026년 6월, AI 에이전트 개발자들의 주도로 급부상했습니다. 엔지니어의 작업은 "명령하기"에서 "목표와 종료 조건을 세팅하고 자율 루프를 돌리는 일"로 탈바꿈했습니다.
- 주요 5대 요소:
1. 트리거 (Trigger): 백그라운드나 주기적(cron)으로 루프를 발동
2. 실행 (Execution): 코딩, 테스트, 검색 수행
3. 검증 (Verification): 사람이 보는 것이 아닌, CI/단위 테스트/린터 성공 여부로 판단
4. 종료 조건 (Termination): 성공 시 PR 생성 후 종료, 10회 이상 실패 시 사람에게 에스컬레이션
5. 메모리/상태 (State): 바퀴를 돌 때마다 진행 상황을 외부 마크다운이나 DB에 기록
💡 핵심 요약
과거에는 **"프롬프트를 내가 직접 썼다"**면,
이제 루프 엔지니어링 시대에는 **"내가 설계한 루프 안에서 시스템이 AI에게 프롬프트를 재생성해 가며 통과할 때까지 밤새 혼자 테스트를 돌리게 만든다"**로 변화했습니다.
4️⃣ Graph Engineering (그래프 엔지니어링)
루프 엔지니어링(Loop Engineering)이 *'스스로 시도하고 수정하는 자율적인 실행 엔진'*에 집중한다면, 그래프 엔지니어링(Graph Engineering)은 *'복잡하고 비선형적인 AI 에이전트들의 협업 구조와 상태 흐름을 오케스트레이션하는 설계 기법'*입니다.
동일한 양식과 깊이로 그래프 엔지니어링의 정수를 정리해 드립니다.
핵심 질문: "단일 에이전트의 한계를 넘어, 복잡한 비선형(Non-linear) 문제와 다단계 의사결정을 어떤 그래프 구조(노드와 엣지)로 통제 가능하게 연결할 것인가?"
배경
단순한 선형(Linear) 체인이나 단일 에이전트 방식은 복잡한 비즈니스 로직, 예외 처리, 다중 에이전트 협업 시스템에서 환각(Hallucination) 유발 및 제어 불가 문제를 야기했습니다.
이에 따라 에이전트를 예측 가능하고 복구 가능한 상태 기계(State Machine) 및 유향 그래프(DAG/Graph)로 모델링하여, 복잡한 의사결정 경로를 명확히 제어하는 그래프 엔지니어링이 에이전트 아키텍처의 표준 패러다임으로 자리 잡았습니다.
주요 5대 요소
1. 노드 (Nodes: 작업자 및 실행 단위)
- 역할: 독립된 처리 단위나 특정 역할을 가진 AI 에이전트, 혹은 도구(Tool) 실행 함수입니다.
- 특징: 각 노드는 명확한 단일 책임(Single Responsibility)을 가지며, 입력 상태(State)를 받아 처리한 뒤 변경된 상태를 반환합니다. (예: 검색 에이전트 노드, 코드 작성 노드, 검수 노드)
2. 엣지 및 조건부 라우팅 (Edges & Conditional Routing: 흐름 제어)
- 역할: 노드와 노드 사이의 이동 경로를 정의하며, 조건에 따라 실행 흐름을 어디로 보낼지 결정합니다.
- 특징: 단순 고정 경로가 아니라 "검증 노드의 점수가 80점 미만이면 코드 수정 노드로 회귀(Cycle), 이상이면 종료 노드로 이동"과 같이 LLM의 판단이나 조건식에 따른 동적 분기를 수행합니다.
3. 공유 상태 (Shared State: 중앙 상태 스키마)
- 역할: 그래프 전체를 관통하며 모든 노드가 공유하는 중앙 데이터 저장소(Data Schema)입니다.
- 특징: 각 노드는 자신이 필요한 데이터만 읽고, 작업 결과를 상태에 누적·업데이트합니다. 메시지 이력, 실행 결과, 중간 변수 등이 이 상태 스키마에 엄격하게 정의됩니다.
4. 체크포인트 및 인간 개입 (Checkpointing & Human-in-the-loop)
- 역할: 그래프의 각 단계 실행 직후 상태를 영속적 DB에 저장(Checkponting)하여 일시 정지, 타임트래블(시간 되돌리기), 또는 사람의 승인 단계를 삽입합니다.
- 특징: 에이전트가 중대한 결정(예: 결제, DB 삭제, 메일 발송)을 내리기 직전 그래프 흐름을 대기 상태로 두고, 사람이 승인하거나 상태를 일부 수정한 뒤 다시 재개(Resume)할 수 있게 합니다.
5. 순환 및 병렬화 (Cycles & Parallel Execution: 유연성 확보)
- 역할: 반복 작업(Looping)과 무관한 작업의 동시 실행을 구조적으로 지원합니다.
- 특징: 다수의 검증 노드를 동시(Parallel)에 실행하여 시간을 단축하고, 검증 실패 시 이전 단계 노드로 되돌아가는 순환(Cycle) 구조를 그래프 형태로 안전하게 표현합니다.
한눈에 보는 비교
| 구분 | 루프 엔지니어링 (Loop) | 그래프 엔지니어링 (Graph) |
| 관점 | 단일/복합 에이전트의 자율적 피드백 수렴 | 시스템 전체의 워크플로우 및 관계 오케스트레이션 |
| 주요 목적 | 시도-검증-수정 반복을 통한 완결성 확보 | 다단계 비선형 분기, 에이전트 간 역할 분담 및 제어 |
| 핵심 구조 | Trigger -> Execute -> Verify -> Terminate | Node(Task) + Edge(Routing) + State(Data) |
루프 엔지니어링과 그래프 엔지니어링을 결합한 실제 에이전트 설계 예시
루프 엔지니어링의 '스스로 시도하고 검증하는 자율성'과 그래프 엔지니어링의 '명확한 역할 분담 및 조건부 흐름 제어'를 결합하면, 사람이 개입하지 않고도 고품질의 결과물을 만들어내는 강력한 에이전트 시스템을 구축할 수 있습니다.
가장 대표적인 예시인 "자율 소프트웨어 기능 개발 에이전트(Autonomous Feature Developer)" 아키텍처를 소개합니다.
🏗️ 시스템 아키텍처: 자율 소프트웨어 기능 개발 에이전트
이 시스템의 목표는 사용자로부터 "새로운 기능 요구사항"을 받아 코드 작성, 테스트, 수정, PR 생성까지 스스로 완수하는 것입니다.

⚙️ 결합 시스템의 작동 방식
1. 그래프 레이어: 전체 워크플로우와 역할 통제
전체 시스템은 유향 그래프(DAG + Cycle) 형태로 관리되며, 공유 상태(Shared State)를 통해 데이터를 전달합니다.
- 공유 상태 스키마 (Shared State):
{
"requirement": "유저 로그인 시 2FA 인증 기능 추가",
"plan_doc": "...",
"code_files": { "auth.py": "..." },
"test_results": { "status": "FAIL", "error_log": "..." },
"loop_count": 3,
"security_issues": []
}
- 조건부 엣지(Conditional Edge):
2. 루프 레이어: 노드 내부 및 국소 구간의 자율 수정
그래프의 [3. 자율 실행 및 검증 루프] 구간에서는 루프 엔지니어링의 5대 요소가 가동됩니다.
1. 트리거 (Trigger): Coder 노드에서 새로운 코드가 생성되거나 상태(State)가 업데이트되는 즉시 실행.
2. 실행 (Execution): 샌드박스 환경(Docker Container)에서 작성된 코드를 기반으로 pytest 및 린터(Linter) 실행.
3. 검증 (Verification): 단순 LLM의 "잘 작성했다"는 평가가 아니라, CI Test Exit Code(0) 및 Code Coverage 80% 이상이라는 객관적 지표로 성공 판단.
4. 종료 조건 (Termination):
o 성공: 모든 단위 테스트 통과 시 다음 노드(Reviewer)로 상태 이전.
o 실패: 에러 로그를 State에 기록하고 loop_count를 +1 한 뒤 Coder 노드로 되돌려 코드 다시 작성. (최대 5회 제한)
5. 메모리/상태 (State): 이전 시도에서 발생했던 에러 로그와 수정 이력을 축적하여 동일한 실수를 반복하지 않도록 Coder의 프롬프트 context로 제공.
💡 결합의 핵심 시너지
| 관점 | 단일 루프만 사용할 때 | 그래프 + 루프 결합 시 |
| 문제점 | 코드 작성과 보안 검수, 기획을 하나의 큰 루프에서 돌리면 컨텍스트가 꼬이고 무한 루프에 빠지기 쉬움. | **관심사의 분리(SoC)**가 이루어짐. 기획, 작성, 검수를 별도 노드로 나누고 필요한 구간에서만 핀포인트 루프를 가동. |
| 안정성 | 언제 멈출지 예측하기 어렵고 디버깅이 힘듦. | 체크포인트를 통해 중간 상태를 언제든 확인하고, 특정 노드 실패 시 해당 노드부터 재개 가능. |
이처럼 그래프 엔지니어링으로 에이전트의 거시적 이동 경로와 안전장치를 설계하고, 루프 엔지니어링으로 세부 작업의 자동 완성도를 높이는 것이 2026년 에이전틱 AI 아키텍처의 핵심 패턴입니다.
'컴퓨터 활용(한글, 오피스 등) > 기타' 카테고리의 다른 글
| n8n 활용 - 구글 스프레드 시트 (0) | 2026.07.28 |
|---|---|
| WSL의 UBUNTU에 N8N설치하고 윈도우11에서 접속하여 운영하는 방법 (0) | 2026.07.28 |
| GLM 설치 가이드 (0) | 2026.07.25 |
| 가트너, 2026년 기업 혁신을 이끌 10대 기술 키워드 (0) | 2026.07.23 |
| AI 동향 (0) | 2026.07.23 |