> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 아티팩트 버전을 컬렉션에 연결하기

> 레지스트리의 컬렉션에 아티팩트 버전을 연결하여 조직 전체에서 공유하세요.

조직에서 아티팩트 버전을 사용 가능하게 하려면, 레지스트리의 [컬렉션](/ko/products/registry/create_collection)에 *연결*하세요. 연결하면 버전이 [비공개 프로젝트 수준 범위에서 공유 조직 수준 범위로 이동합니다](/ko/products/registry/create_registry#visibility-types). [W\&B Python SDK를 사용하거나 W\&B App에서 대화형으로](/ko/products/registry/link_version#link-an-artifact-to-a-collection) 아티팩트 버전을 연결할 수 있습니다.

아티팩트를 연결하면 W\&B는 원본 아티팩트와 컬렉션 항목 사이에 참조를 생성합니다. 연결된 버전은 프로젝트 내 run에 로깅된 원본 아티팩트 버전을 가리킵니다. 컬렉션의 연결된 버전과 로깅된 프로젝트의 원본 버전을 모두 볼 수 있습니다.

<h2 id="link-an-artifact-to-a-collection">
  아티팩트를 컬렉션에 연결하기
</h2>

run 중에 아티팩트를 생성할지, run 없이 생성할지, 기존 아티팩트 버전을 연결할지에 따라 워크플로를 선택하세요.

<Note>
  시작하기 전에 다음 사항을 확인하세요:

  * 컬렉션에서 허용하는 아티팩트 유형. 컬렉션 유형에 대한 자세한 내용은 [컬렉션 생성](/ko/products/registry/create_collection)의 "컬렉션 유형"을 참조하세요.
  * 컬렉션이 속한 레지스트리가 이미 존재하는지 여부. 레지스트리가 존재하는지 확인하려면 [Registry App으로 이동하여](/ko/products/registry/search_registry) 레지스트리 이름을 검색하세요.
</Note>

<Tabs>
  <Tab title="W&B Python SDK">
    [`wandb.Run.link_artifact()`](/ko/products/wandb/ref/python/experiments/run#method-run-link_artifact) 또는
    [`wandb.Artifact.link()`](/ko/products/wandb/ref/python/experiments/artifact#method-artifact-link)를 사용하여 프로그래밍 방식으로 아티팩트 버전을 컬렉션에 연결하세요.

    다음 table은 아티팩트 버전을 컬렉션에 연결하는 데 사용할 수 있는 방법과 각 방법을 사용할 때 W\&B가 기록하는 내용을 요약합니다.

    | 사용 사례 | 방법 | W\&B가 기록하는 내용 |
    | - | - | - |
    | run 중에 아티팩트를 생성하고 컬렉션에 연결 | `wandb.Run.link_artifact()` | 아티팩트를 활성 run의 출력으로 로깅한 다음 연결합니다 |
    | run을 명시적으로 시작하지 않고 아티팩트를 생성하고 연결 | 초안 아티팩트에서 `wandb.Artifact.link()` 사용 | 먼저 아티팩트를 저장하고, 활성 run이 없으면 자동 run을 생성합니다 |
    | 기존의 커밋된 아티팩트 연결 | `wandb.Api().artifact()`로 가져온 아티팩트에서 `wandb.Artifact.link()` 사용 | 새 run을 생성하지 않고 아티팩트를 연결합니다 |

    대상 컬렉션 경로를 `target_path` 매개변수에 전달하세요. 경로는 `wandb-registry-` 접두사, 레지스트리 이름, 컬렉션 이름으로 구성됩니다:

    ```text theme={"system"}
    wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}
    ```

    <h5 id="link-an-artifact-from-a-run">
      run에서 아티팩트 연결하기
    </h5>

    `wandb.Run.link_artifact()`를 사용하여 활성 run 중에 아티팩트 버전을 생성하고 연결하세요. W\&B는 초안 아티팩트를 연결하기 전에 run의 출력으로 로깅합니다.

    아티팩트 버전을 생성하고 연결하려면:

    1. `wandb.init()`으로 run을 초기화하세요.
    2. `Artifact` 객체를 생성하고 하나 이상의 파일을 추가하세요.
    3. `wandb.Run.link_artifact()`를 호출하고 대상 컬렉션을 지정하세요.

    꺾쇠괄호(`<>`)로 묶인 값을 자신의 값으로 바꾸세요:

    ```python theme={"system"}
    import wandb

    entity = "<team_entity>"          # 팀 entity
    project = "<project_name>"        # 아티팩트가 포함된 프로젝트의 이름

    # run을 초기화합니다
    with wandb.init(entity = entity, project = project) as run:

      # 아티팩트 object를 생성합니다
      # type 매개변수는 artifact object의 유형과 컬렉션 유형을 모두 지정합니다
      artifact = wandb.Artifact(name = "<name>", type = "<type>")

      # artifact object에 파일을 추가합니다. 
      # 로컬 머신의 파일 경로를 지정합니다.
      artifact.add_file(local_path = "<local_path_to_artifact>")

      # 아티팩트를 연결할 컬렉션과 레지스트리를 지정합니다
      REGISTRY_NAME = "<registry_name>"  
      COLLECTION_NAME = "<collection_name>"
      target_path=f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}"

      # 아티팩트를 컬렉션에 연결합니다
      run.link_artifact(artifact = artifact, target_path = target_path)
    ```

    <h5 id="create-and-link-an-artifact">
      아티팩트 생성 및 연결
    </h5>

    `wandb.Artifact.link()`를 사용하여 run을 명시적으로 초기화하지 않고 초안 아티팩트를 생성하고 연결하세요. W\&B는 필요한 경우 자동으로 run을 생성하여 아티팩트를 연결하기 전에 저장합니다.

    아티팩트 버전을 생성하고 연결하려면:

    1. `Artifact` 객체를 생성하고 하나 이상의 파일을 추가하세요.
    2. `wandb.Artifact.link()`를 호출하고 대상 컬렉션을 지정하세요.

    꺾쇠괄호(`<>`) 안의 값을 실제 값으로 바꾸세요:

    ```python theme={"system"}
    import wandb

    # 아티팩트 객체를 생성합니다
    # type 매개변수는 아티팩트 객체의 유형과 컬렉션 유형을 모두 지정합니다
    artifact = wandb.Artifact(name = "<name>", type = "<type>")

    # 파일을 아티팩트 객체에 추가합니다. 
    # 로컬 머신의 파일 경로를 지정합니다.
    artifact.add_file(local_path = "<local_path_to_artifact>")

    # 아티팩트를 연결할 컬렉션과 레지스트리를 지정합니다
    REGISTRY_NAME = "<registry_name>"  
    COLLECTION_NAME = "<collection_name>"
    target_path=f"wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}"

    # 아티팩트를 컬렉션에 연결합니다
    artifact.link(target_path = target_path)
    ```

    <h5 id="link-an-existing-artifact">
      기존 아티팩트 연결하기
    </h5>

    `wandb.Api().artifact()`로 가져온 아티팩트에 `wandb.Artifact.link()`를 사용하면 새 run을 만들지 않고 기존에 커밋된 아티팩트 버전을 연결할 수 있습니다.

    1. `wandb.Api()`로 Public API 클라이언트를 생성하세요.
    2. `wandb.Api.artifact()`로 아티팩트 버전을 가져오세요.
    3. `wandb.Artifact.link()`를 호출하고 대상 컬렉션을 지정하세요.

    ```python theme={"system"}
    import wandb

    api = wandb.Api()

    artifact = api.artifact(
        "<entity>/<project>/<artifact-name>:<alias-or-version>"
    )

    artifact.link(
        target_path="wandb-registry-<registry-name>/<collection-name>",
        aliases=["latest"],
    )
    ```
  </Tab>

  <Tab title="Registry">
    1. [https://forge.coreweave.com/registry/](https://forge.coreweave.com/registry/) 에서 레지스트리로 이동하세요.
    2. 아티팩트 버전을 연결할 컬렉션 이름 옆에 마우스를 올리세요.
    3. **View details** 옆의 **액션 (<Icon icon="ellipsis" iconType="solid" />)** 메뉴를 선택하세요.
    4. 드롭다운에서 **Link new version**을 선택하세요.
    5. 표시되는 사이드바의 **Team** 드롭다운에서 팀 이름을 선택하세요.
    6. **Project** 드롭다운에서 아티팩트가 포함된 프로젝트 이름을 선택하세요.
    7. **Artifact** 드롭다운에서 아티팩트 이름을 선택하세요.
    8. **Version** 드롭다운에서 컬렉션에 연결할 아티팩트 버전을 선택하세요.
  </Tab>

  <Tab title="아티팩트 브라우저">
    1. W\&B 앱에서 프로젝트의 아티팩트 브라우저로 이동하세요: `https://wandb.ai/<entity>/<project>/artifacts`
    2. 프로젝트 사이드바에서 Artifacts 아이콘을 선택하세요.
    3. 레지스트리에 연결할 아티팩트 버전을 클릭하세요.
    4. **버전 개요** 섹션에서 **레지스트리에 연결** 버튼을 클릭하세요.
    5. 화면 오른쪽에 나타나는 모달에서 **등록된 모델 선택** 드롭다운 메뉴의 아티팩트를 선택하세요.
    6. **다음 단계**를 클릭하세요.
    7. (선택) **별칭** 드롭다운에서 별칭을 선택하세요.
    8. **레지스트리에 연결**을 클릭하세요.
  </Tab>
</Tabs>

Registry App에서 [연결된 아티팩트의 메타데이터, 버전 데이터, 사용, 리니지 정보](/ko/products/registry/link_version#view-linked-artifacts-in-a-registry) 등을 확인할 수 있습니다.

<h2 id="unlink-an-artifact-version-from-a-collection">
  컬렉션에서 아티팩트 버전 연결 해제
</h2>

W\&B Python SDK 또는 레지스트리를 사용하여 컬렉션에서 아티팩트 버전의 연결을 해제하세요.

연결을 해제하면 컬렉션에서 아티팩트 버전이 제거되지만 원본 아티팩트 버전이나 해당 파일은 삭제되지 않습니다.

<Warning>
  아티팩트 버전을 레지스트리 컬렉션에 연결하면 해당 버전의 TTL(수명) 정책이 비활성화되고 TTL이 `None`으로 설정됩니다. 이후 버전의 연결을 해제하더라도 W\&B는 이전 TTL을 복원하거나 원래 기간을 유지하지 않습니다. 연결 해제 후에도 해당 버전에 TTL이 필요하다면 TTL을 다시 설정하세요.

  TTL 정책에 대한 자세한 내용은 [아티팩트 데이터 보존 관리](/ko/products/wandb/artifacts/ttl)를 참조하세요.
</Warning>

<Tabs>
  <Tab title="W&B Python SDK">
    W\&B Python SDK로 아티팩트 버전의 연결을 해제하려면 다음 단계를 따르세요.

    1. `wandb.Api()`로 Public API 클라이언트를 생성하세요.
    2. `wandb.Api.artifact()`로 연결된 아티팩트 버전을 조회하세요.
    3. [`wandb.Artifact.unlink()`](/ko/products/wandb/ref/python/experiments/artifact#method-artifact-unlink)를 호출하여 컬렉션에서 아티팩트 버전의 연결을 해제하세요.

    ```text theme={"system"}
    wandb-registry-<registry_name>/<collection_name>:<version_or_alias>
    ```

    자리표시자 값을 실제 값으로 바꾸세요.

    ```python theme={"system"}
    import wandb

    registry_name = "your-registry-name"  # 레지스트리 이름으로 바꾸세요
    collection_name = "your-collection-name"  # 컬렉션 이름으로 바꾸세요
    version = "version-or-alias"  # 연결을 해제할 아티팩트 버전으로 바꾸세요

    target_path=f"wandb-registry-{registry_name}/{collection_name}:{version}"

    api = wandb.Api()
    linked_artifact = api.artifact(name=target_path)

    # 컬렉션에서 아티팩트 버전의 연결 해제
    linked_artifact.unlink()
    ```
  </Tab>

  <Tab title="Registry">
    1. [https://forge.coreweave.com/registry/](https://forge.coreweave.com/registry/) 의 레지스트리로 이동하세요.
    2. 컬렉션이 포함된 레지스트리의 이름을 선택하세요.
    3. 컬렉션을 선택하세요.
    4. 연결을 해제할 아티팩트 버전을 선택하세요.
    5. **Version** 탭에서 **Unlink version**을 선택하세요.
  </Tab>
</Tabs>

<h2 id="view-linked-artifacts-in-a-registry">
  레지스트리의 연결된 아티팩트 보기
</h2>

레지스트리에서 메타데이터, 리니지, 사용 정보와 같은 연결된 아티팩트에 대한 정보를 확인하세요.

1. [https://forge.coreweave.com/registry/](https://forge.coreweave.com/registry/) 에서 레지스트리로 이동합니다.
2. 아티팩트를 연결한 레지스트리의 이름을 선택합니다.
3. 컬렉션의 이름을 선택합니다.
4. 컬렉션의 아티팩트가 메트릭을 로깅하는 경우, **Show metrics**를 클릭하여 버전 간 메트릭을 비교합니다.
5. 아티팩트 버전 목록에서 액세스하려는 버전을 선택합니다. 버전 번호는 연결된 각 아티팩트 버전에 `v0`부터 점진적으로 부여됩니다.
6. 아티팩트 버전에 대한 세부 정보를 보려면 해당 버전을 클릭합니다. 이 페이지의 탭에서 해당 버전의 메타데이터(로깅된 메트릭 포함), 리니지, 사용 정보를 확인할 수 있습니다.

**Version** 탭 내의 **Full Name** 필드를 확인하세요. 연결된 아티팩트의 전체 이름은 레지스트리, 컬렉션 이름, 아티팩트 버전의 별칭 또는 인덱스로 구성됩니다.

```text title="Full name of a linked artifact" theme={"system"}
wandb-registry-{REGISTRY_NAME}/{COLLECTION_NAME}:v{INTEGER}
```

연결된 아티팩트의 전체 이름을 알아야 아티팩트 버전에 프로그래밍 방식으로 액세스할 수 있습니다.

<h2 id="troubleshooting">
  문제 해결
</h2>

아티팩트를 연결할 수 없는 경우 확인해야 할 몇 가지 일반적인 사항은 다음과 같습니다.

<h3 id="logging-artifacts-from-a-personal-account">
  개인 계정에서 아티팩트 로깅하기
</h3>

W\&B에 개인 entity로 로깅한 아티팩트는 레지스트리에 연결할 수 없습니다. 조직 내 팀 entity를 사용하여 아티팩트를 로깅하세요. 조직의 팀 내에서 로깅한 아티팩트만 조직의 레지스트리에 연결할 수 있습니다.

<Note>
  아티팩트를 레지스트리에 연결하려면 팀 entity로 아티팩트를 로깅해야 합니다.
</Note>

<h4 id="find-your-team-entity">
  팀 entity 찾기
</h4>

W\&B는 팀 이름을 팀의 entity로 사용합니다. 예를 들어, 팀 이름이 **team-awesome**인 경우 팀 entity는 `team-awesome`입니다.

팀 이름을 확인하려면:

1. 팀의 W\&B 프로필 페이지로 이동하세요.
2. 사이트의 URL을 복사하세요. URL 형식은 `https://wandb.ai/<team>`입니다. 여기서 `<team>`은 팀 이름이자 팀의 entity입니다.

<h4 id="log-from-a-team-entity">
  팀 entity에서 로깅하기
</h4>

1. [`wandb.init()`](/ko/products/wandb/ref/python/functions/init)로 run을 초기화할 때 entity로 팀을 지정하세요. run을 초기화할 때 `entity`를 지정하지 않으면 run은 기본 entity를 사용하며, 이는 팀 entity일 수도 있고 아닐 수도 있습니다.

   ```python theme={"system"}
   import wandb   

   with wandb.init(entity='<team_entity>', project='<project_name>') as run:
       # 아티팩트를 로깅하세요
   ```

2. `wandb.Run.log_artifact()`를 사용하거나 아티팩트 객체를 생성한 후 다음으로 파일을 추가하여 run에 아티팩트를 로깅하세요:

   ```python theme={"system"}
   artifact = wandb.Artifact(name="<artifact_name>", type="<type>")
   ```

   아티팩트를 로깅하는 방법은 [아티팩트 구성하기](/ko/products/wandb/artifacts/construct-an-artifact)를 참조하세요.

3. 아티팩트가 개인 entity에 로깅된 경우, 조직 내 entity에 다시 로깅해야 합니다.

<h3 id="confirm-the-path-of-a-registry-in-the-wb-app-ui">
  W\&B App UI에서 레지스트리 경로 확인
</h3>

빈 컬렉션을 생성하여 W\&B App UI에서 레지스트리 경로를 확인하세요. 다음 단계를 따르세요:

1. [https://forge.coreweave.com/registry/](https://forge.coreweave.com/registry/) 에서 레지스트리로 이동하세요.
2. 아티팩트를 연결할 레지스트리를 클릭하세요.
3. 빈 컬렉션을 클릭하세요. 빈 컬렉션이 없으면 새 컬렉션을 생성하세요.
4. 표시되는 코드 스니펫에서 `.link_artifact()` 내의 `target_path=` 필드를 파악하세요.
5. (선택) 컬렉션을 삭제하세요.

예를 들어, 위 단계를 완료하면 `target_path` 매개변수가 포함된 코드 블록을 찾을 수 있습니다:

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/registry/_media/check_empty_collection.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=d056d6e2177061f85d8b9ebe9532d7ef" alt="빈 컬렉션 생성" width="3456" height="1844" data-path="products/registry/_media/check_empty_collection.png" />
</Frame>

```python theme={"system"}
target_path = 
      "wandb-registry-Zoo-Classifier-Registry/Temp Collection"
```

이를 컴포넌트별로 나누어 보면, 프로그래밍 방식으로 아티팩트를 연결할 경로를 생성하는 데 무엇을 사용해야 하는지 알 수 있습니다.

```python theme={"system"}
ORG_ENTITY_NAME = "wandb"
REGISTRY_NAME = "Zoo-Classifier-Registry"
COLLECTION_NAME = "Temp Collection"
```

<Note>
  임시 컬렉션의 이름을 아티팩트를 연결하려는 컬렉션의 이름으로 바꾸세요.
</Note>


## Related topics

- [Python 라이브러리에 W&B 추가하기](/ko/products/wandb/integrations/add-wandb-to-any-library.md)
