> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/roboflow/roboflow-ko/train/model-ids.md).

# Model ID

학습된 모든 모델에는 배포하거나 inference를 실행하거나 Workflow 모델 블록에서 선택할 때 이를 식별하는 model ID가 있습니다. 이 페이지에서는 현재 model ID 구조와, 일부 상황에서 이전(legacy) ID 형식이 여전히 지원되는 방식을 설명합니다.

## Model ID 구조

model ID는 다음 형식을 가집니다 `{workspace}/{model-slug}`. 첫 번째 부분은 Workspace URL slug입니다. 두 번째 부분인 model slug는 workspace 내에서 모델을 식별하며, 하이픈으로 연결된 네 부분으로 구성됩니다:

```
{project}-{version}-{architecture}-t{n}
```

* `project`: 모델이 속한 project의 URL slug입니다. 예: `construction-safety-xpv3w`.
* `버전`: 모델이 학습된 데이터셋 버전 번호입니다. 예: `12`.
* `architecture`: 학습에 사용된 모델 아키텍처입니다. 예: `rfdetr-small`.
* `t{n}`: 해당 버전에 대한 training 카운터입니다. 버전에서 시작된 첫 번째 training은 t1, 두 번째는 t2, 이런 식으로 이어집니다.

예를 들어, URL slug가 `construction-safety-xpv3w` 인 project의 version 3에서 수행된 두 번째 RF-DETR Small training은 workspace `my-workspace` 에서 다음 model ID를 생성합니다 `my-workspace/construction-safety-xpv3w-3-rfdetr-small-t2`.

model slug는 training이 시작될 때 할당되므로, 모델이 아직 training 중일 때도 어떤 ID를 갖게 될지 확인할 수 있습니다. training 카운터 접미사는 절대 재사용되지 않습니다. training이 실패하거나 취소되면 해당 번호는 건너뛰고, 그 version의 다음 training에는 다음 번호가 부여됩니다.

A [신경망 아키텍처 검색](/roboflow/roboflow-ko/train/neural-architecture-search.md) training은 여러 후보 모델을 생성합니다. NAS 후보 model ID는 다른 model ID와 비슷하지만, 뒤에 이중 하이픈과 6자리 해시가 추가됩니다(예: `my-workspace/construction-safety-xpv3w-3-rfdetr-nas-t1--9589f2`). v2 trainings 엔드포인트에서는 NAS training이 `modelType` 를 `rfdetr-nas-parent`로 보고하며, 각 후보 모델은 `rfdetr-nas`.

## Model ID 찾기

Web UI, REST API 또는 Roboflow MCP Server를 통해 학습된 모든 모델의 ID를 조회할 수 있습니다.

{% tabs %}
{% tab title="Web UI" %}
프로젝트 사이드바에서 "Models"를 클릭하여 [Models page](/roboflow/roboflow-ko/train/view-trained-models.md)를 엽니다. 각 모델에는 "ID:" 레이블 옆에 ID가 표시되며, 그 옆에는 "Copy Model ID" 버튼이 있습니다. 동일한 ID와 복사 버튼은 모델의 detail view와 각 version page의 models table에도 표시됩니다.
{% endtab %}

{% tab title="REST API" %}
해당 [프로젝트 모델 목록 가져오기](/developer/rest-api/list-project-models.md) 엔드포인트는 project에서 학습된 모든 model을 반환합니다. 응답의 각 항목에 있는 `url` 필드가 model ID입니다:

```
GET https://api.roboflow.com/{workspace}/{project}/models?api_key=YOUR_API_KEY
```

```json
[
  {
    "url": "my-workspace/construction-safety-xpv3w-3-rfdetr-small-t2",
    "version": "3",
    "modelType": "rfdetr-small",
    "train": { "status": "finished" },
    ...
  },
  ...
]
```

