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

# 베이스라인

> 기준이 될 버전을 고정하면, 모든 변경을 그것과 견줍니다

**베이스라인**은 모든 걸 비교하는 기준 버전입니다. 보통은 지금 배포된 버전이지만, 특정 비교에서는 어느 버전이든 베이스라인으로 고정할 수 있습니다.

## 기본 베이스라인

기본값은 Flow의 **현재 배포 버전**을 베이스라인으로 씁니다. 자연스러운 선택입니다. 결국 "이 변경, 출시할 값을 하나?" 를 묻는 셈이니까요.

## 커스텀 베이스라인

특정 버전을 베이스라인으로 고정하고 싶을 때가 있습니다.

* 여러 후보를 공통 기준에 견주기. 하나를 고정하고 나머지를 평가합니다.
* **역대 최고치**에 견주기. "우리 v12가 역대 최고 품질이었으니, 그 아래로는 회귀하지 말자."
* 변경 하나의 효과만 떼어 보기. 중간 버전을 고정해 "이 변경 전" 과 "이 변경 후" 를 비교합니다.

## 베이스라인 정하기

시뮬레이션 폼에서 **Baseline → 버전 선택**을 고릅니다. 절대 수치만 원하면 "none" 을 고릅니다.

CLI 로도 됩니다.

```bash theme={null}
nora simulate --target draft --baseline version:v14 --dataset support-golden
```

## 참조 베이스라인

어떤 워크스페이스는 한 버전을 영구 **참조 베이스라인**으로 고정합니다.

* 모든 CI 시뮬레이션이 그것에 견줘 돕니다.
* 회귀율도 그것을 기준으로 계산합니다.
* 새 버전에는 "vs. reference: +/-X%" 라벨이 붙습니다.

**Flow settings → Reference baseline**에서 정합니다. 한 번에 하나만 둡니다. 확인된 개선을 출시하면서 함께 앞으로 옮깁니다.

## 베이스라인 드리프트

참조 베이스라인이 오래되면 지금 배포된 동작과 벌어집니다. 참조가 90일보다 오래되면 Nora가 **baseline drift** 경고를 띄웁니다. 참조를 현재 배포 버전으로 옮겨 주세요.

## 비용을 재는 베이스라인

비용 베이스라인도 쓸모가 있습니다. 참조 베이스라인이 실행당 \$0.03으로 출시됐다면, 새 변경을 견줄 때 실행 비용이 어디로 가는지 보입니다.

* "v18: 베이스라인 대비 -\$0.005"
* "v19: 베이스라인 대비 +\$0.012"
* "v20: 베이스라인 대비 -\$0.001"

이걸 시간에 따라 보면 비용이 슬금슬금 오르는 게 눈에 들어옵니다.

## "베이스라인 없음" 모드

가끔은 비교 없이 원래 절대 수치만 보고 싶을 때가 있습니다. 몇 개나 통과했고 비용이 얼마인지 말이죠. 이럴 땐 베이스라인을 `none`으로 둡니다. 견줄 대상이 없는 첫 시뮬레이션에 좋습니다.

## 개선별 고정

개선 후보에는 저마다 암묵적 베이스라인이 있습니다(개선을 적용하기 전 상태죠). 그 후보의 시뮬레이션은 기본으로 이 암묵적 베이스라인을 씁니다. 다른 것에 견주고 싶으면 덮어쓰면 됩니다. 예를 들어 아무것도 안 바꾼 가상의 후보에 견줘, 이 변경이 값을 하는지 확인합니다.

## 베이스라인과 데이터셋

베이스라인과 데이터셋은 별개입니다. 데이터셋 하나를 여러 베이스라인과 쓸 수 있고, 베이스라인 하나를 여러 데이터셋과 쓸 수 있습니다.

시뮬레이션의 전체 맥락은 (타겟, 베이스라인, 데이터셋) 세 가지입니다. 셋 다 실행할 때마다 기록되므로, 몇 달 뒤에도 결과를 해석할 수 있습니다.
