A/B/n 실험 구현하기
GitLab에서 A/B/n 실험을 구현하는 방법과 실험 클래스, 세분화 규칙, 제외 규칙, 이벤트 추적, 클라이언트 레이어에서의 활용 방법을 설명합니다.
실험 구현하기 # 예시 먼저 개발용 기능 플래그를 생성할 때 사용하는 bin/feature-flag 명령을 이용해 기능 플래그를 생성하되, 타입에 experiment 를 지정해야 합니다. 설명을 위해 기능 플래그(및 실험) 이름을 pill_color 로 지정하겠습니다. bin/feature-flag pill_color -t experiment 원하는 기능 플래그를 생성한 후에는 코드에서 바로 실험을 구현할 수 있습니다. 기본적인 실험 구현 예시는 다음과 같습니다: 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(:pill_color) # Get the `experiment` method -- already available in controllers, views, and mailers. include Gitlab::Experiment::Dsl # Enable for only the first user Feature.enable(:pill_color, experiment(:pill_color, actor: User.first)) GitLab은 gitlab-experiment gem의 퍼센트 롤아웃 전략 을 확장하여 커스텀 롤아웃 메커니즘 을 구현합니다. 기능 플래그가 비활성화된 경우, 실험은 전혀 실행되지 않습니다. 사용자는 변형 할당이나 추적 없이 기본 코드 경로를 따르게 됩니다. 기능 플래그가 활성화된 경우, 설정된 퍼센트가 비제어 변형에 배분되며, 나머지 퍼센트는 제어(control)에 할당됩니다. 사용자는 변형에 적극적으로 할당되어 실험 참여자로 추적됩니다. 환경에서 실험 기능 플래그를 롤아웃하려면 ChatOps를 사용하여 다음 명령을 실행하세요(이에 대한 자세한 내용은 GitLab 개발의 기능 플래그 문서에서 다룹니다). 이 명령은 실험을 접하는 사람의 절반이 control 에, 25%는 red 변형에, 25%는 blue 변형에 할당되는 시나리오를 만듭니다: /ch