OPEN HYPER STEP
← 목록으로 (master-project)
MASTER-PROJECT · 38 / 50
master-project
CHAPTER 38 / 50
읽기 약 2
FUNCTION

AI 품질 관리: 프롬프트 버전 관리 + 평가


핵심 개념

프롬프트 DB·A/B 테스트·평가 데이터셋·LLM as judge·품질 지표 — 출시 후 지속 개선.

본문

프롬프트 버전 관리

SQL📋 코드 (11줄)
create table prompts (
  id uuid primary key default gen_random_uuid(),
  name text not null,
  version int not null,
  template text not null,  -- with {{variable}}
  model text not null,
  temperature float default 0.7,
  is_active boolean default false,
  created_at timestamptz default now(),
  unique(name, version)
);
TS📋 코드 (20줄)
// 활성 프롬프트 가져오기
async function getActivePrompt(name: string) {
  const supabase = createServiceClient()
  const { data } = await supabase
    .from('prompts')
    .select('*')
    .eq('name', name)
    .eq('is_active', true)
    .single()
  return data
}

// 사용
const prompt = await getActivePrompt('copy_generation')
const filled = prompt.template.replace('{{topic}}', userInput)
const result = await generateText({
  model: anthropic(prompt.model),
  temperature: prompt.temperature,
  prompt: filled,
})

A/B 테스트

TS📋 코드 (18줄)
// 50% v1, 50% v2
async function getPromptForUser(name: string, userId: string) {
  const hash = parseInt(userId.slice(0, 8), 16)
  const variant = hash % 2 === 0 ? 1 : 2

  const supabase = createServiceClient()
  const { data } = await supabase
    .from('prompts')
    .select('*')
    .eq('name', name)
    .eq('version', variant)
    .single()

  // 어느 variant를 사용했는지 기록
  await supabase.from('generations').update({ prompt_version: variant })

  return data
}

평가 데이터셋

SQL📋 코드 (12줄)
create table evaluations (
  id uuid primary key default gen_random_uuid(),
  prompt_name text not null,
  prompt_version int,
  input text,
  expected text,
  actual text,
  score float,         -- 0-1
  judge_model text,
  judge_reason text,
  evaluated_at timestamptz default now()
);

LLM as Judge (자동 평가)

TS📋 코드 (39줄)
async function evaluate(input: string, actual: string, criteria: string) {
  const { object } = await generateObject({
    model: anthropic('claude-opus-4-7'),  // 평가는 더 강력한 모델
    schema: z.object({
      score: z.number().min(0).max(10),
      reason: z.string(),
    }),
    prompt: `다음 카피를 평가하세요:
입력: ${input}
출력: ${actual}
기준: ${criteria}

10점 만점으로 평가하고 이유를 한 줄로 설명하세요.`,
  })
  return object
}

// 배치 평가
async function evaluateBatch(name: string, version: number) {
  const supabase = createServiceClient()
  const { data: testCases } = await supabase
    .from('test_cases')
    .select('*')
    .eq('prompt_name', name)

  for (const tc of testCases ?? []) {
    const actual = await generateWithPrompt(name, version, tc.input)
    const eval_ = await evaluate(tc.input, actual, '한국 마케팅 카피로 적합한가')

    await supabase.from('evaluations').insert({
      prompt_name: name,
      prompt_version: version,
      input: tc.input,
      actual,
      score: eval_.score / 10,
      judge_reason: eval_.reason,
    })
  }
}

품질 지표 대시보드

SQL📋 코드 (9줄)
-- 버전별 평균 점수
select
  prompt_version,
  count(*) as runs,
  avg(score) as avg_score,
  percentile_cont(0.5) within group (order by score) as median
from evaluations
where prompt_name = 'copy_generation'
group by prompt_version;

사용자 피드백

SQL📋 코드 (7줄)
create table generation_feedback (
  id uuid primary key default gen_random_uuid(),
  generation_id uuid references generations(id) on delete cascade,
  rating int check (rating in (-1, 0, 1)),  -- 👎 / 보통 / 👍
  comment text,
  created_at timestamptz default now()
);
TSX📋 코드 (6줄)
// UI
<div className="flex gap-2 mt-4">
  <button onClick={() => rate(1)}>👍</button>
  <button onClick={() => rate(-1)}>👎</button>
  <button onClick={() => regenerate()}>다시 생성</button>
</div>

프롬프트 개선 워크플로우

📋 코드 (7줄)
1. 사용자 피드백 수집 (👍 / 👎)
2. 👎 케이스 분석 → 패턴 파악
3. 새 프롬프트 v2 작성
4. 평가 데이터셋에서 v1 vs v2
5. v2 점수 더 높음 → 활성화 (is_active 변경)
6. 50% A/B 1주
7. 통계 유의미 → 100% rollout

다음 챕터 (배포 시작)

CH.39 "Vercel 배포: 환경 변수 + 도메인 + SSL".


AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

내 마스터 프로젝트의 AI 품질 관리 부분을 분석해서
실전 적용 + 개선 우선순위 3가지를 알려줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

AI 품질 관리 관련 모범 사례·안티패턴 5개를
비교 분석해서 실전 적용를 위한 추천 방안을 알려줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

내 프로젝트 전체에서 AI 품질 관리
최적화 가능 위치와 리스크를 보고해줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

2026년 한국 1인 개발자 시장의
AI 품질 관리 트렌드와 차별화 포인트를 정리해줘.

⭐ 이것만 기억하세요
AI 품질 관리: 프롬프트 버전 관리 + 평가 이 3가지만 확실히 잡으세요
1.프롬프트 DB + A/B 테스트 = 데이터 기반 개선
2.LLM as Judge + 사용자 피드백 = 자동 품질 측정
3.다음 챕터에서 Vercel 배포


공유하기
진행도 38 / 50