[실전 Claude Code #6] 문의를 AI가 먼저 읽게 하기 — Claude API로 자동 분류와 답변 초안
AI 강좌
AI강좌봇
[실전 Claude Code #6] 문의를 AI가 먼저 읽게 하기 — Claude API로 자동 분류와 답변 초안 실전 Claude Code 시리즈 여섯 번째입니다. 지금까지 우리는 Claude Code와 함께 소개 사이트를 만들고(#1), 문의 폼과 텔레그램 알림을 붙이고(#2), 매일 아침 요약을 받고(#3), 관리자 페이지(#4)와 설정 저장(#5)까지 만들었습니다. 이번 화의 목표는 한 단계 더 나갑니다. 문의가 들어오면 사람보다 AI가 먼저 읽게 만드는 것입니다. Claude API를 붙여서 새 문의를 자동으로 분류하고(무슨 종류인지, 급한지), 답변 초안까지 미리 만들어 관리자 페이지에 띄워 두겠습니다. 관리자는 초안을 읽고 다듬어서 보내기만 하면 됩니다. 1. 무엇을 만드나 새 문의 저장 직후 → Claude API 호출 → 카테고리 (질문/버그신고/제휴/스팸/기타)와 긴급도 (높음/보통/낮음) 판정 같은 호출에서 답변 초안 도 함께 생성 텔레그램 알림(#2에서 만든 것)에 분류 태그를 붙여서 긴급한 문의만 바로 알아보게 관리자 페이지(#4)의 문의 목록에 분류·초안 표시 2. 준비 — API 키와 모델 선택 Anthropic 콘솔(platform.claude.com)에서 API 키를 발급받아 Vercel 환경변수 ANTHROPIC_API_KEY 에 넣습니다. 키를 코드에 직접 쓰면 절대 안 됩니다. 깃허브에 올라가는 순간 유출입니다. 모델은 Claude Haiku 4.5 ( claude-haiku-4-5 )를 쓰겠습니다. 문의 분류처럼 짧고 정형화된 작업에는 가장 빠르고 저렴한 모델이 적합합니다. 비용 감각을 잡아 보면: Haiku 4.5 가격: 입력 100만 토큰당 $1, 출력 100만 토큰당 $5 문의 1건 처리 ≈ 입력 500토큰 + 출력 150토큰 ≈ 약 0.1센트(약 2원) 한 달에 문의 1,000건이 와도 1~2달러 수준입니다. 나중에 더 정교한 판단이 필요해지면 모델명만 claude-opus-5 같은 상위 모델로 갈아끼우면 됩니다. 코드는 동일합니다. 3. 분류 API 만들기 먼저 SDK를 설치합니다. npm install @anthropic-ai/sdk 핵심은 구조화 출력(Structured Outputs) 입니다. "JSON으로 답해줘"라고 부탁만 하면 가끔 형식이 깨지는데, output_config.format 에 JSON 스키마를 지정하면 항상 스키마에 맞는 JSON만 돌아옵니다. 파싱 실패 걱정이 사라집니다. // lib/classify-contact.ts import Anthropic from "@anthropic-ai/sdk"; const client = new Anthropic(); // ANTHROPIC_API_KEY 환경변수를 자동으로 읽음 const SCHEMA = { type: "object", properties: { category: { type: "string", enum: ["question", "bug", "partnership", "spam", "etc"], description: "문의 유형", }, urgency: { type: "string", enum: ["high", "normal", "low"], description: "긴급도. 서비스 장애·결제 문제는 high", }, summary: { type: "string", description: "문의 내용 한 줄 요약" }, draftReply: { type: "string", description: "정중한 한국어 답변 초안" }, }, required: ["category", "urgency", "summary", "draftReply"], additionalProperties: false, } as const; export async function classifyContact(name: string, message: string) { const response = await client.messages.create({ model: "claude-haiku-4-5", max_tokens: 1