메인 콘텐츠로 건너뛰기

팩트 정의란?

**팩트 정의(Fact Definition)**는 규칙이 조건과 액션에서 참조할 수 있는 입력 변수를 선언합니다. 함수 파라미터처럼 이름, 타입, 필수 여부를 정의합니다. 팩트는 테넌트 전체에서 공유됩니다.

시스템 팩트

모든 테넌트는 계정 생성 시 7개의 시스템 팩트가 자동 등록됩니다. 삭제할 수 없습니다:
타입필수설명
user_idSTRING사용자 식별자
payment_amountNUMBER결제 금액
phone_numberSTRING휴대전화 번호
emailSTRING이메일 주소
device_tokenSTRING디바이스 토큰 (푸시 알림용)
user_tagsLIST_STRING사용자 태그
total_pointNUMBER현재 보유 포인트
시스템 팩트는 등록 없이 즉시 조건과 액션에서 사용할 수 있습니다.

커스텀 팩트

7개 시스템 팩트 외의 모든 입력 변수는 사용 전에 등록해야 합니다. 예를 들어 customer_tier, order_region, product_category 등은 커스텀 팩트입니다.
lexq facts create --key customer_tier --name "고객 등급" --type STRING
lexq facts create --key order_region --name "주문 지역" --type STRING --required

지원 타입

타입JSON예시
STRING"문자열""VIP"
NUMBER숫자100000
BOOLEANtrue / falsetrue
LIST_STRING["a", "b"]["KR", "US"]
LIST_NUMBER[1, 2][10000, 20000]

명명 규칙

팩트 키는 snake_case를 따릅니다. 키는 대소문자를 구분합니다.
  • payment_amount, customer_tier, user_region
  • paymentAmount, Payment-Amount

필수 vs 선택 팩트

  • 필수 팩트: 모든 실행 요청에 반드시 존재해야 합니다. 누락 시 INVALID_INPUT 오류.
  • 선택 팩트: 생략 가능. 누락 시 조건이 false로 평가됩니다.

팩트 관리

lexq facts list
lexq facts create --key order_total --name "주문 합계" --type NUMBER --required
lexq facts update --id <factId> --name "총 주문 금액"
lexq facts delete --id <factId>
lexq analytics requirements (CLI) 또는 Engine API의 GET /groups/{groupId}/requirements 엔드포인트를 사용하여 배포된 버전이 필요로 하는 팩트를 확인하세요.
팩트를 삭제해도 기존 규칙에서 자동으로 제거되지 않습니다. 삭제 전에 항상 규칙 의존성을 확인하세요.

다음 단계

정책 규칙

규칙 조건과 액션에서 팩트를 사용하세요.

정책 실행

실행 시 팩트가 어떻게 전달되는지 확인하세요.