---
title: 데이터 레지던시
url: https://platform.claude.com/docs/ko/manage-claude/data-residency
description: 지리적 제어를 통해 모델 추론이 실행되는 위치와 데이터가 저장되는 위치를 관리합니다.
---

"Data residency"(데이터 레지던시) 제어를 사용하면 데이터가 처리되고 저장되는 위치를 관리할 수 있습니다. 두 가지 독립적인 설정이 이를 관리합니다:

* **Inference geo(추론 지역):** 요청별로 모델 추론이 실행되는 위치를 제어합니다. `inference_geo` API 매개변수를 통해 설정하거나 워크스페이스 기본값으로 설정합니다.
* **Workspace geo(워크스페이스 지역):** 데이터가 저장 상태로 보관되는 위치와 엔드포인트 처리(이미지 트랜스코딩 및 코드 실행 등)가 이루어지는 위치를 제어합니다. [Claude Console](https://platform.claude.com)에서 워크스페이스 수준으로 구성합니다.

<Note>
  [Claude Managed Agents](https://platform.claude.com/docs/ko/managed-agents/overview)는 에이전트 수준의 지리적 고정을 지원합니다. [에이전트의 모델 구성](https://platform.claude.com/docs/ko/managed-agents/agent-setup#pin-the-inference-geo)에서 `inference_geo`를 설정하면 해당 에이전트를 실행하는 세션의 모델 요청을 처리하는 지역이 고정되며, 세션 생성 시 [세션별 재정의](https://platform.claude.com/docs/ko/managed-agents/sessions#pin-the-inference-geo-for-a-session)가 가능합니다. 고정되지 않은 에이전트는 각 요청에서 워크스페이스의 기본 inference geo를 따릅니다. Managed Agents는 Console에서 구성된 Workspace geo도 준수하며, [자체 호스팅 샌드박스](https://platform.claude.com/docs/ko/managed-agents/self-hosted-sandboxes)를 사용하면 도구 실행과 샌드박스 파일 시스템이 사용자가 제어하는 인프라에 유지됩니다. 연결된 [메모리 스토어](https://platform.claude.com/docs/ko/managed-agents/self-hosted-sandboxes-memory)의 내용은 Anthropic이 계속 저장하며 세션을 위해 사용자의 샌드박스로 복사됩니다.
</Note>

## Inference geo

<Note>
  "zero data retention"(제로 데이터 보존), 즉 ZDR이 이 기능에 어떻게 적용되는지 알아보려면 [API 및 데이터 보존](https://platform.claude.com/docs/ko/manage-claude/api-and-data-retention)을 참조하세요.
</Note>

`inference_geo` 매개변수는 특정 API 요청에 대해 모델 추론이 실행되는 위치를 제어합니다. 모든 `POST /v1/messages` 호출에 추가할 수 있습니다.

| 값          | 설명                                                  |
| ---------- | --------------------------------------------------- |
| `"global"` | 기본값. 최적의 성능과 가용성을 위해 사용 가능한 모든 지역에서 추론이 실행될 수 있습니다. |
| `"us"`     | 미국 기반 인프라에서만 추론이 실행됩니다.                             |

### API 사용법

<CodeGroup>
  ```bash cURL
  curl https://api.anthropic.com/v1/messages \
    -H "x-api-key: $ANTHROPIC_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "content-type: application/json" \
    -d '{
      "model": "claude-opus-5-5",
      "max_tokens": 1024,
      "inference_geo": "us",
      "messages": [{
        "role": "user",
        "content": "Summarize the key points of this document."
      }]
    }'
  ```

  ```bash CLI
  ant messages create \
    --model claude-opus-5-5 \
    --max-tokens 1024 \
    --inference-geo us \
    --message '{role: user, content: "Summarize the key points of this document."}'
  ```

  ```python Python
  client = anthropic.Anthropic()

  response = client.messages.create(
      model="claude-opus-5-5",
      max_tokens=1024,
      inference_geo="us",
      messages=[
          {"role": "user", "content": "Summarize the key points of this document."}
      ],
  )

  for block in response.content:
      if block.type == "text":
          print(block.text)
  # 추론이 실제로 실행된 위치를 확인합니다
  print(f"Inference geo: {response.usage.inference_geo}")
  ```

  ```typescript TypeScript
  const client = new Anthropic();

  const response = await client.messages.create({
    model: "claude-opus-5-5",
    max_tokens: 1024,
    inference_geo: "us",
    messages: [
      {
        role: "user",
        content: "Summarize the key points of this document."
      }
    ]
  });

  const textBlock = response.content.find((block) => block.type === "text");
  console.log(textBlock?.text);
  // 추론이 실제로 실행된 위치를 확인합니다
  console.log(`Inference geo: ${response.usage.inference_geo}`);
  ```

  ```csharp C#
  var client = new AnthropicClient();

  var response = await client.Messages.Create(
      new MessageCreateParams
      {
          Model = Model.ClaudeOpus5_5,
          MaxTokens = 1024,
          InferenceGeo = "us",
          Messages =
          [
              new UserMessageParam { Content = "Summarize the key points of this document." },
          ],
      }
  );

  foreach (var block in response.Content)
  {
      if (block.TryPickText(out var textBlock))
      {
          Console.WriteLine(textBlock.Text);
      }
  }

  // 추론이 실제로 실행된 위치를 확인합니다
  Console.WriteLine($"Inference geo: {response.Usage.InferenceGeo}");
  ```

  ```go Go
  client := anthropic.NewClient()

  message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
  	Model:        anthropic.ModelClaudeOpus5_5,
  	MaxTokens:    1024,
  	InferenceGeo: anthropic.String("us"),
  	Messages: []anthropic.MessageParam{
  		anthropic.NewUserMessage(anthropic.NewTextBlock("Summarize the key points of this document.")),
  	},
  })
  if err != nil {
  	log.Fatal(err)
  }

  for _, block := range message.Content {
  	if textBlock, ok := block.AsAny().(anthropic.TextBlock); ok {
  		fmt.Println(textBlock.Text)
  	}
  }
  // 추론이 실제로 실행된 위치를 확인합니다
  fmt.Printf("Inference geo: %s\n", message.Usage.InferenceGeo)
  ```

  ```java Java
  AnthropicClient client = AnthropicOkHttpClient.fromEnv();

  Message response = client.messages().create(
          MessageCreateParams.builder()
                  .model(Model.CLAUDE_OPUS_5_5)
                  .maxTokens(1024L)
                  .inferenceGeo("us")
                  .addUserMessage("Summarize the key points of this document.")
                  .build());

  response.content().stream()
          .flatMap(block -> block.text().stream())
          .forEach(textBlock -> IO.println(textBlock.text()));
  // 추론이 실제로 실행된 위치를 확인합니다
  IO.println("Inference geo: " + response.usage().inferenceGeo().get());
  ```

  ```php PHP
  $client = new Client();

  $response = $client->messages->create(
      model: 'claude-opus-5-5',
      maxTokens: 1024,
      inferenceGeo: 'us',
      messages: [
          ['role' => 'user', 'content' => 'Summarize the key points of this document.'],
      ],
  );

  foreach ($response->content as $block) {
      if ($block->type === 'text') {
          echo $block->text, PHP_EOL;
      }
  }
  // 추론이 실제로 실행된 위치를 확인합니다
  echo "Inference geo: {$response->usage->inferenceGeo}\n";
  ```

  ```ruby Ruby
  client = Anthropic::Client.new

  response = client.messages.create(
    model: "claude-opus-5-5",
    max_tokens: 1024,
    inference_geo: "us",
    messages: [
      {role: "user", content: "Summarize the key points of this document."}
    ]
  )

  response.content.each do |block|
    puts block.text if block.type == :text
  end
  # 추론이 실제로 실행된 위치를 확인합니다
  puts "Inference geo: #{response.usage.inference_geo}"
  ```
</CodeGroup>

### 응답

응답의 `usage` 객체에는 추론이 실행된 위치를 나타내는 `inference_geo` 필드가 포함됩니다:

```json Output
{
  "usage": {
    "input_tokens": 25,
    "output_tokens": 150,
    "inference_geo": "us"
  }
}
```

### 모델 가용성

`inference_geo` 매개변수는 Claude 4.6 이상 모델에서 지원됩니다. Claude Opus 4.5, Claude Sonnet 4.5(지원 중단), Claude Haiku 4.5 또는 이전 모델에서 `inference_geo`를 포함한 요청은 400 오류를 반환합니다.

<Note>
  `inference_geo` 매개변수는 Claude API(퍼스트 파티), [Claude Platform on AWS](https://platform.claude.com/docs/ko/build-with-claude/claude-platform-on-aws), [Claude Models on Google Cloud (Anthropic managed)](https://platform.claude.com/docs/ko/build-with-claude/claude-models-on-google-cloud/anthropic-managed)에서 사용할 수 있습니다. Amazon Bedrock 및 Claude Models on Google Cloud (Google managed)에서는 추론 리전이 엔드포인트 URL 또는 추론 프로필에 의해 결정되므로 `inference_geo`가 적용되지 않습니다. [Claude in Microsoft Foundry](https://platform.claude.com/docs/ko/build-with-claude/claude-in-microsoft-foundry)에서도 마찬가지로 `inference_geo`가 적용되지 않습니다. 대신 Azure에서 호스팅되는 배포는 추론을 미국 내로 유지하는 US Data Zone Standard 배포 유형을 사용할 수 있습니다. `inference_geo` 매개변수는 [OpenAI SDK 호환성 엔드포인트](https://platform.claude.com/docs/ko/cli-sdks-libraries/libraries/openai-sdk)를 통해서도 사용할 수 없습니다.
</Note>

### 워크스페이스 수준 제한

워크스페이스 설정은 사용 가능한 inference geo를 제한하는 기능도 지원합니다:

* **`allowed_inference_geos`:** 워크스페이스가 사용할 수 있는 지역을 제한합니다. 요청이 이 목록에 없는 `inference_geo`를 지정하면 API가 오류를 반환합니다.
* **`default_inference_geo`:** 요청에서 `inference_geo`가 생략된 경우의 대체 지역을 설정합니다. 개별 요청은 `inference_geo`를 명시적으로 설정하여 이를 재정의할 수 있습니다.

이러한 설정은 Console 또는 [Admin API](https://platform.claude.com/docs/ko/manage-claude/admin-api)의 `data_residency` 필드를 통해 구성할 수 있습니다.

<Note>
  **Claude Models on Google Cloud (Anthropic managed):** 모든 워크스페이스는 모든 추론 지역(inference geo)을 허용하며 `"global"`을 기본 추론 지역으로 사용합니다. Claude Console에서는 두 설정이 모두 읽기 전용으로 표시됩니다. 미국 내에서만 추론하려면 각 요청에 `inference_geo: "us"`를 설정하세요.
</Note>

## Workspace geo

Workspace geo는 워크스페이스를 생성할 때 설정되며 이후에는 변경할 수 없습니다. 현재 `"us"`가 사용 가능한 유일한 workspace geo입니다.

Workspace geo를 설정하려면 [Console](https://platform.claude.com)에서 새 워크스페이스를 생성하세요:

1. Console에서 [Workspaces](https://platform.claude.com/settings/workspaces) 페이지(`platform.claude.com/settings/workspaces`)로 이동합니다.
2. **Create workspace**를 클릭하여 Console에서 [Create workspace](https://platform.claude.com/settings/workspaces/new) 페이지(`platform.claude.com/settings/workspaces/new`)를 엽니다.
3. 이름을 입력하고 **Workspace geo** 필드의 값을 확인한 다음 **Create workspace**를 클릭합니다.

<Note>
  **Claude Platform on AWS:** Workspace geo는 구성할 수 없습니다. 이 플랫폼의 Claude Managed Agents 세션은 현재 사용 가능한 유일한 workspace geo인 `"us"`를 실질적인 Workspace geo로 하여 실행됩니다. 해당 플랫폼에 특화된 데이터 레지던시 고려 사항은 [Claude Platform on AWS](https://platform.claude.com/docs/ko/build-with-claude/claude-platform-on-aws)를 참조하세요.
</Note>

<Note>
  **Claude Models on Google Cloud (Anthropic managed):** 워크스페이스 지역은 구성할 수 없습니다. 모든 워크스페이스는 `"us"`를 워크스페이스 지역으로 사용하며, Claude Console에는 **Workspace geo** 필드가 표시되지 않습니다.
</Note>

## 가격

데이터 레지던시 가격은 모델 세대에 따라 다릅니다:

* **Claude 4.6 이상 모델:** 미국 전용 추론(`inference_geo: "us"`)은 모든 토큰 가격 범주(입력 토큰, 출력 토큰, 캐시 쓰기, 캐시 읽기)에서 표준 요금의 1.1배로 책정됩니다. Claude Haiku 5.5에서는 100,000 토큰을 초과하는 프롬프트에 대한 더 높은 가격에도 이 배수가 적용됩니다([긴 컨텍스트 가격](https://platform.claude.com/docs/ko/about-claude/pricing#long-context-pricing) 참조).
* **글로벌 라우팅** (`inference_geo: "global"`): 표준 가격이 적용됩니다.
* **이전 모델:** `inference_geo`를 지원하지 않으며([모델 가용성](https://platform.claude.com/docs/ko/manage-claude/data-residency#model-availability) 참조), 표준 가격이 적용됩니다. 이 매개변수를 포함한 요청은 400 오류를 반환합니다.

이 가격은 Claude API(퍼스트 파티), Claude Platform on AWS, Claude Models on Google Cloud (Anthropic managed)에 적용됩니다. Claude in Microsoft Foundry에서는 US Data Zone Standard 배포 유형을 사용하는 Azure 호스팅 배포에 동일한 1.1배 배수가 적용됩니다. 파트너 운영 플랫폼인 Bedrock 및 Claude Models on Google Cloud (Google managed)는 자체 리전별 가격을 가지고 있습니다. 자세한 내용은 [데이터 레지던시 가격](https://platform.claude.com/docs/ko/about-claude/pricing#data-residency-pricing)을 참조하세요.

동일한 배수가 [Claude Managed Agents](https://platform.claude.com/docs/ko/managed-agents/overview)에도 적용됩니다. 에이전트의 [모델 구성](https://platform.claude.com/docs/ko/managed-agents/agent-setup)이 `inference_geo`를 `"us"`로 고정하면, 해당 에이전트를 실행하는 세션의 모델 요청은 표준 요금의 1.1배로 책정됩니다.

<Note>
  [Priority Tier](https://platform.claude.com/docs/ko/api/service-tiers) 약정이 있는 경우, 미국 전용 추론에 대한 1.1배 배수는 Priority Tier 용량에 대해 토큰이 계산되는 방식에도 영향을 미칩니다. `inference_geo: "us"`로 소비된 각 토큰은 약정된 TPM에서 1.1 토큰을 차감하며, 이는 다른 가격 배수(프롬프트 캐싱 등)가 소진율에 영향을 미치는 방식과 일치합니다.
</Note>

## Batch API 지원

`inference_geo` 매개변수는 [Batch API](https://platform.claude.com/docs/ko/build-with-claude/batch-processing)에서 지원됩니다. 배치 내 각 요청은 자체 `inference_geo` 값을 지정할 수 있습니다.

## 레거시 옵트아웃에서 마이그레이션

조직이 이전에 추론을 미국 내로 유지하기 위해 글로벌 라우팅을 옵트아웃한 경우, 워크스페이스는 자동으로 `allowed_inference_geos: ["us"]` 및 `default_inference_geo: "us"`로 구성되었습니다. 코드 변경은 필요하지 않습니다. 기존 데이터 레지던시 요구 사항은 새로운 지역 제어를 통해 계속 적용됩니다.

### 변경된 사항

레거시 옵트아웃은 모든 요청을 미국 기반 인프라로 제한하는 조직 수준 설정이었습니다. 새로운 데이터 레지던시 제어는 이를 두 가지 메커니즘으로 대체합니다:

* **요청별 제어:** `inference_geo` 매개변수를 사용하면 각 API 호출에서 `"us"` 또는 `"global"`을 지정할 수 있어 요청 수준의 유연성을 제공합니다.
* **워크스페이스 제어:** Console의 `default_inference_geo` 및 `allowed_inference_geos` 설정을 사용하면 워크스페이스의 모든 키에 걸쳐 지역 정책을 적용할 수 있습니다.

### 워크스페이스에 적용된 사항

워크스페이스는 자동으로 마이그레이션되었습니다:

| 레거시 설정              | 새로운 동등 설정                                                       |
| ------------------- | --------------------------------------------------------------- |
| 글로벌 라우팅 옵트아웃(미국 전용) | `allowed_inference_geos: ["us"]`, `default_inference_geo: "us"` |

워크스페이스의 키를 사용하는 모든 API 요청은 계속 미국 기반 인프라에서 실행됩니다. 현재 동작을 유지하기 위해 별도의 조치는 필요하지 않습니다.

### 글로벌 라우팅을 사용하려는 경우

데이터 레지던시 요구 사항이 변경되어 더 나은 성능과 가용성을 위해 글로벌 라우팅을 활용하려는 경우, 워크스페이스의 inference geo 설정을 업데이트하여 허용된 지역에 `"global"`을 포함하고 `default_inference_geo`를 `"global"`로 설정하세요. 자세한 내용은 [워크스페이스 수준 제한](https://platform.claude.com/docs/ko/manage-claude/data-residency#workspace-level-restrictions)을 참조하세요.

### 가격 영향

레거시 모델은 이 마이그레이션의 영향을 받지 않습니다. 최신 모델의 현재 가격은 [가격](https://platform.claude.com/docs/ko/manage-claude/data-residency#pricing)을 참조하세요.

## 현재 제한 사항

* **공유 속도 제한:** 속도 제한은 모든 지역에 걸쳐 공유됩니다.
* **Inference geo:** `"us"`와 `"global"`만 사용할 수 있습니다.
* **Workspace geo:** 현재 `"us"`만 사용할 수 있습니다. Workspace geo는 워크스페이스 생성 후 변경할 수 없습니다.

## 다음 단계

<CardGroup>
  <Card title="가격" icon="dollar-sign" href="https://platform.claude.com/docs/ko/about-claude/pricing#data-residency-pricing">
    데이터 레지던시 가격 세부 정보를 확인하세요.
  </Card>

  <Card title="워크스페이스" icon="building" href="https://platform.claude.com/docs/ko/manage-claude/workspaces">
    워크스페이스 구성에 대해 알아보세요.
  </Card>

  <Card title="Usage and Cost API" icon="chart" href="https://platform.claude.com/docs/ko/manage-claude/usage-cost-api">
    데이터 레지던시별 사용량과 비용을 추적하세요.
  </Card>
</CardGroup>
