평가 컨텍스트

이 제품은 선택한 Datadog 사이트에서 지원되지 않습니다. ().

개요

평가 컨텍스트는 SDK가 플래그를 평가할 때 Datadog에 전달하는 속성 집합입니다. Datadog Feature Flags는 OpenFeature의 평가 컨텍스트를 사용합니다. 이는 사용자, 세션, 기기 등 평가 중인 대상을 설명하는 속성의 평면 맵입니다. 타겟팅 규칙백분율 롤아웃은 이러한 속성을 읽어 대상(예: 사용자 등)이 어떤 변형을 수신할지 결정합니다.

평가 컨텍스트가 없어도 SDK는 불리언 on/off 플래그를 평가할 수 있습니다. 대상(예: 사용자 등) 속성을 필터링하는 타겟팅 규칙과 일치시킬 수 없으며, 해당 대상에 대해 일관된 롤아웃 할당을 생성할 수 없습니다.

타겟팅 키

targetingKey은(는) 평가 컨텍스트의 기본 식별자입니다. 일반적으로 사용자 ID, 세션 ID 또는 기기 ID입니다. Datadog은 targetingKey을(를) 결정론적 무작위화에 사용하므로, 동일한 대상(예: 사용자 등)이 플래그에 대해 항상 동일한 변형을 일관되게 수신합니다.

세션 전반에 걸쳐 동일한 대상(예: 사용자 등)에 대해 안정적이고 일관된 식별자를 사용하십시오. 로그아웃했거나 익명인 대상(예: 사용자 등)의 경우, SharedPreferences을(를) 생략하거나 세션마다 다시 생성하는 대신 로컬 스토리지 또는 targetingKey에 저장된 UUID와 같은 영구 식별자를 사용하십시오.

컨텍스트 속성

targetingKey 외에도 평가 컨텍스트에는 user_role, country 또는 tier과 같은 추가 속성을 원하는 만큼 포함할 수 있습니다. 타겟팅 규칙 필터에서 이러한 속성을 참조하여 각 변형을 볼 대상을 제어하십시오.

Datadog Feature Flags는 평가 컨텍스트 속성이 문자열, 숫자, 불리언과 같은 평면적인 기본 값이어야 합니다. 중첩된 객체와 배열은 지원되지 않으며 노출 데이터가 삭제될 수 있습니다.

평가 컨텍스트 예시

const evaluationContext = {
  targetingKey: 'user-123',
  user_id: 'user-123',
  user_role: 'admin',
  country: 'US',
  tier: 'premium',
};
from openfeature.evaluation_context import EvaluationContext

eval_ctx = EvaluationContext(
    targeting_key="user-123",
    attributes={
        "user_id": "user-123",
        "user_role": "admin",
        "country": "US",
        "tier": "premium",
    },
)
evalCtx := openfeature.NewEvaluationContext(
    "user-123",
    map[string]interface{}{
        "user_id":   "user-123",
        "user_role": "admin",
        "country":   "US",
        "tier":      "premium",
    },
)

클라이언트 측 vs. 서버 측 컨텍스트

클라이언트 및 서버 SDK는 평가 컨텍스트를 다르게 설정합니다:

  • 클라이언트 측 SDK는 SDK 인스턴스에 대한 단일 전역 평가 컨텍스트를 유지합니다. 초기화 중에 한 번 설정한 다음, 사용자가 로그인한 후와 같이 주체 속성이 변경될 때 OpenFeature.setContext()를 호출하여 업데이트하십시오. 이후의 모든 플래그 평가는 업데이트된 컨텍스트를 사용합니다.
  • 서버 측 SDK는 전역 컨텍스트를 유지하지 않습니다. 현재 사용자 또는 세션을 기반으로 각 들어오는 요청에 대한 평가 컨텍스트를 빌드하고, 해당 요청에 대한 모든 플래그 평가 호출에 명시적으로 전달하십시오. 요청 내 평가 전반에서 동일한 컨텍스트 객체를 재사용하고, 주체 속성이 변경되는 경우에만 다시 빌드하십시오.

참고 자료