Loading...
    • 개발자 가이드
    • API 참조
    • MCP
    • 리소스
    • 릴리스 노트
    Search...
    ⌘K
    첫 단계
    Claude 소개빠른 시작
    모델 및 가격
    모델 개요모델 선택Claude 4.5의 새로운 기능Claude 4.5로 마이그레이션모델 지원 중단가격
    Claude로 빌드
    기능 개요Messages API 사용컨텍스트 윈도우프롬프팅 모범 사례
    기능
    프롬프트 캐싱컨텍스트 편집Extended thinking노력메시지 스트리밍배치 처리인용다국어 지원토큰 계산임베딩비전PDF 지원Files API검색 결과구조화된 출력
    도구
    개요도구 사용 구현 방법토큰 효율적인 도구 사용세분화된 도구 스트리밍Bash 도구코드 실행 도구프로그래밍 방식 도구 호출컴퓨터 사용 도구텍스트 편집기 도구웹 페치 도구웹 검색 도구메모리 도구도구 검색 도구
    Agent Skills
    개요빠른 시작모범 사례API와 함께 Skills 사용
    Agent SDK
    개요TypeScript SDKPython SDK마이그레이션 가이드
    스트리밍 입력권한 처리세션 관리SDK의 구조화된 출력Agent SDK 호스팅시스템 프롬프트 수정SDK의 MCP사용자 정의 도구SDK의 서브에이전트SDK의 슬래시 명령SDK의 Agent Skills비용 및 사용량 추적할 일 목록SDK의 플러그인
    API의 MCP
    MCP 커넥터원격 MCP 서버
    타사 플랫폼의 Claude
    Amazon BedrockMicrosoft FoundryVertex AI
    프롬프트 엔지니어링
    개요프롬프트 생성기프롬프트 템플릿 사용프롬프트 개선기명확하고 직접적으로예제 사용 (다중 샷 프롬프팅)Claude가 생각하도록 하기 (CoT)XML 태그 사용Claude에게 역할 부여 (시스템 프롬프트)Claude의 응답 미리 채우기복잡한 프롬프트 연결긴 컨텍스트 팁Extended thinking 팁
    테스트 및 평가
    성공 기준 정의테스트 케이스 개발평가 도구 사용지연 시간 감소
    보안 강화
    환각 감소출력 일관성 증가탈옥 완화스트리밍 거부프롬프트 유출 감소Claude 캐릭터 유지
    관리 및 모니터링
    Admin API 개요사용량 및 비용 APIClaude Code Analytics API
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    가이드

    세션 관리

    Claude Agent SDK가 세션과 세션 재개를 처리하는 방법 이해하기

    세션 관리

    Claude Agent SDK는 대화 상태와 재개를 처리하기 위한 세션 관리 기능을 제공합니다. 세션을 통해 전체 컨텍스트를 유지하면서 여러 상호작용에 걸쳐 대화를 계속할 수 있습니다.

    세션 작동 방식

    새로운 쿼리를 시작하면 SDK가 자동으로 세션을 생성하고 초기 시스템 메시지에서 세션 ID를 반환합니다. 이 ID를 캡처하여 나중에 세션을 재개할 수 있습니다.

    세션 ID 가져오기

    import { query } from "@anthropic-ai/claude-agent-sdk"
    
    let sessionId: string | undefined
    
    const response = query({
      prompt: "웹 애플리케이션 구축을 도와주세요",
      options: {
        model: "claude-sonnet-4-5"
      }
    })
    
    for await (const message of response) {
      // 첫 번째 메시지는 세션 ID가 포함된 시스템 초기화 메시지입니다
      if (message.type === 'system' && message.subtype === 'init') {
        sessionId = message.session_id
        console.log(`세션이 ID로 시작되었습니다: ${sessionId}`)
        // 나중에 재개하기 위해 이 ID를 저장할 수 있습니다
      }
    
      // 다른 메시지들을 처리합니다...
      console.log(message)
    }
    
    // 나중에 저장된 sessionId를 사용하여 재개할 수 있습니다
    if (sessionId) {
      const resumedResponse = query({
        prompt: "중단했던 곳부터 계속하세요",
        options: {
          resume: sessionId
        }
      })
    }

    세션 재개

    SDK는 이전 대화 상태에서 세션을 재개하는 것을 지원하여 지속적인 개발 워크플로우를 가능하게 합니다. 이전 대화를 계속하려면 세션 ID와 함께 resume 옵션을 사용하세요.

    import { query } from "@anthropic-ai/claude-agent-sdk"
    
    // ID를 사용하여 이전 세션을 재개합니다
    const response = query({
      prompt: "중단했던 곳부터 인증 시스템 구현을 계속하세요",
      options: {
        resume: "session-xyz", // 이전 대화의 세션 ID
        model: "claude-sonnet-4-5",
        allowedTools: ["Read", "Edit", "Write", "Glob", "Grep", "Bash"]
      }
    })
    
    // 대화는 이전 세션의 전체 컨텍스트와 함께 계속됩니다
    for await (const message of response) {
      console.log(message)
    }

    SDK는 세션을 재개할 때 대화 기록과 컨텍스트를 자동으로 로드하여 Claude가 중단했던 곳에서 정확히 계속할 수 있도록 합니다.

    세션 포킹

    세션을 재개할 때 원래 세션을 계속하거나 새로운 브랜치로 포킹할 수 있습니다. 기본적으로 재개는 원래 세션을 계속합니다. forkSession 옵션(TypeScript) 또는 fork_session 옵션(Python)을 사용하여 재개된 상태에서 시작하는 새로운 세션 ID를 생성하세요.

    세션을 포킹해야 하는 경우

    포킹은 다음과 같은 경우에 유용합니다:

    • 같은 시작점에서 다른 접근 방식을 탐색하고 싶을 때
    • 원본을 수정하지 않고 여러 대화 브랜치를 생성하고 싶을 때
    • 원래 세션 기록에 영향을 주지 않고 변경사항을 테스트하고 싶을 때
    • 다른 실험을 위해 별도의 대화 경로를 유지하고 싶을 때

    포킹 vs 계속하기

    동작forkSession: false (기본값)forkSession: true
    세션 ID원본과 동일새로운 세션 ID 생성
    기록원래 세션에 추가재개 지점에서 새로운 브랜치 생성
    원래 세션수정됨변경되지 않고 보존됨
    사용 사례선형 대화 계속대안 탐색을 위한 브랜치

    예제: 세션 포킹

    import { query } from "@anthropic-ai/claude-agent-sdk"
    
    // 먼저 세션 ID를 캡처합니다
    let sessionId: string | undefined
    
    const response = query({
      prompt: "REST API 설계를 도와주세요",
      options: { model: "claude-sonnet-4-5" }
    })
    
    for await (const message of response) {
      if (message.type === 'system' && message.subtype === 'init') {
        sessionId = message.session_id
        console.log(`원본 세션: ${sessionId}`)
      }
    }
    
    // 다른 접근 방식을 시도하기 위해 세션을 포킹합니다
    const forkedResponse = query({
      prompt: "이제 이것을 GraphQL API로 재설계해봅시다",
      options: {
        resume: sessionId,
        forkSession: true,  // 새로운 세션 ID를 생성합니다
        model: "claude-sonnet-4-5"
      }
    })
    
    for await (const message of forkedResponse) {
      if (message.type === 'system' && message.subtype === 'init') {
        console.log(`포킹된 세션: ${message.session_id}`)
        // 이것은 다른 세션 ID가 될 것입니다
      }
    }
    
    // 원래 세션은 변경되지 않고 여전히 재개할 수 있습니다
    const originalContinued = query({
      prompt: "REST API에 인증을 추가하세요",
      options: {
        resume: sessionId,
        forkSession: false,  // 원래 세션 계속 (기본값)
        model: "claude-sonnet-4-5"
      }
    })
    • 세션 ID 가져오기
    • 포킹 vs 계속하기