InfoGrab DocsInfoGrab Docs

A/B/n 실험 구현하기

GitLab에서 A/B/n 실험을 구현하는 방법과 실험 클래스, 세분화 규칙, 제외 규칙, 이벤트 추적, 클라이언트 레이어에서의 활용 방법을 설명합니다.

실험 구현하기 # 예시 먼저 개발용 기능 플래그를 생성할 때 사용하는 bin/feature-flag 명령을 이용해 기능 플래그를 생성하되, 타입에 experiment 를 지정해야 합니다. 설명을 위해 기능 플래그(및 실험) 이름을 pill_color 로 지정하겠습니다. bin/feature-flag pill_color -t experiment 원하는 기능 플래그를 생성한 후에는 실험 클래스를 정의합니다. 모든 실험은 app/experiments (EE 실험의 경우 ee/app/experiments )에 클래스로 선언적으로 정의해야 합니다. GitLab은 config/initializers/gitlab_experiment.rb 에서 config.strict_registration = true 를 설정하므로, 등록된 클래스 없이 실행되는 인라인 실험은 Gitlab::Experiment::UnregisteredExperiment 를 발생시킵니다. Rails 제너레이터를 사용하여 클래스를 생성하세요: rails generate gitlab:experiment pill_color control red blue 이 명령은 제너레이터에 제공한 변형과 함께 app/experiments/pill_color_experiment.rb 를 생성합니다: class PillColorExperiment < ApplicationExperiment control { 'control' } variant(:red) { 'red' } variant(:blue) { 'blue' } end 클래스를 정의한 후에는 코드에서 실험을 실행합니다: experiment(:pill_color, actor: current_user).run 호출 지점에서 블록을 전달하여 등록된 변형을 재정의할 수도 있습니다. 블록 형식은 명시적인 run 없이 실험을 실행합니다: experiment(:pill_color, actor: current_user) do |e| e.control { 'control' } e.variant(:red) { 'red' } e.variant(:blue) { 'blue' } end 이 코드가 실행되면 실험이 실행되고 변형이 할당되며, (컨트롤러 또는 뷰에서 실행될 경우) 클라이언트 레이어에서 window.gl.experiments.pill_color 객체를 다음과 같은 세부 정보와 함께 사용할 수 있습니다: 할당된 변형. 클라이언트 추적 이벤트를 위한 컨텍스트 키. 또한 실험이 실행되면 실험 :assignment 에 대한 이벤트가 자동으로 추적됩니다. 이벤트, 추적 및 클라이언트 레이어에 대한 자세한 내용은 뒤에서 다룹니다. 로컬에서 실험 테스트하기 # 사전 요구사항 # 로컬 개발 환경에서 GitLab.com 모드 활성화 실험 실행하기 # 기능 플래그 인터페이스를 사용하여 실험을 활성화할 수 있습니다. 기능 플래그를 활성화하는 호출에 관련 실험을 제공하여 특정 케이스를 타깃팅할 수도 있습니다: # Enable for everyone Feature.enable(:pi