테스트 그룹 분배 원리
버켓팅
버켓팅은 사용자를 A/B 테스트의 테스트 그룹에 분배하여 할당하기 위한 프로세스입니다. 이 문서에서는 버켓팅의 작동 원리에 대해 설명합니다.
버켓팅은 결정적(Deterministic)입니다.
A/B 테스트의 조건이 변경되지 않는 한 사용자는 항상 동일한 테스트 그룹에 할당됩니다.
A/B 테스트는 사용자를 버켓팅하기 위해서 사용자를 무작위로 섞는 데 사용할 시드와 10,000개의 슬롯을 가지고 있습니다.
A/B 테스트의 시드와 사용자 식별자를 MurmurHash 함수를 통해 슬롯 범위에 맵핑되는 정수로 해시합니다. MurmurHash는 결정적이므로 시드가 변경되지 않는 한 같은 사용자는 항상 동일한 정수로 맵핑됩니다. 사용자 식별자 또한 시스템 간 일관되게 공유가 되는 한 어떤 SDK를 사용하더라도 같은 결과가 나오게 됩니다.
트래픽 할당
10,000개의 슬롯은 트래픽의 할당 비율에 해당됩니다. 0번 슬롯은 0%, 9999번 슬롯은 100%에 해당합니다. 즉 1개의 슬롯은 0.01%의 할당량을 차지합니다.
트래픽 할당이 0% 일 때는 어떤 사용자도 A/B 테스트에 할당되지 않습니다.
트래픽 할당을 40%로 설정하면 40%에 해당하는 슬롯인 0~3999번 슬롯으로 맵핑된 사용자는 A/B테스트에 할당되어 노출됩니다.
테스트 그룹 분배
40%를 할당한 A/B테스트가 A, B 두 개의 그룹을 가지고 있고 그룹 분배 비율이 50:50인 경우는 할당된 4000개의 슬롯을 그룹 분배 비율에 맞게 분배합니다.
0~1999 슬롯에 맵핑된 사용자는 A 그룹으로 할당되고, 2000~3999 슬롯에 맵핑된 사용자는 B 그룹으로 할당됩니다.
트래픽을 60%로 증가시키면 추가로 20%에 해당하는 슬롯을 더 할당해야 합니다. 남은 슬롯 2000개(20%)를 그룹 분배 비율에 맞게 분배해서 할당합니다.
Updated 11 months ago