Claude Code SDK의 두 가지 입력 모드와 각각을 언제 사용해야 하는지 이해하기
import { query } from "@anthropic-ai/claude-code"; import { readFileSync } from "fs"; async function* generateMessages() { // 첫 번째 메시지 yield { type: "user" as const, message: { role: "user" as const, content: "이 코드베이스의 보안 문제를 분석해주세요" } }; // 조건이나 사용자 입력을 기다림 await new Promise(resolve => setTimeout(resolve, 2000)); // 이미지와 함께 후속 조치 yield { type: "user" as const, message: { role: "user" as const, content: [ { type: "text", text: "이 아키텍처 다이어그램을 검토해주세요" }, { type: "image", source: { type: "base64", media_type: "image/png", data: readFileSync("diagram.png", "base64") } } ] } }; } // 스트리밍 응답 처리 for await (const message of query({ prompt: generateMessages(), options: { maxTurns: 10, allowedTools: ["Read", "Grep"] } })) { if (message.type === "result") { console.log(message.result); } }
import { query } from "@anthropic-ai/claude-code"; // 간단한 일회성 쿼리 for await (const message of query({ prompt: "인증 플로우를 설명해주세요", options: { maxTurns: 1, allowedTools: ["Read", "Grep"] } })) { if (message.type === "result") { console.log(message.result); } } // 세션 관리와 함께 대화 계속 for await (const message of query({ prompt: "이제 권한 부여 프로세스를 설명해주세요", options: { continue: true, maxTurns: 1 } })) { if (message.type === "result") { console.log(message.result); } }
Was this page helpful?