⚡ 중급2026-07-066분
Claude가 틀린 답을 낼 때 고치는 CoT 프롬프트 기법
복잡한 추론이 필요한 작업에서 Chain-of-Thought 프롬프팅을 적용하면 Claude의 정확도를 크게 높일 수 있습니다. 단계별 사고를 유도하는 구체적인 패턴을 익혀봅니다.
prompt-engineeringchain-of-thoughtreasoning
왜 CoT가 필요한가
단순히 "답을 알려줘"라고 물으면 Claude는 중간 추론을 생략하고 결론만 반환합니다. 수학 계산, 논리 퍼즐, 다단계 의사결정처럼 중간 과정이 틀리면 최종 답도 틀리는 작업에서는 모델이 스스로 생각의 흐름을 출력하도록 강제해야 합니다.
Zero-shot CoT vs Few-shot CoT
Zero-shot CoT 는 프롬프트 끝에 "단계별로 생각해봐요." 한 줄을 추가하는 것만으로도 동작합니다. 빠르지만 복잡한 도메인에서 불안정합니다.
Few-shot CoT 는 입력-추론-출력 예시를 2~3개 제공해 모델이 따라야 할 추론 형식을 학습하게 합니다. 도메인 특화 작업에 훨씬 강합니다.
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const FEW_SHOT_EXAMPLES = `
예시 1:
문제: 상자 3개에 사과가 각각 12개, 8개, 15개 있습니다. 전체 사과의 1/5을 팔면 남은 사과는?
추론:
1. 전체 사과 = 12 + 8 + 15 = 35개
2. 판 사과 = 35 × (1/5) = 7개
3. 남은 사과 = 35 - 7 = 28개
답: 28개
예시 2:
문제: 시속 60km로 2.5시간 달린 거리의 절반을 시속 40km로 가면 걸리는 시간은?
추론:
1. 달린 거리 = 60 × 2.5 = 150km
2. 절반 거리 = 150 / 2 = 75km
3. 걸리는 시간 = 75 / 40 = 1.875시간 = 1시간 52분 30초
답: 1시간 52분 30초
`;
async function solveWithCoT(problem: string): Promise<void> {
const response = await client.messages.create({
model: "claude-haiku-4-5",
max_tokens: 1024,
messages: [
{
role: "user",
content: `${FEW_SHOT_EXAMPLES}\n---\n위 예시처럼 단계별 추론 후 답을 내세요.\n\n문제: ${problem}`,
},
],
});
const result = response.content[0];
if (result.type === "text") {
console.log(result.text);
}
}
solveWithCoT(
"농장에 닭과 토끼가 합쳐서 20마리 있고 다리는 총 56개입니다. 닭은 몇 마리인가요?"
);
실전 적용 시 주의사항
CoT는 토큰을 더 많이 소비합니다. claude-haiku-4-5는 속도와 비용이 유리하지만, 매우 복잡한 수학·코딩 추론에는 claude-sonnet-4-6으로 업그레이드하는 것을 고려하세요. 또한 추론 과정을 사용자에게 노출하고 싶지 않다면 <thinking> 태그로 감싸도록 시스템 프롬프트에 명시하고 후처리로 제거할 수 있습니다.
체크리스트
- [ ] 작업이 다단계 추론을 요구하는지 확인한다
- [ ] Zero-shot CoT(
"단계별로 생각하세요")로 먼저 테스트한다 - [ ] 정확도가 부족하면 도메인 맞춤 Few-shot 예시 2~3개를 추가한다
- [ ] 예시의 추론 형식(번호 목록, 수식 표기 등)을 실제 문제와 일치시킨다
- [ ] 토큰 사용량을 모니터링하고 복잡도에 따라 모델을 선택한다
- [ ] 추론 과정 노출 여부를 UX 관점에서 결정한다