Claude Code 프롬프트 재현성 — 암묵지를 제거하는 자동 튜닝 워크플로우

9 min read
Claude Code프롬프트 엔지니어링AI 에이전트자동화
Claude Code 프롬프트 재현성 — 암묵지를 제거하는 자동 튜닝 워크플로우

프롬프트를 작성하고 나서 "이 정도면 충분하겠지" 싶었는데, 다른 AI 세션에서 돌려보면 전혀 다른 결과가 나오는 경험. 이게 단순한 LLM의 확률적 특성 문제가 아니다. 핵심 원인은 암묵지다.

프롬프트 작성자는 자신의 배경 지식을 무의식적으로 채워 읽기 때문에, 작성 직후의 자체 평가는 신뢰할 수 없다. 이 문제를 구조적으로 해결하는 방법이 있다.

왜 자체 평가는 믿을 수 없나

비유하면 자기 코드를 자기가 바로 리뷰하는 것과 같다. 내가 짠 코드는 내가 의도한 대로 읽힌다. 놓친 엣지 케이스가 눈에 안 들어온다. 프롬프트도 마찬가지다.

작성자는 "이 정도 설명이면 AI가 알아서 하겠지"라고 생각하지만, 실제로 다른 세션에서 돌려보면 전혀 다른 방향으로 실행된다. 이때 나타나는 증상이 있다.

  • AI가 중간에 불필요한 확인 질문을 많이 던진다
  • 비슷한 도구를 여러 번 반복 호출한다
  • 요건 체크리스트의 일부 항목이 달성되지 않는다

이 모두가 프롬프트의 명세 부족을 나타내는 신호다.

[💡 잠깐! 이 용어는?] 암묵지(Tacit Knowledge): 언어로 표현하기 어려운 경험적 지식. 작성자가 당연하게 여기는 맥락이나 판단 기준이 문서화되지 않은 채 남아있는 상태.

핵심 해결책: 평가자와 작성자를 분리한다

이 방법론의 핵심은 단순하다. 내가 작성한 프롬프트를 내가 평가하지 않는다.

Claude Code의 서브에이전트(Task tool)를 사용해서 별도 컨텍스트로 프롬프트를 실행하고, 그 결과를 양면으로 평가한다.

평가 구조:
1. 시나리오 고정 (일반형 1개 + 엣지 케이스 1~2개)
2. 새로운 AI 세션에 dispatch
3. 자기신고 수집: 불명확점, 재량 보완한 부분, 재시도 횟수
4. 객관 측정: 사용한 도구 수, 소요 시간, 요건 체크리스트 달성률

여기서 "같은 AI 재사용 금지"가 중요한 규칙이다. 같은 세션에서 반복하면 컨텍스트가 누적되어 학습 효과가 생기고, 실제로는 프롬프트가 그대로여도 성능이 올라간 것처럼 보인다.

실전 평가 템플릿

prompt-eval-template.md
## 평가 시나리오
 
### 시나리오 A (일반형)
[일반적인 사용 케이스 정의]
 
### 시나리오 B (엣지 케이스)
[경계 조건이나 예외 상황 정의]
 
## 요건 체크리스트
 
- [critical] 산출물 형식이 지정된 스펙과 일치하는가
- [critical] 핵심 기능이 모두 동작하는가
- 부가 조건 1
- 부가 조건 2
 
## 보고 형식 (실행 AI가 작성)
 
산출물: [결과 요약]
요건 달성: ○/×/부분적
불명확했던 점: [목록]
재량으로 보완한 부분: [목록]
재시도 횟수: N회
사용한 도구: N개

[critical] 태그가 붙은 항목은 반드시 달성해야 하는 필수 요건이다. 이 항목에서 ×가 나오면 프롬프트에 해당 내용이 명시적으로 빠져있다는 뜻이다.

반복 프로세스

회차작업판단 기준
1회시나리오 실행 후 보고 수집불명확점 목록 분석
2~N회불명확점 1건씩 최소 수정 후 재실행연속 2회 정체 시 종료
검증hold-out 시나리오로 과적합 확인미사용 케이스에서도 성능 유지

한 번에 여러 부분을 고치면 무엇이 개선을 만들었는지 알 수 없다. 불명확점 1건만 수정하고 새 AI 세션에서 재실행하는 방식으로 진행해야 인과관계가 명확해진다.

수정 시 주의: 반복 중에 시나리오 자체를 바꾸면 기준이 달라져서 개선처럼 위장되는 함정이 생긴다. 시나리오는 처음에 고정하고 절대 건드리지 않는다.

tool_uses 수로 설계 결함 찾기

평가에서 수집한 tool_uses 수는 중요한 진단 지표다.

특정 시나리오에서 도구 사용 횟수가 15+로 튀어오른다면, AI가 참조 파일을 반복해서 읽고 있다는 신호다. 이 경우 프롬프트 본문에 최소 예시를 인라인으로 추가하면 도구 호출 횟수가 줄면서 성능이 개선된다.

