# 테스트 그룹 분배 원리

## 버켓팅

버켓팅은 사용자를 A/B 테스트의 테스트 그룹에 분배하여 할당하기 위한 프로세스입니다. 이 문서에서는 버켓팅의 작동 원리에 대해 설명합니다.

{% hint style="info" %}
버켓팅은 결정적(Deterministic)입니다.

A/B 테스트의 조건이 변경되지 않는 한 사용자는 항상 동일한 테스트 그룹에 할당됩니다.
{% endhint %}

A/B 테스트는 사용자를 버켓팅하기 위해서 사용자를 무작위로 섞는 데 사용할 시드와 10,000개의 슬롯을 가지고 있습니다.

A/B 테스트의 시드와 사용자 식별자를 [MurmurHash](https://en.wikipedia.org/wiki/MurmurHash) 함수를 통해 슬롯 범위에 맵핑되는 정수로 해시합니다. MurmurHash는 결정적이므로 시드가 변경되지 않는 한 같은 사용자는 항상 동일한 정수로 맵핑됩니다. 사용자 식별자 또한 시스템 간 일관되게 공유가 되는 한 어떤 SDK를 사용하더라도 같은 결과가 나오게 됩니다.

![3096](/files/Ga4ZXg51iNFB4CIAqi1q)

## 트래픽 할당

![1 Slot = 0.01%](/files/V82oUQEIY7c7s5spP1ht)

10,000개의 슬롯은 트래픽의 할당 비율에 해당됩니다. 0번 슬롯은 0%, 9999번 슬롯은 100%에 해당합니다. 즉 1개의 슬롯은 0.01%의 할당량을 차지합니다.

![트래픽 할당 0%](/files/wsCur6WJBrf8Dmyl6BPm)

트래픽 할당이 0% 일 때는 어떤 사용자도 A/B 테스트에 할당되지 않습니다.

![트래픽 할당 40%](/files/7kdSrpxQWdPhISmZLkbL)

트래픽 할당을 40%로 설정하면 40%에 해당하는 슬롯인 0\~3999번 슬롯으로 맵핑된 사용자는 A/B테스트에 할당되어 노출됩니다.

## 테스트 그룹 분배

![트래픽 할당 40% / 그룹분배 A(50) : B(50)](/files/vi4cm75lpbO7nC3BfT87)

40%를 할당한 A/B테스트가 A, B 두 개의 그룹을 가지고 있고 그룹 분배 비율이 50:50인 경우는 할당된 4000개의 슬롯을 그룹 분배 비율에 맞게 분배합니다.

0\~1999 슬롯에 맵핑된 사용자는 A 그룹으로 할당되고, 2000\~3999 슬롯에 맵핑된 사용자는 B 그룹으로 할당됩니다.

![트래픽 할당 60% / 그룹분배 A(50) : B(50)](/files/4hxnqVASFXpFuimzaEb4)

트래픽을 60%로 증가시키면 추가로 20%에 해당하는 슬롯을 더 할당해야 합니다. 남은 슬롯 2000개(20%)를 그룹 분배 비율에 맞게 분배해서 할당합니다.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hackle.io/ab-test/group-distribution/ab-bucketing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
