
# 정리

정리 작업은 더 이상 필요하지 않은 샌드박스를 제거합니다. 먼저 미리 확인하세요:

```bash
wp rudel cleanup --dry-run
```

`--dry-run`은 제거될 항목과 이유를 보여줍니다. 플래그 없이 실행하면 항목이 제거됩니다:

```bash
wp rudel cleanup
```

이 명령은 확인을 요청하지 않습니다.

## 정책

보호되지 않은 샌드박스는 다음 중 하나라도 해당하면 제거됩니다:

| 이유 | 규칙 |
|--------|------|
| `expiry reached` | `expires_at`이 과거 시점임 |
| `age policy matched` | 생성된 지 `max_age_days`이 넘음 |
| `idle policy matched` | 마지막 활동 이후 `max_idle_days`이 넘음 |

`max_age_days` 및 `max_idle_days`은 `rudel_config`에서 가져옵니다(둘 다 기본값은 `0`이며, 이 경우 규칙이 비활성화됩니다). 한 번 실행할 때만 재정의하려면 다음과 같이 하세요:

```bash
wp rudel cleanup --max-age-days=30 --dry-run
wp rudel cleanup --max-idle-days=7
```

샌드박스를 선택하는 모든 요청과 스냅샷이 마지막 활동 시각을 갱신합니다.

## 병합된 샌드박스

```bash
wp rudel cleanup --merged --dry-run
```

`--merged`은 위 정책과 별도의 절차로 실행됩니다. 샌드박스에 기록된 연결된 Git 작업 트리가 모두 저장소의 기본 브랜치에 병합된 브랜치에 있을 때 샌드박스를 제거한 다음 해당 브랜치를 삭제합니다. 샌드박스의 테마 디렉터리가 Git 저장소일 때 이를 복제하면 연결된 작업 트리가 생성됩니다([Git](https://rudel.inline0.dev/ko/docs/features/git) 참고). `--git`으로 생성한 샌드박스에는 작업 트리 기록이 없으므로 항상 건너뜁니다([이슈 #8](https://github.com/inline0/rudel/issues/8)).

## 보호된 샌드박스

두 절차 모두 보호된 샌드박스는 건너뜁니다. 정리 작업에서 보호된 샌드박스를 대상으로 삼으려면 먼저 `wp rudel update <id> --unprotected`으로 보호를 해제하세요. `wp rudel destroy`은 보호 여부를 무시합니다.

샌드박스를 제거하면 테이블을 삭제하고, 관리되는 파일과 작업 트리를 제거하며, Rudel 환경 기록을 삭제합니다. 일정에 따라 정리 작업을 실행하려면 [자동화](https://rudel.inline0.dev/ko/docs/features/automation)를 참고하세요.