Claude Code의 Task tool <usage> 태그에서 이 메트릭을 자동 추출할 수 있다.

usage-parser.ts
interface TaskUsage {
  input_tokens: number
  output_tokens: number
  tool_uses: number
  retries: number
}
 
function parseUsageFromOutput(output: string): TaskUsage {
  const usageMatch = output.match(/<usage>([\s\S]*?)<\/usage>/)
  if (!usageMatch) {
    return { input_tokens: 0, output_tokens: 0, tool_uses: 0, retries: 0 }
  }
 
  const usageText = usageMatch[1]
  return {
    input_tokens: parseInt(usageText.match(/input_tokens:\s*(\d+)/)?.[1] ?? '0'),
    output_tokens: parseInt(usageText.match(/output_tokens:\s*(\d+)/)?.[1] ?? '0'),
    tool_uses: parseInt(usageText.match(/tool_uses:\s*(\d+)/)?.[1] ?? '0'),
    retries: parseInt(usageText.match(/retries:\s*(\d+)/)?.[1] ?? '0'),
  }
}

실제 개선 수치

8개 스킬에 이 방식을 적용한 결과:

지표적용 전적용 후
초기 달성률평균 50점
최종 달성률80~90점
반복 수2~4회로 수렴
전체 시나리오 달성부분 달성연속 2회 100%

conventional-changelog 스킬의 경우:

  • 1회차: 시나리오 A 90%, 시나리오 B 70%
  • 2회차: A 100%, B 85%
  • 3~4회차: 모든 시나리오 100%

구조적으로 TDD와 같다

이 방법론은 TDD(테스트 주도 개발)와 동일한 구조다.

  • TDD: 테스트 → 구현 → 리팩토링
  • 프롬프트 튜닝: 시나리오/요건 고정 → 실행 → 명세 보완

차이는 테스트 코드 대신 평가 시나리오를 먼저 작성한다는 것뿐이다. 그리고 "구현"에 해당하는 프롬프트를 실제 LLM이 실행해서 피드백을 준다.

마무리

  • 평가자와 작성자를 분리하는 것이 핵심이다
  • 같은 세션 재사용 금지 — 새 AI 세션에서 실행해야 컨텍스트 누적 효과가 없다
  • 불명확점은 1건씩 수정, 2회 연속 정체 시 종료
  • tool_uses 수가 과다하면 참조 파일이 누락됐다는 신호
  • 시나리오는 처음에 고정하고 절대 수정하지 않는다

프롬프트를 "잘 쓰는 것"과 "재현 가능하게 쓰는 것"은 다른 문제다. 이 방법론은 후자를 객관적으로 담보하는 구조를 만들어준다.


참고:

관심 있을 만한 포스트

Anthropic Managed Agents — AI 에이전트 인프라를 플랫폼에 넘기다

오케스트레이션, 세션 상태, 샌드박스를 직접 구축하지 않아도 되는 Anthropic 관리형 에이전트 플랫폼의 구조와 트레이드오프를 분석한다.

AnthropicAI 에이전트

Claude Code + Figma MCP — UX 라이팅 리소스 50% 절감 실전기

수치화된 톤 스펙트럼과 Figma MCP 자동화로 반복 작업을 AI에게 넘기고 팀이 맥락과 사용자 경험에 집중하게 만든 과정을 정리한다.

Claude CodeFigma MCP

mini-swe-agent — 100줄짜리 AI가 GitHub 이슈를 해결하는 방법

SWE-bench verified 74% 달성에도 핵심 코드가 100줄인 최소주의 AI 코딩 에이전트의 아키텍처와 동작 원리를 분석한다.

AI 에이전트SWE-bench

Agent Harness Engineering — AI 에이전트 성능을 결정하는 진짜 변수

모델보다 harness가 에이전트 성능을 더 크게 좌우한다는 사실을 Terminal Bench 결과와 함께 검증한다.

AI AgentHarness

AWS DevOps Agent — MTTR 75% 감소를 만든 자율 인시던트 대응 에이전트

Amazon Bedrock AgentCore 기반의 AWS DevOps Agent가 인시던트를 자율 조사하는 방식과 MCP 확장, 94% 루트 코즈 정확도를 분석한다.

AWSDevOps

Claude Code FDE Night 2026 — 기업 AX 전환 최전선의 현장 목소리

서울에서 열린 Claude Code FDE Night 세미나에서 나온 기업 AI 전환 전략과 현장 경험을 정리한다.

Claude CodeAX

Jira 티켓 조사 자동화 — Claude Code + MCP로 반복 작업 날리기

Jira 티켓 분석, 재현, 원인 추적까지 Claude Code와 MCP로 자동화하는 실전 워크플로우를 정리한다.

Claude CodeMCP

AI 코딩 시대 — 성장이 멈추는 개발자의 뇌에서 일어나는 일

AI에 의존할수록 AI를 잘 쓰기 어려워진다는 역설을 신경과학과 인지심리학으로 분석한다.

AI 코딩개발자 성장