
# 시작하기

## 요구 사항

- PHP 8.2+
- WordPress 6.4+
- 일반 WordPress 데이터베이스 연결을 통한 MySQL 또는 MariaDB
- 플러그인 활성화 시 쓰기 가능한 `wp-config.php`

## 설치

Composer을 사용해 Rudel을 설치하고 일반 WordPress 플러그인처럼 활성화하세요.

```bash
composer require rudel/rudel
wp plugin activate rudel
```

Composer은 프로젝트에서 WordPress 플러그인을 `wp-content/plugins`에 매핑하지 않는 한 `vendor/rudel/rudel`에 Rudel을 설치합니다(예: `composer/installers`). `wp plugin activate rudel`이 플러그인을 찾으려면 플러그인 디렉터리에 있어야 합니다.

## 활성화 시 수행되는 작업

활성화하면 Rudel의 테이블이 생성되고, 매시간 실행되는 정리 이벤트가 예약되며, `wp-settings.php`을 불러오는 줄 바로 위에 `wp-config.php`에 부트스트랩 줄이 추가됩니다. 이 줄을 통해 Rudel은 WordPress 로딩이 끝나기 전에 샌드박스를 선택할 수 있습니다. 먼저 Rudel가 `wp-config.php.rudel-backup-{timestamp}`이라는 이름으로 백업 사본을 작성합니다.

별도의 설치 명령은 없습니다. `wp-config.php`에 쓸 수 없으면 활성화에 실패합니다. 비활성화하면 해당 줄과 예약된 이벤트가 제거됩니다.

런타임 상태를 확인하세요:

```bash
wp rudel status
```

`Bootstrap installed`에 `yes`이라고 표시되어야 합니다.

## 샌드박스 만들기

```bash
wp rudel create --name=alpha --theme=twentytwentyfour
```

Rudel은 생성된 샌드박스 ID를 출력합니다(예: `alpha-3be7`). 호스트의 WordPress 테이블을 샌드박스 전용 테이블 접두사 아래에 복제하고, 테마를 샌드박스 디렉터리에 복사한 다음 호스트 WordPress 데이터베이스에 레코드를 저장합니다. 아래 예에서는 `alpha-3be7`를 사용합니다. 명령이 출력한 ID를 사용하세요.

## 샌드박스 안에서 WP-CLI 사용하기

```bash
RUDEL_ENVIRONMENT=alpha-3be7 wp option get blogname
```

`RUDEL_ENVIRONMENT`이 없으면 WP-CLI은 호스트에 연결됩니다.

## HTTP을 샌드박스로 라우팅하기

```bash
curl -H 'X-Rudel-Environment: alpha-3be7' http://localhost:8000/
```

브라우저 세션에서는 샌드박스 ID가 담긴 `rudel_environment` 쿠키를 설정하세요. Rudel은 쿠키를 읽기만 하고 설정하거나 지우지는 않습니다. 호스트로 돌아가려면 쿠키를 삭제하세요.

샌드박스는 호스트 URL에서 실행됩니다. 헤더나 쿠키가 없으면 동일한 URL이 호스트를 제공합니다.

## 다음 단계

- [환경 만들기](https://rudel.inline0.dev/ko/docs/environments/creating)
- [환경 관리](https://rudel.inline0.dev/ko/docs/environments/managing)
- [격리](https://rudel.inline0.dev/ko/docs/environments/isolation)
- [CLI](https://rudel.inline0.dev/ko/docs/cli)
