무작위 배정

Randomization

방법

실험에서 사용자를 치우침 없이 여러 집단으로 나누는 절차로, 두 집단을 견주는 일이 성립하게 만드는 전제입니다.

등장 배경

두 안을 비교하려면 그것을 보는 두 무리가 닮아 있어야 합니다. 닮지 않았다면 결과의 차이가 안 때문인지 무리 때문인지 가릴 수 없습니다.

가르는 일이 어려워서 편한 기준을 쓰는 일이 많았습니다. 먼저 가입한 절반과 나중에 가입한 절반으로 나누거나, 아이디 끝자리로 나누는 식입니다. 문제는 그런 기준에 다른 성질이 딸려 온다는 점입니다. 먼저 가입한 쪽에는 제품을 찾아서 들어온 초기 사용자가 몰려 있어 무엇을 보여 줘도 전환율이 높습니다. 특정 대역의 아이디는 한 회사가 하루에 몰아 만든 계정일 수 있습니다.

시간으로 나누는 것도 같은 문제를 냅니다. 월요일부터 수요일까지 A를, 목요일부터 토요일까지 B를 보여 주면 요일 효과가 결과에 그대로 섞입니다.

무작위 배정은 동전 던지기에 가까운 방식으로 갈라 이 문제를 없앱니다. 값어치는 눈에 보이는 성질을 맞춰 주는 데 있지 않고, 우리가 존재조차 모르는 성질까지 양쪽에 비슷하게 섞인다는 데 있습니다. 유입 경로와 기기와 사용 습관을 하나하나 맞추려 들면 끝이 없지만, 무작위로 나누면 목록에 없던 성질까지 함께 흩어집니다. 결과를 왜곡하는 숨은 변수인 교란 변수를 미리 알지 못해도 막아 주는 장치입니다.

사용 절차

배정 단위를 정하고, 예측할 수 없는 값으로 집단을 나누고, 나뉜 뒤에 두 집단이 실제로 닮았는지 확인합니다.

  1. 배정 단위를 정합니다. 사람 단위로 나눌지 방문 단위로 나눌지가 먼저입니다. 방문 단위로 나누면 같은 사람이 월요일에 A를 보고 화요일에 B를 보게 되어 화면이 바뀐 것처럼 느낍니다. 팀이 함께 쓰는 제품이라면 한 걸음 더 올려 팀 단위로 나눕니다.
  2. 비율을 정합니다. 절반씩이 기본이고, 되돌리기 어려운 변경이라면 90 대 10으로 시작해 문제가 없는 것을 확인한 뒤 늘립니다.
  3. 나눌 방법을 정합니다. 사용자 식별자를 고정된 규칙으로 잘라 구간에 배정하는 방식이 흔합니다. 같은 사람이 언제 들어와도 같은 집단에 들어가야 합니다. 매번 새로 뽑으면 한 사람이 두 집단을 오가게 됩니다.
  4. 배정 시점을 정합니다. 그 화면에 실제로 닿는 순간에 배정합니다. 미리 전체 사용자를 나눠 두면 그 화면에 들어오지도 않은 사람이 집단에 섞여 차이가 묻힙니다.
  5. 나뉜 뒤에 확인합니다. 절반씩 나눴는데 54 대 46으로 들어왔다면 배정이나 집계에 문제가 있습니다. 두 집단의 요금제 구성과 가입 시기 분포도 비교합니다. 크게 어긋나 있으면 실험을 멈추고 원인을 찾습니다.
  6. 실험 중에는 손대지 않습니다. 도중에 비율이나 배정 규칙을 고치면 앞 기간과 뒤 기간이 섞입니다.

적합한 상황과 한계

맞는 자리는 사용자 수가 충분하고 무작위로 갈라도 문제가 없는 변경입니다. 화면 배치, 문구, 추천 순서, 알림 발송 시점 같은 것이 그렇습니다. 나뉜 두 무리는 각각 대조군과 실험군이 되고, 그 뒤의 A/B 테스트가 이 배정 위에서 돌아갑니다.

