1. A/B test란?
A/B 테스트는 마케팅과 웹 분석에서 기존 요소로 구성된 A안과 특정 요소를 변형한 B안을 비교해 어느 것이 더 나은 성과를 나타내는지 측정하는 종합 대조 실험(controlled experiment)
- 임의로 나눠진 두 집단(A/B)에게 서로 다른 UI/UX를 제시하고 두 집단 중 어떤 집단이 더 높은 성과를 보이는지 정량적으로 평가하는 방식
- 대표적인 데이터 기반의 의사결정 및 서비스 기획 방법
- 대부분의 IT 기업에서 데이터 기반 의사결정의 도구로 활용
- google, amazon, facebook: 매년 10,000 개의 실험 진행
- bing: 매주 300개 이상의 실험이 완료됨
- Uber: 1,000개 이상의 실험 상시 진행
- Airbnb: 500개 이상의 실험 상시 진행

2. A/B Test를 하는 이유
- 시장이 빠르게 급변하기 때문에 누구도 예측하기 어렵고, 전문가의 의견도 틀릴 수 있음. 정답은 아무도 모름
- 쉽고 빠르게 테스트할 수 있는 환경에서 경험 있는 개인에게 의지하는 것은 너무 위험하거나 너무 비효율적임
- 아무리 뛰어난 인재들이 모여 만든 가설도 맞을 확률이 매우 낮음
- 최고의 인재가 모인 Google, Microsoft 등의 기업에서 하는 A/B Test 실험의 10~30%만이 긍정적인 결과를 얻음
3. A/B Test 진행 과정
1. 목표 설정
- A/B Test를 진행할 때 반드시 테스트의 목표를 구체화해야 함. 명확한 목표가 있어야 유의미한 지표 선정 및 가설 설정이 가능함
- 명확한 목표 설정 후 그에 맞는 지표를 설정
- 서비스 가입자를 늘리고 싶다면 서비스 가입 전환율 지표
- 버튼 클릭 인원을 늘리고 싶다면 버튼 클릭 전환율 지표
- 지표 설정 시 분자와 분모를 명확히 설정함
- 동일한 가입 전환율이라도 분모가 가입 페이지의 방문자 수인지, 인스톨 유저인지에 따라서 값이 크게 차이 날 수 있음
2. 가설 수립
- 목표와 지표를 설정한 후 어떤 일을 해야 해당 지표가 개선될 수 있을지에 대한 가설 수립 필요
- 가설을 기반으로 어떻게 실험을 진행할지, 무엇을 학습할지가 결정되므로 신중하게 가설 설정
- 가설을 결정하기 전에 해야 할 것
- 가설이 목표와 얼라인되는지 반드시 확인해야 함
- 해당 가설과 관련한 정보를 충분히 탐색해야 함 신입 기획자로 업무를 시작할 경우 이미 회사에서 진행되었던 다양한 실험을 꼼꼼히 확인하고 파악해야 자원 낭비를 줄일 수 있음
3. 실험 설계
- 목표한 지표 설정
- 지표의 종류:
- 합계 지표(sum)
- 평균(mean) 또는 중앙값(median): 가장 자주 쓰는 평균의 함정에 빠지지 않도록 주의 필요
- 평균 길이 1m
- A: 1m, 1m, 1m, 1m, 1m
- B: 5cm, 5cm, 5cm, 5cm, 5cm
- 중앙값, 최빈값(mode) 등을 확인해 아웃라이어 존재 여부를 파악해야 함
- 평균: 1m
- 중앙값: 5cm
- 최빈값: 5cm
- 비율(Q-1)
- 결제 완료 횟수/결제 페이지 진입 횟수
- 평균 길이 1m
- 지표 설정:
- 민감도(Sensivility)와 강건성(Robustness)
- 아무 변화도 가하지 않았는데 들쑥날쑥하는 지표는 강건성이 낮아 실험에 적절한 지표라고 볼 수 없음
- 어떤 변화를 가해도 크게 변화하지 않는 지표는 충분히 민감하지 못해 적절한 지표라고 할 수 없음
- 민감도(Sensivility)와 강건성(Robustness)
- 지표의 종류:
- Target Users: 어떤 유저 대상으로 실험을 수행할 것인가?
- 실험군의 모수 설정
- 많은 유저가 사용하고 있는 서비스라면 실험의 부작용을 최소화하기 위해 실험군을 5~10%로 설정.
반면, 아직 초기 단계의 스타트 없이 라면 유의미한 실험 모수를 빠르게 확보하기 위해 50%가량으로 진행하기도 함 - Sample Size
- 샘플 수가 많을수록 결과의 신뢰도 상승
- 다양한 A/B testing sample size calculator로 쉽게 계산 가능
- 구글 등 다양한 사이트에서 쉽게 계산 가능
- Baseline Conversion rate(통제군): 우리가 아무 실험도 진행하고 있지 않을 때의 결제 또는 전환율 등 우리가 개선을 목표로 하는 것에 Conversion rate 현실이 어떤지 입력
- Minimum Detectable Effect: 최소 측정 가능 효과. 측정할 수 있는 가장 최소의 변화가 몇인지를 입력.(낮으면 낮을수록 정밀한 실험이 필요하기 때문에 실험군의 크기가 커짐
- Statistical Significance(통계적 유의도): 보통 90~95%로 설정
- 샘플 사이즈는 Per Variation: 실험군이든 대조군이든 가장 작은 실험군의 사이즈가 어느 정도인지 알려줌
- 많은 유저가 사용하고 있는 서비스라면 실험의 부작용을 최소화하기 위해 실험군을 5~10%로 설정.
- 실험군의 모수 설정
- Unit of Diversion: 어떻게 나눌 것인가?
- A/B test 진행 시 A와 B가 온전히 랜덤이어야만 두 그룹의 차이점이 Stimulus에 의한 변화라고 확신할 수 있음
- A: 구매하지 않은 유저(대조군), B: 한 번 이상 구매한 유저(실험군)
- 구매 프로세스 개선 실험 진행 후 A보다 B의 구매 전환율이 높게 나왔다고 해서 유의미한 실험 결과가 될 수 없음
- 자주 사용되는 것:
- Id: 안정성이 높음(홀수, 짝수 등)
- event: 유저가 특정 행동을 했을 때 무작위로 A 또는 B의 결과를 보여줌(유저 1 : 이벤트 n)
가장 Randomize 된 샘플을 뽑을 수 있으나, 서비스의 일관성이 떨어질 수 있기 때문에 유저는 눈치채지 못할 변화에만 사용
- A/B test 진행 시 A와 B가 온전히 랜덤이어야만 두 그룹의 차이점이 Stimulus에 의한 변화라고 확신할 수 있음
- Unit of Analysis: A/B test를 통해 영향을 주고자 하는 최소 단위
- 지표의 분모로 사용
- ARPU(총 구매 액/회원 수)라면 분석 단위는 회원
- 분기 단위를 정할 때는 분석 단위와 일치시키는 것이 바람직함
- 만약 분석하고 싶은 단위가 '회원'인데, 분기 단위가 '페이지 뷰'로 분기되어 있다면 한 명의 회원이 여러 개의 페이지 뷰를 만들 수 있음. 이 경우 각 페이지 뷰는 동일 회원이 만들었을 가능성이 있기 때문에 서로 확률이 연관되어 있고 독립성이 없으므로 데이터가 왜곡될 가능성이 높음
- 지표의 분모로 사용
- Duration
- 보통 기간이 길수록 정확성이 높아짐
- 명절과 같은 특수한 이벤트가 기간에 포함될 경우 결과 분석에 유의해야 함
- 이커머스의 구매 전환율의 경우 명절 전에 높아지고 명절 기간에 급격히 떨어지는 경우가 많음
- Variation 설정
- 어떤 것을 다르게 보여줄 것인가?
- 둘의 차이가 너무 복잡하면 유의미한 결과 해석이 어려워짐
- 최대한 실험 단위를 쪼개서 영향력을 확인하고 싶은 부분을 제외하고 통제하는 것이 좋음
4. 실험 진행
- A/B test의 분기가 제대로 이뤄지고 있는지 파악해야 함
- 실험 기간이 너무 짧을 경우 유의미한 결괏값을 얻을 수 없을 가능성이 높음
- 지속적으로 데이터를 확인하면서 통계적 유의미성이 확보되었는지 확인 필요
5. 결과 분석
- 통계적 유의성 확인
- 실험군, 대조군 각각의 모수와 전환 뷰어 값을 통해 통계적 유의미도를 계산함
- P-value 계산 등은 프로그램을 통해서 쉽게 계산 가능
- 대체로 0.05보다 낮을 경우 유의미함
- 다양한 A/B test 통계적 유의미도를 계산할 수 있는 계산기가 많이 있음
- 통계적 유의미도가 충분히 확보되지 않은 상태에서 섣부른 결론을 내서는 안 됨
- 불편지표 확인
- 실험 과정이 문제 없었는지 점검하기 위해 실험 과정에서 변하면 안 되는 수치의 '불편지표' 설정 및 확인
4. A/B test 시 주의해야 할 사항들
- A/B testing은 최적화 도구일 뿐 큰 그림은 보여주지 못함
- 완전히 새로운 기능을 추가하거나 훨씬 높은 단계의 의사 결정에 대해서는 효과적이지 않음
(산을 올라가고 있는지는 알 수 있지만, 어느 산을 올라야 하는지는 알 수 없음)
- 완전히 새로운 기능을 추가하거나 훨씬 높은 단계의 의사 결정에 대해서는 효과적이지 않음
- 대부분의 가설은 틀린다는 것을 명심해야 함
- 스스로 만든 가설이 잘못된 가설일 수 있다는 두려움이 생긴다면 올바른 자료 해석이 어려움
- 실험을 통해 잘못된 가설이었다는 것을 증명하는 것도 큰 성과이므로 두려움 없이 결과를 직면해야 함
- 실험을 너무 빨리 끝내면 안됨
- 많은 기업에서 공들여 A/B test를 진행하지만 정작 실험 결과의 통계적 유의미성이 낮은 상황에서 실험을 조기 종료하는 경우가 많음. 여유를 가지고 실험 결과를 기다려야 함
- 너무 많은 변인을 한꺼번에 테스트하면 안 됨
- 한 번에 여러 가지 테스트를 진행하고자 욕심부릴 경우, 정작 실험 결과에 미친 변인이 정확히 무엇인지 해석할 수 없게 됨
5. A/B test Case Study
goodui.org : 다양한 기업의 A/B test를 체크해 주는 사이트
Check Point:
1. 특정 가설 또는 실험이 실패한다 하더라도 실험 자체가 의미 없는 실험이었는지, 어떤 부분을 개선하면 유의미한 결과를 얻을 수 있는지를 한 번 더 깊이 있게 생각하는 것이 중요함
2. 스터디 케이스를 보면서 이 프로덕트를 담당하는 PO는 왜 그런 가설을 세웠을까? 어떤 결과가 나왔을까? 실험이 성공했다면 다음에는 어떤 것을 강화할 수 있을까? 실패했다면 왜 실패했을까? 어떤 점을 보완했으면 실험이 성공했을까? 등 계속해서 고민하는 시간을 가져야 함
Airbnb
1. 유저 별점의 점수를 함께 노출하는 것이 더 높은 효율을 발휘함

2. 업체의 가용 일정을 노출하고 원클릭으로 여행 일정을 입력하는 테스트를 진행했으나, 가설은 실패함

Amazon
1. 정기 결제를 늘리기 위해서 정기 결제를 기본 선택값으로 변경했으나, 효율이 낮아 원래대로 회귀(2020.02.24)
- 얻을 수 있는 인사이트
- 정기 배송을 한 번이라도 해 본 유저를 대상으로 유저군을 설정하면 어땠을까?
(정기 배송을 단 한 번도 해본 적이 없는 유저(정기 배송을 원하지 않는 유저)에게는 정기 배송을 디폴트 값으로 제공 X)
- 정기 배송을 한 번이라도 해 본 유저를 대상으로 유저군을 설정하면 어땠을까?
booking.com
1. 부킹닷컴은 예약 날짜 설정 date picker가 자동으로 노출되도록 변경했고 높은 검색 전환율을 보여 유지함(2019.03.06)
- 어차피 사용자가 모두 입력해야지만 검색이 가능한 기능임
- date picker가 자동으로 노출되면서 사용자는 쉽고 빠르게 날짜를 입력할 수 있게 되었음

나의 생각
AB test를 정말 많은 기업에서 활용하고 있다는 사실을 알게 되었고, 유의미한 가설을 도출하기 위해서는 최소한의 변수 안에서 AB test를 진행하는 게 정말 중요하다는 것을 배울 수 있었다. 정량적으로 확인할 수 있는 분석 사이트도 알 수 있어서 향후 A/B test 진행 시 활용하면 좋을 것 같다.
'PM 스쿨 > 학습 일지' 카테고리의 다른 글
| [제로베이스 PM 스쿨 21기] 4주차 학습일지 3: 4주차 회고 (0) | 2023.12.31 |
|---|---|
| [제로베이스 PM 스쿨 21기] 4주차 학습일지 2_성공적인 프로젝트 구축을 위해 중요한 요소 5가지 정리 (0) | 2023.12.31 |
| [제로베이스 PM 스쿨 21기] 3주차 학습일지 3: 3주차 회고 (1) | 2023.12.24 |
| [제로베이스 PM 스쿨 21기] 3주차 학습일지: 린캔버스 이해하기 (1) | 2023.12.23 |
| [제로베이스 PM 스쿨 21기] 3주차 학습일지: 오늘의 집 서비스 분석 (2) | 2023.12.22 |