> ## 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.

> App UI를 사용하여 대화형으로 삭제하거나 W&B Python SDK를 사용하여 프로그래밍 방식으로 아티팩트를 삭제하세요.

# 아티팩트 삭제

W\&B App을 사용하여 대화형으로 삭제하거나 W\&B Python SDK를 사용하여 프로그래밍 방식으로 아티팩트를 삭제하세요. 아티팩트를 삭제하면 W\&B는 해당 아티팩트를 *소프트 삭제* 상태로 표시합니다. 즉, 아티팩트는 삭제 대상으로 표시되지만 파일은 저장소에서 즉시 삭제되지 않습니다.

아티팩트의 내용은 정기적으로 실행되는 가비지 컬렉션 프로세스가 삭제 대상으로 표시된 모든 아티팩트를 검토할 때까지 소프트 삭제, 즉 삭제 대기 상태로 유지됩니다. 가비지 컬렉션 프로세스는 아티팩트와 관련 파일이 이전 또는 이후 아티팩트 버전에서 사용되지 않는 경우 저장소에서 관련 파일을 삭제합니다.

<Note>
  가비지 컬렉션은 **최선형** 방식으로 수행됩니다. W\&B는 아티팩트를 삭제한 후 object storage의 공간이 얼마나 빨리 확보되는지 보장하지 않습니다. 배포 규모가 크거나 백로그가 쌓여 있으면 예상보다 오래 걸릴 수 있습니다. run 데이터, 보존 설정 및 선택적인 operator 액션과의 관계는 [버킷 저장소 및 비용 관리](/ko/products/wandb/platform/hosting/managing-bucket-storage)를 참조하세요.
</Note>

<h2 id="artifact-garbage-collection-workflow">
  아티팩트 가비지 컬렉션 워크플로
</h2>

다음 다이어그램은 전체 아티팩트 가비지 컬렉션 과정을 보여줍니다:

```mermaid theme={"system"}
graph TB
    Start([아티팩트 삭제 시작]) --> DeleteMethod{삭제 방법}
    
    DeleteMethod -->|UI| UIDelete[W&B App을 통해 삭제]
    DeleteMethod -->|SDK| SDKDelete[W&B Python SDK를 통해 삭제]
    DeleteMethod -->|TTL| TTLDelete[TTL 정책 만료]
    
    UIDelete --> SoftDelete[아티팩트를<br/>'소프트 삭제'로 표시]
    SDKDelete --> SoftDelete
    TTLDelete --> SoftDelete
    
    SoftDelete --> GCWait[(최선형<br/>가비지 컬렉션<br/>대기)]
    
    GCWait --> GCRun[가비지 컬렉션<br/>프로세스 실행<br/><br/>- 소프트 삭제된 모든 아티팩트 검토<br/>- 파일 의존성 확인]
    
    GCRun --> CheckUsage{다른 아티팩트 버전에서<br/>파일을 사용하나요?}
    
    CheckUsage -->|예| KeepFiles[저장소에 파일 유지<br/><br/>- 아티팩트를 삭제됨으로 표시<br/>- 다른 버전을 위해 파일 유지]
    CheckUsage -->|아니요| DeleteFiles[저장소에서 파일 삭제<br/><br/>- 아티팩트 완전히 제거<br/>- 저장소 공간 회수]
    
    KeepFiles --> End([종료])
    DeleteFiles --> End
    
    style Start fill:#e1f5fe,stroke:#333,stroke-width:2px,color:#000
    style SoftDelete fill:#fff3e0,stroke:#333,stroke-width:2px,color:#000
    style GCRun fill:#f3e5f5,stroke:#333,stroke-width:2px,color:#000
    style KeepFiles fill:#e8f5e9,stroke:#333,stroke-width:2px,color:#000
    style DeleteFiles fill:#ffebee,stroke:#333,stroke-width:2px,color:#000
    style End fill:#e0e0e0,stroke:#333,stroke-width:2px,color:#000
```

TTL 정책으로 W\&B에서 아티팩트가 삭제되는 시점을 예약할 수 있습니다. 자세한 내용은 [아티팩트 TTL 정책으로 데이터 보존 관리](/ko/products/wandb/artifacts/ttl)를 참조하세요.

<Note>
  TTL 정책, W\&B Python SDK 또는 W\&B App으로 삭제한 아티팩트는 먼저 소프트 삭제됩니다. 소프트 삭제된 아티팩트는 가비지 컬렉션을 거친 후 영구적으로 삭제됩니다.
</Note>

<Note>
  entity, 프로젝트 또는 아티팩트 컬렉션을 삭제하면 이 페이지에 설명된 아티팩트 삭제 프로세스가 트리거됩니다. run을 삭제하면서 연결된 아티팩트도 삭제하도록 선택하면 해당 아티팩트에도 동일한 소프트 삭제 및 가비지 컬렉션 워크플로가 적용됩니다.
</Note>