한계는 넷입니다.

  1. 나눌 수 없는 것이 있습니다. 같은 제품을 두 가격으로 파는 실험은 사용자가 알게 되면 신뢰 문제가 되고, 브랜드 캠페인처럼 모두에게 한 번 나가는 것은 애초에 가를 대상이 아닙니다. 기업 고객이 스무 곳뿐이라면 나눠도 각 집단에 열 곳이라 결론이 나오지 않습니다.
  2. 두 집단이 서로에게 영향을 줄 수 있습니다. 초대하는 사람이 실험군이고 초대받는 사람이 대조군이면, 새 초대 화면의 효과가 대조군의 숫자에도 나타납니다. 이 경우에는 사람이 아니라 팀이나 지역처럼 서로 만나지 않는 단위로 나눕니다.
  3. 표본이 작으면 무작위여도 치우칩니다. 스무 명을 동전으로 나누면 한쪽에 큰 고객이 몰립니다. 그래서 필요 표본 수를 먼저 계산하고, 그 수가 모일 기간을 확보하지 못하면 시작하지 않습니다.
  4. 모든 편향을 없애 주지는 않습니다. 실험군에만 나타나는 버그나 한쪽 집단만 느린 화면은 무작위와 무관하게 결과를 망칩니다. 배정이 잘됐는지와 실험이 잘 굴러가는지는 따로 확인합니다.

실무 용례

"아이디 끝자리로 나누면 안 돼요. 그 대역이 한 회사 계정일 수 있습니다."

편해 보이는 기준에 다른 성질이 딸려 온다는 지적입니다.

"팀 단위로 나눕시다. 같은 문서를 다른 화면으로 보면 서로 설명이 안 됩니다."

배정 단위를 한 걸음 올려야 한다는 판단입니다.

"50 대 50인데 54 대 46으로 들어왔어요. 집계부터 봅시다."

배정이 의도대로 됐는지 먼저 확인하는 자리입니다.

페이지덱에서는 지현이 실험을 열 때 배정 단위를 팀으로 두는 것을 기본으로 합니다. 문서를 함께 쓰는 제품이라 한 팀 안에서 화면이 갈리면 문의가 들어옵니다. 태오는 같은 팀이 실험 기간 내내 같은 집단에 머물도록 배정 규칙을 고정해 두었습니다.

한 번 실패한 실험이 있었습니다. 초대 화면을 바꾸는 실험을 사람 단위로 나눴는데, 실험군이 보낸 초대를 대조군이 받는 구조여서 양쪽 숫자가 함께 올랐습니다. 차이가 거의 없다는 결과가 나왔고, 다시 팀 단위로 나눠 돌렸을 때는 뚜렷한 차이가 보였습니다.

흔한 오해

규칙적인 기준으로 나누면 무작위와 같다고 보는 경우가 가장 많습니다. 아이디 끝자리나 가입 순서는 우리가 조작한 것이 아니니 공정해 보입니다. 하지만 무작위의 요건은 우리가 개입하지 않았다는 것이 아니라 그 기준이 다른 성질과 상관이 없다는 것입니다. 가입 순서는 사용 습관과 강하게 이어져 있고, 아이디 대역은 계정을 만든 방식과 이어져 있습니다. 그래서 이 방식으로 얻은 차이는 실험 결과로 읽을 수 없습니다.

무작위 배정을 하면 실험이 된다고 보는 것도 흔합니다. 나누는 일이 실험의 처음이자 가장 눈에 보이는 단계라 그렇게 읽힙니다. 다만 이것은 부품 하나입니다. 몇 명을 모아야 하는지, 얼마나 작은 차이까지 잡아낼 수 있는지를 나타내는 최소 검출 효과, 무엇을 성공으로 볼지, 그리고 언제 멈출지를 함께 정해 두지 않으면 잘 나뉜 두 집단에서 아무 결론도 나오지 않습니다. 긴 기간의 효과를 보려면 일부를 오래 비워 두는 홀드아웃까지 따로 설계합니다.

같이 보면 좋은 페이지

  • 실험

    세 갈래 가운데 설계가 어디에 놓이고 여덟 자리가 어떤 순서인지 봅니다

  • A/B 테스트

    이 배정 위에서 돌아가는 형태여서 둘을 이어 읽으면 전체가 잡힙니다

연관 용어

마지막 업데이트 2026-09-16