특정 version에서 학습된 모델을 찾으려면 v2 trainings 엔드포인트를 사용하세요. version의 trainings 목록을 조회하면 각 training과 함께, 해당 training이 생성한 모델의 ID가 `modelIds` 필드에 반환됩니다. legacy single-model version에서는 training `id` 는 다음 형식의 경로입니다 `{workspaceId}/{version}/training/0` (아래에 표시된 해시 대신), 그리고 `modelIds` version의 [legacy ID](#legacy-model-ids) 를 포함합니다:

```
GET https://api.roboflow.com/{workspace}/{project}/{version}/v2/trainings?api_key=YOUR_API_KEY
```

```json
{
  "trainings": [
    {
      "id": "0a1b2c3d4e5f67890abc",
      "versionId": "3",
      "status": "finished",
      "modelType": "rfdetr-small",
      "modelIds": ["my-workspace/construction-safety-xpv3w-3-rfdetr-small-t2"],
      ...
    },
    ...
  ]
}
```

단일 training을 가져오면 각 model의 ID를 포함한 모델별 세부 정보가 반환되며, 그 model의 `modelId` 필드에 표시됩니다. `models` 목록의 `trainingId` 는 version에 training이 하나뿐일 때 생략할 수 있지만, version에 여러 training이 있으면 이러한 요청은 409 오류로 실패합니다.

```
GET https://api.roboflow.com/{workspace}/{project}/{version}/v2/trainings/get?api_key=YOUR_API_KEY&trainingId={trainingId}
```

```json
{
  "trainingId": "0a1b2c3d4e5f67890abc",
  "versionId": "3",
  "status": "finished",
  "modelType": "rfdetr-small",
  "modelCount": 1,
  "models": [
    {
      "modelId": "my-workspace/construction-safety-xpv3w-3-rfdetr-small-t2",
      "modelType": "rfdetr-small",
      "status": "finished",
      "metrics": { ... }
    }
  ],
  ...
}
```

{% endtab %}

{% tab title="MCP" %}
해당 [Roboflow MCP Server](/developer/mcp-server.md) 는 model ID를 반환하는 도구를 제공합니다. `models_list` 는 한 project의 학습된 모델을 나열합니다(workspace는 연결의 자격 증명에서 가져오고, project는 `project_id`로 전달됩니다). 그리고 각 model의 ID를 `url` 필드에 반환하며, version 또는 NAS 실행으로 선택적으로 필터링할 수 있습니다. `trainings_get` 및 `trainings_list` 는 각 training이 생성한 model의 ID를 반환합니다. 에이전트는 이 ID를 `models_infer`.
{% endtab %}
{% endtabs %}

## Legacy Model ID

과거에는 Roboflow dataset version당 training을 하나만 가질 수 있었기 때문에, model은 다음 형식의 ID로 고유하게 결정되었습니다 `{project}/{version}`.

예를 들어, `construction-site-safety/3` 은 *그* project의 version 3에서 학습된 model을 가리키는 데 사용되었습니다. 첫 번째 부분은 workspace가 아니라 project URL slug이고, 두 번째 부분은 version 번호입니다. 이것은 오래된 SDK, 코드 스니펫, Inference 설치에서 사용하는 형식입니다(예: `model_id="construction-site-safety/3"`).

이제는 dataset version에서 [하나 이상의 training](/roboflow/roboflow-ko/train/versions-trainings-and-models.md) 을 실행할 수 있게 되었기 때문에, 이러한 legacy-format ID는 더 이상 권장되지 않습니다. 2026년 6월 30일 이후에 시작된 새 training에 이러한 ID를 사용하려고 하면, 내부적으로는 새로운 스타일의 ID로 해석됩니다.

## Legacy ID가 해석되는 방식

legacy-format ID는 alias를 통해 계속 작동합니다. version에서 시작된 첫 번째 training이 성공적으로 완료되면, Roboflow는 version의 legacy `{project}/{version}` ID를 새로운 model ID에 연결합니다. 오래된 Inference 설치에서의 weights 다운로드를 포함해 legacy ID를 사용하는 요청은 자동으로 해당 model로 해석됩니다.

alias는 *첫* 번째 training에 의해서만 생성되며, 이후에는 변경되지 않습니다:

* 첫 번째 training이 성공적으로 완료되면, 같은 version에서 더 많은 model을 학습한 후에도 legacy ID는 영구적으로 그 model을 가리킵니다. 이후 모델은 각자의 model ID로 참조하세요.
* 첫 번째 training이 실패하거나 취소되면 alias가 생성되지 않으며, 해당 version의 이후 training도 alias를 생성하지 않습니다.

alias가 없는 version도 model이 정확히 하나만 있는 한 legacy ID로 참조할 수 있습니다. 여러 model이 있고 alias가 없다면, legacy ID를 사용하는 요청은 참조가 모호하기 때문에 실패하며, model 자체의 ID를 사용해야 합니다.

{% hint style="info" %}
Legacy ID는 이전 버전과의 호환성을 위해 존재합니다. 새 통합에서는 전체 model ID를 사용하는 것이 좋습니다. 이는 모호하지 않으며 version의 모든 model에 대해 작동합니다.
{% endhint %}
