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

# 정책 버전

> 버전은 규칙의 스냅샷입니다. 초안에서 배포까지의 버전 생명주기를 이해하세요.

## 정책 버전이란?

\*\*정책 버전(Policy Version)\*\*은 정책 그룹 내 규칙들의 스냅샷입니다. Git 브랜치가 병합되어 릴리스로 태깅되는 것과 유사한 엄격한 생명주기를 따릅니다.

각 버전은 다음을 가집니다:

* **버전 번호** (자동 증가: v1, v2, v3…)
* 무엇이 바뀌었는지 설명하는 **커밋 메시지**
* 무엇을 할 수 있는지 결정하는 **상태(status)**
* 0개 이상의 **규칙** (조건 + 액션)

## 버전 생명주기

```
DRAFT → ACTIVE → ARCHIVED
           ↓
       EXPIRED (자동)
```

| 상태         | 규칙 편집? | 배포 가능? | 설명                                 |
| ---------- | :----: | :----: | ---------------------------------- |
| `DRAFT`    |    ✅   |    ❌   | 작업 중. 규칙을 자유롭게 추가, 수정, 삭제 가능.      |
| `ACTIVE`   |    ❌   |    ✅   | 발행되어 잠김. 배포 준비 완료.                 |
| `ARCHIVED` |    ❌   |    ❌   | 새 버전으로 대체됨. 읽기 전용 기록.              |
| `EXPIRED`  |    ❌   |    ❌   | `effectiveTo` 날짜를 지남. 스케줄러가 자동 전환. |

<Info>
  버전을 발행하면 (`DRAFT → ACTIVE`) 영구적으로 잠깁니다. 변경이 필요하면 버전을 **복제**하여 새 DRAFT를 생성하세요.
</Info>

## 핵심 제약사항

1. **규칙 없이 발행 불가.** 최소 하나의 규칙이 있어야 합니다.
2. **발행 후 수정 불가.** ACTIVE가 되면 불변입니다.
3. **DRAFT 배포 불가.** 먼저 발행한 후 배포하세요.
4. **발행 전에 항상 드라이런 실행.** 테스트 입력으로 규칙 동작을 검증하세요.

## 버전 복제

발행된 버전을 기반으로 수정이 필요할 때:

1. 기반으로 삼을 발행됨 버전을 선택합니다
2. **복제**를 클릭하면 동일한 규칙을 가진 새 초안이 생성됩니다. 유효 기간은 의도적으로 복사되지 않습니다. 서빙 기간은 버전의 의도 선언이므로, 새 버전마다 직접 지정해야 합니다
3. 새 초안에서 규칙을 수정합니다
4. 드라이런 → 발행 → 배포

복제는 전체 규칙을 그대로 가져오므로, 달라지는 부분만 수정하면 됩니다.

## 유효 기간

버전은 선택적으로 `effectiveFrom`과 `effectiveTo` 날짜를 가질 수 있으며, 스케줄러가 기간의 양 끝을 모두 집행합니다. 모든 자동 동작은 배포 이력에 기록됩니다.

* **`effectiveFrom`이 미래인 경우** 즉시 배포는 거부되지만(`P-037`), [예약 배포](/ko/guides/deployments#예약-배포)로 등록하면 유효 기간이 열리는 시각에 시스템이 자동으로 배포합니다.
* **라이브 상태에서 `effectiveTo`가 지나면** 버전은 `EXPIRED`로 전환되고, 시스템은 현재 유효한 최신 발행됨 버전으로 자동 전환합니다. 이 배포는 **System** 배포자로 기록됩니다. 유효한 후보가 없으면 배포 해제되며, 이 역시 기록됩니다.

기간 한정 프로모션이 시작과 종료 모두 자동으로 관리되고, 전 과정이 감사 가능한 이유입니다.

## 다음 단계

<CardGroup cols={2}>
  <Card title="정책 규칙" icon="list-check" href="/ko/guides/policy-rules">
    버전 내에서 조건과 액션을 정의하는 방법을 알아보세요.
  </Card>

  <Card title="배포" icon="rocket" href="/ko/guides/deployments">
    버전을 프로덕션에 배포하는 방법을 알아보세요.
  </Card>
</CardGroup>
