본문으로 바로가기
리옵트 핸드북
리옵트 핸드북
하네스 엔지니어링

문제 설정·구조

하네스 엔지니어링의 기초Repo-readable 시스템하네스의 5요소하네스의 기술 메커니즘

검증·해석

검증 루프 설계외부 사례 비교

사례별 도입

사례: OpenAI사례: Anthropic사례: Toss사례: gstack사례: revfactory/harness

도메인별 적용

도메인별 적용 지도시나리오: 프론트엔드 팀시나리오: 플랫폼 팀시나리오: 결제·정산 팀시나리오: AI 제품 팀왜 결국 자기 하네스로 가는가

도입·운영

팀 하네스 배포 전략팀 하네스 설계 체크리스트운영: 엔트로피와 가비지 컬렉션

부록

검증 리포트업데이트 내역
핸드북›하네스 엔지니어링›시나리오: 프론트엔드 팀
한국어KOEnglishEN

시나리오: 프론트엔드 팀

UI 팀에서 하네스가 어떻게 브라우저 QA, 접근성, 디자인 규칙을 엔지니어링 시스템으로 만드는지 설명합니다.

핵심 요약

  • 프론트엔드 하네스에서 중요한 건 코드 정확성보다 보이는 상태와 상호작용을 일관되게 검증하는 일입니다.
  • browser QA, visual/interaction 체크리스트, design rules 문서, accessibility gate가 load-bearing 요소입니다.
  • task contract에 must_render(desktop/mobile/empty/error)와 must_verify(키보드, focus trap, 스크린리더 라벨)를 명시합니다.
  • checkout·pricing·auth 화면 변경은 human_gate로 두고, 문구 수정·storybook 예제는 auto로 분리합니다.
  • 30일 도입은 자주 깨지는 화면 2개의 browser QA 템플릿부터 시작해 design-rules와 a11y-checklist를 분리합니다.

프론트엔드 팀의 하네스는 대개 "코드를 바르게 쓰는가"보다 보이는 상태와 상호작용을 얼마나 일관되게 검증하느냐에서 갈립니다.

문제 구조

  • 코드는 맞아 보여도 실제 브라우저에서 깨질 수 있음
  • 모바일/데스크톱/다크모드/빈 상태/에러 상태가 자주 누락됨
  • 디자인 시스템 규칙이 코드 리뷰에서만 늦게 드러남
  • a11y 회귀가 구현 단계에서는 잘 안 보임

load-bearing 하네스 요소

요소왜 중요한가
browser QA텍스트 기반 self-check가 놓치는 상태를 잡음
visual / interaction checklist"렌더링 됨"과 "사용 가능함"을 구분
design rules 문서spacing, typography, component invariant를 고정
accessibility gate키보드, 포커스, 명도, 라벨 회귀 방지

권장 루프

코드 diff만 봐서는 실제 품질을 판정할 수 없습니다. 프론트엔드에서 이 루프가 중요한 이유입니다.

아티팩트 구조 예시

design-rules.md
interaction-states.md
a11y-checklist.md
ui-task-contract.yaml
browser-qa-report.md
visual-regression-notes.md

task contract 예시

ui_change:
  goal: "검색 패널 상호작용 개선"
  must_render:
    - "desktop"
    - "mobile"
    - "empty state"
    - "error state"
  must_verify:
    - "keyboard navigation"
    - "focus trap"
    - "screen reader label"
  non_goals:
    - "검색 API 변경"
  escalation:
    - "design token 추가 필요"

왜 이게 엔지니어링인가

프론트엔드 하네스는 사실상 UI state-space management입니다.

  • 어떤 상태를 보여야 하는지 정의합니다.
  • 어떤 상태를 반드시 검증해야 하는지 고정합니다.
  • 브라우저 검증을 완료 정의에 넣습니다.
  • 디자인 시스템 규칙을 사람이 기억하지 않도록 외부화합니다.

감각 좋은 프론트엔드 개발자의 머릿속에만 있던 체크리스트를 시스템으로 내려놓는 작업입니다.

approval / handoff 예시

frontend_approval:
  auto:
    - "문구 수정"
    - "storybook 예제 추가"
  review_required:
    - "사용자 노출 UI 변경"
    - "design token 변경"
  human_gate:
    - "checkout / pricing / auth 화면 변경"

자주 망하는 패턴

실패 패턴하네스로 막는 방식
데스크톱만 보고 완료 처리must_render에 모바일/빈 상태 강제
클릭은 되지만 키보드 접근 불가a11y checklist와 keyboard QA 분리
디자인 시스템 규칙 위반design-rules.md + review rubric
브라우저 확인 없이 shipbrowser QA를 release gate로 승격

30일 도입 순서

  1. 자주 깨지는 화면 2개를 골라 browser QA report 템플릿을 만든다.
  2. design-rules.md와 a11y-checklist.md를 분리한다.
  3. UI 변경은 최소한 browser + keyboard + empty/error state를 통과하도록 고정한다.

먼저 연결해서 볼 장

  • /books/harness-engineering/case-openai
  • /books/harness-engineering/case-anthropic
  • /books/harness-engineering/checklist

관련 문서

접근성 내장

AI 시대의 디자인 시스템 · AI가 자동으로 접근성을 갖춘 컴포넌트를 생성하도록 설계하기

에이전틱 디자인 품질 제어

AI 시대의 디자인 시스템 · Codex와 Claude Code가 자주 만드는 평균적 UI 편향을 제어하고 더 높은 품질을 끌어내는 agent engineering 방법

하네스의 기술 메커니즘

왜 하네스가 감각이 아니라 엔지니어링 대상인지, 입력·상태·검증·권한 경계 관점에서 설명합니다.

실행 플레이북

AI 시대의 디자인 시스템 · 토큰(1주) → 컴포넌트 명세·접근성(2주) → AI 문서(3주) → 품질 게이트·변경 관리(4주)로 AI-First 디자인 시스템을 4주 만에 운영 가능 상태로 만드는 최소 경로.

도메인별 적용 지도

프론트엔드 팀, 플랫폼 팀, 결제·정산 팀, AI 제품 팀이 하네스를 어떻게 다르게 설계해야 하는지 안내합니다.

On this page

문제 구조load-bearing 하네스 요소권장 루프아티팩트 구조 예시task contract 예시왜 이게 엔지니어링인가approval / handoff 예시자주 망하는 패턴30일 도입 순서먼저 연결해서 볼 장