⚡ 중급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를 생략해 불필요한 토큰 낭비를 막았다