k
korAI
중급 전체
중급2026-05-066분

Claude가 '생각하게' 만드는 Chain-of-Thought 프롬프트 기법

복잡한 추론이 필요한 작업에서 CoT 프롬프트를 활용하면 Claude의 정확도를 극적으로 높일 수 있습니다. 단계별 사고를 유도하는 패턴을 익혀 프로덕션 품질의 결과를 얻어보세요.

prompt-engineeringchain-of-thoughtfew-shot

CoT 프롬프트란 무엇인가?

Chain-of-Thought(CoT)는 모델에게 최종 답만 요구하는 대신, 중간 추론 단계를 명시적으로 출력하도록 유도하는 기법입니다. 수학 계산, 논리 퍼즐, 다단계 의사결정처럼 '왜'가 중요한 상황에서 특히 효과적입니다.

기본 트리거 문구:

  • "단계별로 생각해보세요."
  • "결론에 도달하기 전에 각 단계를 설명해주세요."
  • "먼저 문제를 분해한 뒤 풀어주세요."

Few-shot CoT로 형식까지 고정하기

Zero-shot CoT만으로 부족할 때는 예시(Few-shot)를 함께 제공해 추론 형식 자체를 학습시킵니다.

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic();

const FEW_SHOT_COT_SYSTEM = `
당신은 꼼꼼한 분석가입니다.
항상 다음 형식으로 답변하세요:
[분석] 문제를 단계별로 분해합니다.
[계산] 각 단계를 순서대로 실행합니다.
[결론] 최종 답을 명확히 제시합니다.
`.trim();

const FEW_SHOT_EXAMPLE = `
<example>
사용자: 상품 가격이 12,000원이고 15% 할인 후 10% 부가세가 붙으면 최종 가격은?
어시스턴트:
[분석]
- 원가: 12,000원
- 1단계: 15% 할인 적용
- 2단계: 10% 부가세 적용

[계산]
- 할인 후: 12,000 × (1 - 0.15) = 12,000 × 0.85 = 10,200원
- 부가세 후: 10,200 × (1 + 0.10) = 10,200 × 1.10 = 11,220원

[결론] 최종 가격은 **11,220원**입니다.
</example>
`.trim();

async function analyzeWithCoT(userQuestion: string): Promise<string> {
  const response = await client.messages.create({
    model: "claude-haiku-4-5",
    max_tokens: 1024,
    system: FEW_SHOT_COT_SYSTEM,
    messages: [
      {
        role: "user",
        content: FEW_SHOT_EXAMPLE + "\n\n" + userQuestion,
      },
    ],
  });

  const content = response.content[0];
  return content.type === "text" ? content.text : "";
}

// 실행 예시
const question =
  "월급 3,200,000원에서 소득세 3.3%와 4대보험 9.4%를 제하면 실수령액은?";
analyzeWithCoT(question).then(console.log);

CoT 효과를 극대화하는 고급 패턴

역방향 검증 추가하기: 답을 구한 뒤 "이제 반대 방향으로 검증해주세요"를 덧붙이면 오류를 스스로 잡아냅니다.

트리 오브 쏘트(ToT) 힌트: "두 가지 접근법을 각각 시도한 뒤 더 나은 것을 선택하세요"처럼 여러 경로를 탐색하게 할 수 있습니다.

추론 길이 조절: max_tokens를 넉넉히 설정하세요. CoT는 응답이 길어지므로 claude-haiku-4-5로 비용을 절감하면서도 충분한 토큰을 확보하는 것이 핵심입니다.


✅ 체크리스트

  • [ ] 프롬프트에 "단계별로" 또는 "이유를 설명하며" 같은 CoT 트리거를 포함했다
  • [ ] 복잡한 작업에는 Few-shot 예시로 출력 형식을 고정했다
  • [ ] max_tokens를 최소 512 이상으로 설정해 추론이 잘리지 않도록 했다
  • [ ] 결과의 추론 단계가 논리적으로 이어지는지 사람이 직접 검토했다
  • [ ] 단순 작업에는 CoT를 생략해 불필요한 토큰 낭비를 막았다