정책 엔진
정책 그룹 (Policy Group)
정책 그룹 (Policy Group)
정책 버전 (Policy Version)
정책 버전 (Policy Version)
DRAFT → ACTIVE → ARCHIVED- DRAFT: 편집 가능. 규칙을 추가, 수정, 삭제할 수 있습니다.
- ACTIVE: 발행되어 잠금. 더 이상 수정할 수 없습니다. 배포 준비 완료.
- ARCHIVED: 새 버전으로 대체됨. 읽기 전용 기록.
- EXPIRED:
effectiveTo날짜를 지남. 스케줄러가 자동 전환.
정책 규칙 (Policy Rule)
정책 규칙 (Policy Rule)
true로 평가되면 해당 액션이 실행됩니다.
규칙은 버전 내에서 우선순위 순서로 정렬됩니다 (1 = 최우선).조건 (Condition)
조건 (Condition)
EQUALS, GREATER_THAN, CONTAINS, IN 등의 연산자를 사용하여 입력 fact를 평가합니다.
AND / OR 논리 연산자로 그룹을 중첩할 수 있습니다.액션 (Action)
액션 (Action)
MUTATE_FACT, SET_FACT, BLOCK.
이들은 도메인 중립 원시(primitive) 입니다. 엔진은 숫자와 구조만 봅니다. 커머스 같은 특정 도메인 개념을 가정하지 않습니다. 도메인 의미(“할인”, “쿠폰”, “포인트” 등)는 액션 타입이 아니라 fact 이름과 엔진이 돌려주는 값으로 표현됩니다.fact와 스키마
fact (Fact)
fact (Fact)
userId, customerTier, orderTotal.
fact는 조건이 평가하고 액션이 사용하는 원시 데이터입니다.fact 정의 (Fact Definition)
fact 정의 (Fact Definition)
userId, userTags와 시스템 fact isBlocked, blockReason이 미리 등록됩니다. userId, userTags는 다른 fact와 동일하게 수정·삭제할 수 있고, isBlocked, blockReason은 삭제하거나 타입을 바꿀 수 없습니다. 삭제와 타입 변경은 그 fact를 참조하는 규칙이 없어야 열립니다. 삭제한 그룹의 규칙은 세지 않습니다.사전 등록 fact (Pre-registered Facts)
사전 등록 fact (Pre-registered Facts)
미등록 fact (Unregistered Fact)
미등록 fact (Unregistered Fact)
SET_FACT·MUTATE_FACT의 targetVar)은 다릅니다. 등록하지 않으면 저장과 발행이 ACT-032로 거절됩니다.규칙이 읽기만 하는 키는 등록 여부와 상관없이 실행 시 값이 전달되면 정상 동작합니다. 등록하면 타입 검증과 콘솔 자동완성이 추가되고, requirements 분석에도 선언된 타입이 표시됩니다. lexq facts unregistered 또는 lexq_facts_unregistered MCP 도구로 목록을 확인하세요.값 제약 (Value Domain)
값 제약 (Value Domain)
allowedValues, min, max 셋으로 적습니다. 타입이 「숫자를 담는다」를 말한다면 값 제약은 「그중 어떤 숫자인가」를 말합니다.선언하면 절대 맞을 수 없는 규칙 값을 저장 단에서 거부하고, 콘솔 값 입력칸이 드롭다운으로 바뀌며, 실행에서 제약 밖 값이 오면 400을 냅니다. 실행은 발행 시점에 뜬 사본을 봅니다. 제약을 바꾸면 언제 실행에 반영되고 수정 결과가 어떤 규칙을 알려 주는지는 나중에 제약을 바꾸면에 있습니다. 세 칸이 전부 선택이고 하나도 안 채우면 제약이 없습니다.생성 변수 (Generated Variables)
생성 변수 (Generated Variables)
generatedVariables에 노출되는 변수입니다. 입력 fact에는 없었지만 액션 실행 결과로 생성된 값들입니다.
{key}__delta 명명 규칙을 따르는 액션별 변화량 키도 포함합니다. {targetVar}__delta는 MUTATE_FACT가 적용한 부호 포함 순변화량입니다 (mutated - original).한 규칙에서 여러 액션이 같은 fact를 변경하면 __delta는 누적 변화량을 보고합니다. 액션 하나하나의 스냅샷은 executionTraces에 남아, 감사 시 원인을 끝까지 되짚을 수 있습니다.배포 생명주기
발행 (Publish)
발행 (Publish)
DRAFT에서 ACTIVE로 전환합니다.
발행되면 버전이 잠기며 규칙과 설정을 수정할 수 없습니다.
발행만으로는 라이브 트래픽이 라우팅되지 않습니다. 별도의 배포 단계가 필요합니다.배포 (Deploy)
배포 (Deploy)
ACTIVE 버전을 라이브 상태로 승격합니다.
배포 후 해당 버전이 프로덕션 트래픽을 수신하고 처리합니다.
정책 그룹당 하나의 버전만 라이브일 수 있습니다.배포 해제 (Undeploy)
배포 해제 (Undeploy)
롤백 (Rollback)
롤백 (Rollback)
예약 배포 (Scheduled Deployment)
예약 배포 (Scheduled Deployment)
테스트와 분석
드라이런 (Dry Run)
드라이런 (Dry Run)
변경 영향 시뮬레이션 (Impact Simulation)
변경 영향 시뮬레이션 (Impact Simulation)
의사결정 재실행 (Decision Replay)
의사결정 재실행 (Decision Replay)
실행 (Execution)
실행 (Execution)
실행 트레이스 (Execution Trace)
실행 트레이스 (Execution Trace)
의사결정 트레이스 (Decision Trace)
의사결정 트레이스 (Decision Trace)
status:SELECTED,NO_MATCH,NOT_SELECTED,BLOCKED,ERROR.reasonCode: 해당 status 안에서의 구체적 사유 (예:FINAL_WINNER,CONDITION_MISMATCH,MUTEX_PRIORITY_LOST,GROUP_LIMIT_REACHED,ACTION_ERROR).
A/B 테스트 (A/B Test)
A/B 테스트 (A/B Test)
context.trafficKey이며, 같은 키 값은 항상 같은 버전으로 갑니다.감사와 출처
의사결정 출처 (Decision Provenance)
의사결정 출처 (Decision Provenance)
PII 마스킹 (PII Masking)
PII 마스킹 (PII Masking)
••••••로 마스킹되어 도착하고, maskedKeys가 그 목록을 알려줍니다.
표시 레이어 전용 정책입니다. 엔진은 항상 실제 값으로 평가합니다.PII 열람 (PII Reveal)
PII 열람 (PII Reveal)
열람 감사 원장 (Reveal Audit Ledger)
열람 감사 원장 (Reveal Audit Ledger)
규칙 실행 제어
Mutex 그룹 (상호 배타 그룹)
Mutex 그룹 (상호 배타 그룹)
mutexGroup 키를 공유하는 규칙들이 실행 경쟁을 합니다.
mutexMode가 EXCLUSIVE이면 승리한 규칙 하나만, MAX_N이면 최대 mutexLimit개의 규칙이 실행됩니다. 어느 규칙이 승리하는지는 설정된 전략이 결정합니다.Mutex 전략 (상호 배타 전략)
Mutex 전략 (상호 배타 전략)
HIGHEST_PRIORITY 하나이며, 우선순위 번호가 가장 작은 규칙이 이깁니다.Mutex 실행 한도 (Mutex Limit)
Mutex 실행 한도 (Mutex Limit)
MAX_N 모드에서 mutexLimit은 Mutex 그룹 내에서 실행할 수 있는 규칙의 최대 수를 제어합니다 (기본값: 1).결제와 인프라
초과 사용 (Overage)
초과 사용 (Overage)
요청 제한 (Throttle)
요청 제한 (Throttle)
429 Too Many Requests를 반환합니다.청구 프로필 (Billing Profile)
청구 프로필 (Billing Profile)
장애 시 허용 (Fail-open)
장애 시 허용 (Fail-open)

