3.3.4 원칙 4: 기계 가독성(Machine-Readability) 우선
결정론적 정답지(Deterministic Ground Truth)는 사람이 읽고 “맞네“라고 고개를 끄덕이기 위해 존재하는 것이 아니다. 이는 하루 수천 번씩 실행되는 CI/CD 파이프라인 한가운데서, 인간의 개입 없이(Human-in-the-loop 배제) 오직 컴파일러와 테스트 스크립트만으로 AI의 응답을 평가(Evaluate)하기 위한 ’기계들의 법전’이다.
따라서 정답지 설계의 네 번째이자 가장 기술적인 원칙은 **‘기계 가독성(Machine-Readability)의 극한적 추구’**다. 이 원칙이 위배되는 순간, 오라클 시스템은 정답지를 파싱(Parsing)하다가 런타임 에러를 뿜어내며 전체 파이프라인을 멈춰 세운다.
1. 자연어 서술의 배제와 구조화 데이터의 강제
비결정성(Nondeterminism)을 다루는 시스템에서, 정답지마저 자연어(Natural Language)로 서술되어 있다면 시스템은 혼돈에 빠진다.
- 안티 패턴 (자연어 서술):
{"expected_rule": "상품 A의 가격은 5만원 이상이어야 하며, B 상품이 포함될 경우 할인이 적용된다."}
이러한 정답지는 인간 평가자에게는 유용할지 모르나, 기계 오라클이 이를 검증하려면 또 다른 자연어 해석 AI(LLM-as-a-Judge)를 동원해야 하는 모순(Turtles all the way down)에 빠진다.
- **결정론적 패턴 (구조화 데이터):**
정답지는 반드시 JSON, YAML과 같은 프로그래밍 언어 종속성이 없는 포맷으로, 엄격한 키-값 구조(Key-Value Pairs)로 분해되어야 한다.
```json
{
"expected_conditions": {
"product_A_min_price": 50000,
"discount_trigger_item": "product_B"
}
}
오라클은 이제 복잡한 의미 분석 없이 assert result["price"] >= expected_conditions["product_A_min_price"]라는 명확한 O(1) 연산으로 시스템의 무결성을 검증할 수 있다.
2. 평가 연산자(Evaluation Operator)의 명시적 선언
기계 가독성을 완성하기 위해서는 데이터의 ’값(Value)’뿐만 아니라 검증해야 할 ‘논리(Logic)’ 또한 데이터 구조 내에 명시되어야 한다. 오라클 스크립트에 하드코딩된 비교 연산(예: ==, >, in)은 정답지가 확장될 때마다 유지보수의 지옥을 연출한다.
선진화된 골든 데이터셋(Golden Dataset)은 각각의 필드가 어떤 방식으로 채점되어야 하는지 메타데이터로 선언(Declarative)한다.
{"field": "user_age", "value": 18, "operator": "GTE"}: 숫자 18보다 크거나 같은지 검증(Greater Than or Equal){"field": "country", "value": ["KR", "US"], "operator": "IN"}: 배열 내에 포함되어 있는지 검증{"field": "email", "value": "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$", "operator": "REGEX"}: 정규표현식 준수 여부 검증
이러한 **‘메타 검증 로직의 내재화’**는 오라클 파이프라인을 단순한 문자열 비교기에서 강력한 비즈니스 룰 검사(Rule Validator) 엔진으로 격상시킨다. 테스트 스크립트는 더 이상 AI의 출력 방식을 걱정할 필요 없이, 정답지 파일 하나만 로드(Load)하여 명시된 연산자(Operator)대로 루프(Loop)를 돌며 무기질적인 참/거짓을 판별해 내게 된다.