"AI라는 강력한 엔진에 '핸들'과 '브레이크'를 다는 법"
최근 안드레 카파시가 언급한 '바이브 코딩(Vibe Coding)'의 시대가 열리면서, 누구나 자연어로 소프트웨어를 만들 수 있게 되었습니다. 하지만 AI는 똑똑한 만큼 불안정합니다. 긴 작업을 하다 보면 앞서 정한 규칙을 잊거나(Context Drift), 에러가 났을 때 엉뚱한 방향으로 폭주하곤 하죠.
저는 제가 준비 중인 '디지털 소외 계층이나 분야를 위한 혁신 솔루션' 개발 과정에서, AI가 길을 잃지 않고 끝까지 완주할 수 있도록 돕는 안전장치인 '하네스 엔지니어링(Harness Engineering)'을 시스템적으로 구축해보고자 했습니다.
주요 도구: AI 코딩 에이전트(Cursor, Windsurf), Markdown 기반의 상태 관리 파일들.
활용 전략: "보고 -> 잡고 -> 되살리기"의 3단계 제어 시스템 구축.
1) SSOT(진실의 단일 원천) 구축
AI가 참조할 공식 안내서를 프로젝트 루트에 배치했습니다.
CLAUDE.md: 프로젝트의 핵심 규칙과 코딩 스타일 정의.progress.md: 현재 진행 상황과 다음 할 일(Todo) 목록.architecture.md: 시스템의 구조와 데이터 흐름도.
2) 2-Part 에이전트 분업
'세팅 담당(Initialization)'과 '작업 담당(Execution)' 에이전트를 분리하여 AI의 인지 부하를 줄였습니 다.
3) 활용 프롬프트 (예시)
[Harness Setup Prompt]
"너는 지금부터 내 프로젝트의 '하네스 에이전트'야. 모든 작업을 시작하기 전에
progress.md를 읽고 현재 위치를 파악해. 작업을 마친 후에는 반드시CLAUDE.md의 규칙을 준수했는지 검토하고, 변경 사항을progress.md에 업데이트해줘. 만약 논리적 충돌이 발생하면 작업을 멈추고 나에게 승인을 요청해."
결과와 배운 점
배운 점과 나만의 꿀팁을 알려주세요.
개발의 본질 변화: 이제 개발은 코드를 '쓰는 일'이 아니라, AI가 달릴 '궤도(Harness)'를 '설계하는 일'이 되었습니다.
꿀팁: AI에게 일을 시키기 전, "이 작업이 망했을 때 돌아갈 세이브 포인트가 어디인가?"를 먼저 자문해 보세요.
git commit을 자주 하거나 가이드 문서를 최신화하는 것만으로도 하네스의 절반은 완성됩니다.
과정 중에 어떤 시행착오를 겪었나요?
하네스의 과적합: 규칙을 너무 촘촘하게 만들면 AI의 창의적인 해결책(바이브)이 막히고 속도가 느려집니다. '최소한의 가드레일'과 '자율성' 사이의 균형을 잡는 것이 가장 어려웠습니다.
도움이 필요한 부분이 있나요?
현재는 텍스트 기반의 하네스를 사용 중인데, 이를 시각적으로 모니터링하거나 에러 발생 시 자동으로 롤백(Rollback)되는 더 자동화된 워크플로우를 고도화하고 싶습니다.
앞으로의 계획이 있다면 들려주세요.
이 하네스 구조를 활용해 '시니어 고고'의 MVP를 빠르게 빌드할 예정입니다. 특히 시니어분들이 AI를 사용할 때 겪는 심리적 불안을 해소할 수 있는 '사용자용 하네스 UX'를 연구해 보려 합니다.
도움 받은 글 (옵션)
Andrej Karpathy의 "Vibe Coding" 트윗 및 관련 논의들.
지피터스 내 AI 자동화 및 에이전트 설계 사례들.
분석 프레임워크 (Frameworks)
제1원칙 사고 (First Principles): 코딩의 핵심은 '언어 숙련도'가 아니라 '논리적 인과관계의 통제'입니다. 하네스는 이 통제력을 인간에게 다시 부여합니다.
모듈러 설계 (Modular Design): 시스템을 쪼개고 각 모듈 사이에 검증 계층(Harness)을 두어, 전체 시스템의 붕괴(Cascading Failure)를 방지합니다.
전략적 옵션 및 리스크 프로필
옵션
전략적 방향
리스크 프로필
컨텍스트
Strict Harness
모든 단계를 인간이 승인.
Low: 안전성 극대화, 속도 저하.
금융, 핵심 로직 개발.
Adaptive Harness
에러 발생 시에만 개입.
Medium: 속도와 안전의 균형.
일반적인 웹/앱 서비스.
Vibe Priority
하네스를 최소화하고 AI 자율성 신뢰.
High: 빠른 프로토타이핑, 버그 위험.
아이디어 스케치, 초기 MVP.
Assumptions, Reasoning, Implications
Assumptions: AI의 성능이 좋아질수록 오히려 인간의 '검증 능력'이 병목 현상이 될 것이다.
Reasoning: 확률적으로 작동하는 대규모 언어 모델(LLM)은 구조적으로 '일관성'을 담보할 수 없으므로, 외부의 '결정론적 시스템(Harness)'이 반드시 필요하다.
Implications: 미래의 코딩은 '자연어'로 의도를 말하고, '하네스'로 그 의도가 실현되는지 감시하는 '오케스트레이션'의 형태가 될 것이다.