테스트 그룹 분배

A/B 테스트를 진행할 때, 테스트 그룹을 대상으로 사용자를 분배하고 각 테스트 그룹에 해당하는 로직을 작성해야 합니다. 이 때 사용자 분배를 핵클 SDK를 통해 진행할 수 있습니다.

📘

테스트 그룹

테스트 그룹은 테스트 대상이 되는 기존안(대조군)과 개선안(실험군)을 의미하며, 개선안은 1개 이상일 수 있습니다. 대시보드에서 설정 가능하며, 테스트 그룹을 관리하는 방법에 대해서는 A/B 테스트 설정 문서를 참고하시기 바랍니다.

variation

variation() 메소드에 실험 키를 전달하면 사용자를 분배하고 결과를 전달받을 수 있습니다. 이후 테스트 그룹 별 로직을 구현합니다.

아래 예제 코드에서는 실험 키 42를 전달하고 있으며, 테스트 그룹은 A와 B 두 개가 존재합니다.

// SDK가 준비된 이후에 실행이 되어야합니다. onReady로 감싸는 것을 잊지 마세요.
hackleClient.onReady(function() {
  
  // 실험 키가 42인 A/B 테스트에서 사용자에게 노출할 테스트 그룹을 결정합니다.
  // 결정하지 못하는 상황인 경우 테스트 그룹 A를 반환합니다.
  const variation = hackleClient.variation(42);

  // 할당받은 그룹에 대한 로직
  if (variation === "A") {
    // 그룹 A 로직
  } else if (variation === "B") {
    // 그룹 B 로직
  }
});

🚧

사용자 지정 식별자 사용 시 유의사항

클라이언트 측 SDK에서 제공하는 식별자가 아닌, 직접 관리하는 사용자 식별자 사용 시 유의사항입니다.

분배를 수행하기 전, hackleClient.variation() 메소드에 전달할 사용자 객체가 사용자 식별자 값을 포함하고 있는지 확인해주시기 바랍니다.
variation 메소드의 역할은 특정 사용자를 특정 그룹으로 분배하는 것입니다. 따라서 사용자 식별자 값이 없을 경우 분배를 정상적으로 수행할 수 없습니다.

제대로 구현하고 있는지 확신하기 어렵다면 아래에 소개하는 분배 상세 결과 variationDetail() 메소드를 이용하여 해당 메소드에서 반환하는 reason 값을 살펴보는 것을 권장합니다.

variationDetail

variationDetail() 메소드는 variation() 메소드와 동일하게 동작하고 추가로 특정 그룹으로 분배된 사유를 같이 제공합니다. 이 메소드는 분배가 잘 되고 있는지 살펴볼 때 유용하게 사용할 수 있습니다.
파라미터로 실험 키를 전달해야 합니다. 아래 예제 코드의 경우 실험 키 42를 전달하고 있습니다.

hackleClient.onReady(function() {
  // 분배 결정 상세
  const decision = hackleClient.variationDetail(experimentKey);
  // 분배 그룹
  const variation = decision.variation;
  // 분배 결정 사유
  const reason = decision.reason;
});

분배 결정 사유는 SDK_NOT_READY 와 같은 형태로 받게 됩니다. 자세한 내용은 아래 표를 참고해주세요.

사유

설명

분배 결과

SDK_NOT_READY

SDK 사용 준비가 되지 않았습니다.
(예: 잘못된 SDK 키로 초기화 시도)

기본 그룹(A)

EXPERIMENT_NOT_FOUND

전달한 실험 키에 대한 A/B 테스트를 찾을 수 없습니다.
실험 키가 잘못되었거나 해당 실험이 보관 상태일 수 있습니다.

기본 그룹(A)

EXPERIMENT_DRAFT

A/B 테스트가 준비 상태입니다.

기본 그룹(A)

EXPERIMENT_PAUSED

A/B 테스트가 일시 정지 상태입니다.

기본 그룹(A)

EXPERIMENT_COMPLETED

A/B 테스트가 종료되었습니다.

종료 시 선택한
승리 그룹

OVERRIDDEN

사용자가 수동할당에 의해 특정 그룹으로 결정되었습니다.

수동할당한 그룹

NOT_IN_EXPERIMENT_TARGET

사용자가 A/B 테스트 대상이 아닙니다.

기본 그룹(A)

TRAFFIC_NOT_ALLOCATED

A/B 테스트가 실행 중이지만 사용자가 테스트에 할당되지 않았습니다.

기본 그룹(A)

TRAFFIC_ALLOCATED

사용자가 A/B 테스트에 할당되었습니다.

할당된 그룹

VARIATION_DROPPED

원래 할당된 그룹이 테스트에서 제외되었습니다.

기본 그룹(A)

INVALID_INPUT

입력 값이 유효하지 않습니다.
(예: 숫자 타입을 넣어야 하는 파라미터에 문자 타입 입력)

기본 그룹(A)

EXCEPTION

알 수 없는 오류가 발생했습니다.

기본 그룹(A)


Did this page help you?