<h2 id="delete-an-artifact-version">
  아티팩트 버전 삭제
</h2>

W\&B App을 사용해 대화형으로 아티팩트 버전을 삭제하거나, W\&B Python SDK를 사용해 프로그래밍 방식으로 삭제할 수 있습니다.

<Tabs>
  <Tab title="W&B App" value="ui">
    아티팩트 버전을 삭제하려면 다음을 수행하세요.

    1. 삭제하려는 아티팩트 버전이 포함된 프로젝트로 이동합니다.
    2. **Artifacts** 탭을 선택합니다.
    3. 아티팩트 유형 목록에서 삭제하려는 버전이 포함된 아티팩트 유형을 선택합니다.
    4. 삭제하려는 아티팩트 버전 옆에 있는 **액션 (<Icon icon="ellipsis" iconType="solid" />)** 메뉴를 클릭합니다.
    5. 드롭다운에서 **Delete Version**을 선택합니다.
  </Tab>

  <Tab title="W&B Python SDK" value="sdk">
    [wandb.Artifact.delete()](/ko/products/wandb/ref/python/experiments/artifact#delete) 방법을 사용해 프로그래밍 방식으로 아티팩트 버전을 삭제합니다. 아티팩트의 전체 이름을 지정하세요. 전체 이름은 `<entity>/<project>/<artifact_name>:<version>` 형식입니다. 아티팩트에 연결된 별칭이 하나 이상 있어도 삭제하려면 `delete_aliases` 매개변수를 `True`로 설정하세요.

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

    api = wandb.Api()

    # 경로로 아티팩트를 조회합니다
    artifact = api.artifact("<entity>/<project>/<artifact_name>:<version>")

    # 아티팩트 버전과 모든 별칭을 함께 삭제합니다
    artifact.delete(delete_aliases=True)
    ```
  </Tab>
</Tabs>

<h2 id="delete-multiple-artifact-versions">
  여러 아티팩트 버전 삭제
</h2>

다음 코드 예시는 여러 아티팩트 버전을 삭제하는 방법을 보여줍니다. 아티팩트를 생성한 entity, 프로젝트 이름, run ID를 `wandb.Api.run()`의 인수로 제공하세요. 이 메서드는 해당 run이 생성한 모든 아티팩트 버전에 액세스할 수 있는 run 객체를 반환합니다. 그런 다음 아티팩트 버전을 순회하며 조건에 맞는 버전을 삭제하세요.

<Tip>
  아티팩트 버전과 연결된 모든 별칭을 삭제하려면 `delete_aliases` 매개변수를 `True`로 설정하세요(`wandb.Artifact.delete(delete_aliases=True)`).
</Tip>

`<entity>`, `<project>`, `<run_id>`, `<artifact_name>` 자리표시자를 실제 값으로 바꾸세요:

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

# W&B API 초기화
api = wandb.Api()

# 경로로 run 조회. 경로는 <entity>/<project>/<run_id>로 구성
run = api.run("<entity>/<project>/<run_id>")

# 버전을 삭제할 아티팩트 이름 지정
artifact_name = "<artifact_name>"

# 지정한 이름의 아티팩트 버전 검색 및 삭제
for artifact in run.logged_artifacts():
    print(f"Found artifact: {artifact.name}") # 이름 예시 run_4dfbufgq_model:v0
    # split()으로 버전을 제외한 아티팩트 이름만 추출
    if artifact.name.split(":")[0] == artifact_name:
        print(f"Deleting artifact version: {artifact.name}")
        artifact.delete(delete_aliases=True)
```

<h2 id="delete-multiple-artifact-versions-with-a-specific-alias">
  특정 별칭이 있는 여러 아티팩트 버전 삭제
</h2>

다음 코드는 특정 별칭이 있는 여러 아티팩트 버전을 삭제하는 방법을 보여줍니다.

`<entity>`, `<project>`, `<run_id>`, `<artifact_name>`, `<alias>` 자리표시자를 실제 값으로 바꾸세요:

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

# W&B API 초기화
api = wandb.Api()

# 경로로 run을 조회합니다. 경로 형식은 <entity>/<project>/<run_id>입니다
run = api.run("<entity>/<project>/<run_id>")

# 버전을 삭제할 아티팩트 이름을 지정합니다
artifact_name = "<artifact_name>"

# 삭제할 아티팩트 버전을 필터링하는 데 사용할 별칭을 지정합니다
desired_alias = "<alias>"

# run에 로깅된 아티팩트 중 별칭이 'v3' 및 'v4인 아티팩트를 삭제합니다
for artifact in run.logged_artifacts():
    print(f"Found artifact: {artifact.name}")
    if (artifact.name.split(":")[0] == artifact_name) and (desired_alias in artifact.aliases):
            artifact.delete(delete_aliases=True)
```

<h2 id="delete-an-artifact-collection">
  아티팩트 컬렉션 삭제
</h2>

<Tabs>
  <Tab title="W&B App" value="ui">
    아티팩트 컬렉션을 삭제하려면:

    1. 삭제하려는 아티팩트 컬렉션으로 이동하세요.
    2. 아티팩트 컬렉션 이름 옆의 **액션 (<Icon icon="ellipsis" iconType="solid" />)** 메뉴를 선택하세요.
    3. 드롭다운 메뉴에서 **Delete**를 선택하세요.
  </Tab>

  <Tab title="W&B Python SDK" value="sdk">
    [wandb.Artifact.delete()](/ko/products/wandb/ref/python/experiments/artifact#delete) 방법을 사용하여 프로그래밍 방식으로 아티팩트 컬렉션을 삭제하세요.

    `wandb.Api.artifact_collection(name="")`에 아티팩트 컬렉션의 전체 경로를 제공하세요. 전체 경로는 `<entity>/<project>/<artifact_collection_name>`으로 구성됩니다.

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

    # W&B API 초기화
    api = wandb.Api()

    # 경로로 아티팩트 컬렉션 조회. 경로 구성:
    # <entity>/<project>/<artifact_collection_name>
    collection = api.artifact_collection(
        type_name = "<artifact_type>",
        name = "<entity>/<project>/<artifact_collection_name>"
    )
    collection.delete()
    ```
  </Tab>
</Tabs>

<h2 id="protected-aliases-and-deletion-permissions">
  보호된 별칭과 삭제 권한
</h2>

보호된 별칭이 있는 아티팩트에는 특별한 삭제 제한이 적용됩니다. [보호된 별칭](/ko/products/registry/aliases#protected-aliases)은 레지스트리 관리자가 무단 삭제를 방지하기 위해 레지스트리에서 설정할 수 있는 별칭입니다.

<Note>
  **보호된 별칭 관련 중요 고려 사항:**

  * 보호된 별칭이 있는 아티팩트는 레지스트리 관리자가 아닌 사용자가 삭제할 수 없습니다.
  * 레지스트리 내에서 레지스트리 관리자는 보호된 아티팩트 버전의 연결을 해제하고, 보호된 별칭이 포함된 컬렉션/레지스트리를 삭제할 수 있습니다.
  * 소스 아티팩트의 경우: 소스 아티팩트가 보호된 별칭과 함께 레지스트리에 연결되어 있으면 어떤 사용자도 삭제할 수 없습니다.
  * 레지스트리 관리자는 소스 아티팩트에서 보호된 별칭을 제거한 후 삭제할 수 있습니다.
</Note>

<h2 id="enable-garbage-collection-based-on-how-wb-is-hosted">
  W\&B 호스팅 방식에 따른 가비지 컬렉션 활성화
</h2>

<Note>가비지 컬렉션 시점은 보장되지 않습니다. 자세한 내용은 [버킷 저장소 및 비용 관리](/ko/products/wandb/platform/hosting/managing-bucket-storage)를 참조하세요.</Note>

W\&B Multi-tenant Cloud를 사용하면 가비지 컬렉션이 기본적으로 활성화됩니다. W\&B Dedicated 및 Self-Managed에서는 가비지 컬렉션을 활성화하기 위해 다음 추가 단계를 수행해야 할 수 있습니다.

1. **W\&B Self-Managed**: `GORILLA_ARTIFACT_GC_ENABLED=true`를 설정하세요.
2. **Dedicated Cloud**: 지원팀에 문의하여 가비지 컬렉션이 활성화되어 있는지 확인하세요.
3. [AWS](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html), [Google Cloud](https://cloud.google.com/storage/docs/object-versioning) 또는 [Minio](https://min.io/docs/minio/linux/administration/object-management/object-versioning.html#enable-bucket-versioning)와 같은 다른 저장소 공급자를 사용하는 경우 버킷 버전 관리를 활성화하세요. Azure를 사용하는 경우 버킷 버전 관리에 해당하는 [일시 삭제를 활성화](https://learn.microsoft.com/azure/storage/blobs/soft-delete-blob-overview)하세요.

다음 table은 배포 유형에 따라 가비지 컬렉션 활성화 요구 사항을 충족하는 방법을 설명합니다.

`X`는 해당 요구 사항을 충족해야 함을 나타냅니다:

| | 환경 변수 | 버전 관리 활성화 |
| - | - | - |
| Multi-tenant Cloud | | |
| [BYOB 저장소](/ko/products/wandb/platform/hosting/data-security/secure-storage-connector)를 사용하는 Multi-tenant Cloud | | X |
| Dedicated Cloud | | |
| [BYOB 저장소](/ko/products/wandb/platform/hosting/data-security/secure-storage-connector)를 사용하는 Dedicated Cloud | | X |
| Self-Managed | X | X |

<Note>
  참고
  보안 저장소 커넥터는 현재 Google Cloud Platform과 Amazon Web Services에서만 사용할 수 있습니다.
</Note>
