품질 게이트
AI 에이전트의 작업 결과가 다음 단계로 넘어가기 전에 반드시 통과해야 하는 자동화된 검증 지점이다. 공항의 보안 게이트가 탑승 전 필수 검사를 수행하듯, 품질 게이트는 코드가 프로덕션으로 가기 전에 필수 검증을 수행한다. 에이전틱 엔지니어링에서 품질 게이트는 AI가 생성한 코드의 품질을 인간의 직접 검토 없이도 자동으로 보장하는 핵심 메커니즘이다. 일반적인 품질 게이트 체인: Agent 코드 생성 → [린트 통과?] → [타입 체크 통과?] → [단위 테스트 통과?] → [통합 테스트 통과?] → [보안 스캔 통과?] → [코드 커버리지 기준 충족?] → 인간 리뷰. 각 대괄호가 하나의 Quality Gate이며, 어느 하나라도 실패하면 AI 에이전트에게 피드백이 돌아가 수정을 시도한다. Stripe의 Minions 시스템에서는 CI(지속적 통합) 파이프라인 통과가 필수 품질 게이트로, AI가 작성한 코드가 모든 테스트를 통과해야만 PR이 생성된다. 품질 게이트가 촘촘할수록 AI Slop이 프로덕션에 도달할 확률이 낮아지지만, 너무 과도하면 하네스 부채(Harness Debt)가 발생할 수 있다.
예시
Agent가 코드 생성 → [린트 통과?] → [테스트 통과?] → [보안 스캔 통과?] → 인간 리뷰. 각 대괄호가 하나의 Quality Gate.
참고
CI/CD 파이프라인과 통합하여 자동화. Stripe의 Minions 시스템에서 CI 통과가 필수 Quality Gate.
카테고리
하네스 엔지니어링
난이도
intermediate
태그
품질게이트 · 자동검증
함께 읽기
연관 용어
하네스 엔지니어링
하네스 엔지니어링
AI 에이전트를 둘러싼 전체 운영 환경을 설계하는 기술로, 프롬프트나 컨텍스트뿐 아니라 에이전트가 사용하는 도구, 권한, 상태 관리, 테스트 게이트, 가드레일, 로그, 재시도 메커니즘, 샌드박스 등 '모델 주위의 모든 것'을 포함한다. 2026년 2월 Mitchell Hashimoto(HashiCorp 공동 창립자)가 체계화한 개념으로, 비유하면 '모델은 엔진, 컨텍스트는 연료와 계기판, 하네스는 나머지 전부 — 핸들, 브레이크, 차선, 경고등, 안전벨트, 에어백'이다. 구체적인 하네스 구성 요소: 가드레일(위험한 행위 차단), 품질 게이트(린트·테스트·보안 스캔 통과 필수), 샌드박스(격리된 실행 환경), 텔레메트리(에이전트 행동 로깅), 재시도 로직(실패 시 자동 재시도), 컨텍스트 관리 규칙(AGENTS.md 업데이트 정책). 핵심 철학은 '에이전트가 실수할 때마다, 다음에는 같은 실수를 할 수 없도록 환경을 개선하라'이며, 이는 AGENTS.md에 새로운 규칙을 추가하는 것으로 실현된다. 관계 정리: Prompt Engineering(무엇을 묻는가) → Context Engineering(모델이 무엇을 보는가) → Harness Engineering(전체 시스템이 어떻게 동작하는가). Harness Engineering이 가장 상위 개념이며 나머지를 모두 포함한다.
하네스 엔지니어링
가드레일
LLM의 출력이 지정된 제약 조건과 안전 가이드라인을 준수하도록 보장하는 다층적 안전 메커니즘이다. '가드레일'이라는 명칭은 도로의 가드레일이 차량이 도로를 벗어나는 것을 방지하듯, AI가 허용된 범위를 벗어나는 행동을 차단한다는 비유에서 유래했다. 바이브 코딩에서 가드레일은 세 가지 수준으로 나뉜다: 코드 수준(린터로 스타일 위반 감지, TypeScript 타입 체크로 타입 오류 방지), 실행 수준(터미널 명령어 허용 목록 관리, 'rm -rf /' 같은 위험 명령 차단, 특정 디렉토리 밖 접근 금지), 출력 수준(생성된 코드에 보안 취약점이 없는지 스캔, 민감 정보 노출 방지). YOLO Mode(자동 실행)를 사용할 때는 가드레일이 특히 중요하며, 가드레일 없는 YOLO Mode는 에이전트에게 '검증 없이 아무거나 실행해도 된다'고 허락하는 것과 같다. 하네스 엔지니어링의 핵심 구성 요소로, 가드레일의 수준과 정밀도가 에이전틱 워크플로의 안전성을 결정한다.
하네스 엔지니어링
샌드박스
AI 에이전트가 안전하게 코드를 실행·테스트할 수 있는 격리된 환경으로, 에이전트의 실수나 악의적 코드가 프로덕션 시스템, 호스트 운영체제, 다른 프로젝트에 영향을 미치지 않도록 보호하는 가상 울타리이다. '샌드박스(sandbox)'라는 명칭은 어린이 놀이터의 모래상자에서 유래했는데, 아이가 모래상자 안에서 자유롭게 놀 수 있지만 밖으로는 영향이 미치지 않는 것과 같은 원리이다. 바이브 코딩에서 샌드박스의 중요성: AI 에이전트가 잘못된 코드를 실행하면 파일 삭제, 환경 변수 오염, 네트워크 리소스 오용 등이 발생할 수 있는데, 샌드박스 안에서 실행하면 이러한 피해가 격리된 환경 내에서만 발생하고 실제 시스템에는 영향이 없다. 구현 방식으로는 Docker 컨테이너, 가상 머신(VM), WebContainers(브라우저 내 격리), 임시 클라우드 인스턴스 등이 있다. Devin은 자체 격리 환경에서 작업하며, Bolt.new는 WebContainers를 사용한다. YOLO Mode를 사용할 때는 반드시 샌드박스 환경에서 실행하는 것이 권장된다.