본문 바로가기
컴퓨터 활용(한글, 오피스 등)/기타

AI 엔지니어링 5단계 진화사

by 3604 2026. 7. 27.
728x90

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 아키텍처의 핵심 패턴입니다.

 

728x90