본문 바로가기

PM의 일/데이터

A/B 테스트의 모든 것 by. 핵클

2021.12.02 힙데비와 핵클에서 진행한 A/B 테스트 강의 정리

 

👉 노션으로 좀 더 편하게 볼 수 있습니다 :) 

 

배경

  • 왜 A/B test를 해야할까?
    • Agile 개발을 하는 이유: 빠른 성장 속도
      • 빠르게 변화하는 환경에서 고객들의 요구 사항을 받아 반영하기 위해
    • 우리의 목적?
      • 고객들이 필요한 것을 제공하고, 불편한 것은 적용하지 않음

📌 A/B test는 빠른 성장을 위해 고객들이 원하는 서비스를 제공하기 위한 테스트 방법

 

1. 실험은 무엇인가요?

  • 우리가 배웠던 실험을 되돌아보면?
    • 강낭콩 예시
      • 강낭콩을 더 잘 키우기 위해(output) 강낭콩이 원하는 요소(input)를 어떻게 찾을 수 있을까?
      • 햇빛이 중요하지 않을까?
      • → 변수(햇빛)의 영향도를 파악하는 것 = 실험
  • 가설
    • 빛의 양이 많으면 강낭콩이 더욱 잘 성잘할 것이다.
      • 창가에 둔 강낭콩 vs 그늘에 둔 강낭콩
    • 빛의 양을 제외한 조건은 동일하다.
      • 빛의 양: 영향도를 확인하고 싶은 변수
      • 나머지 조건: 영향도를 위해 통제되는 변수

2. 왜 통제실험이 필요한가요?

  • 배민의 홈 화면 UX 변화 (음식 카테고리 선택 -> 서비스 선택 카테고리로 변경된 예시)
    • 확인해야 할 것: UX 변화
    • 하지만? 외부요인이 너~무 많아서 원하는 영향도 분석이 어렵다.
      • ex) 코로나, 신규 입점 스토어, 쿠팡이츠 출범 등등등
    • 외부 요인을 고려하지 않으면, 제대로 판단하지 못할 수 있다.
      • ex) 버튼 변경 전 vs 후 그래프
        • 버튼 변경 후 지표가 개선이 되었다는 가정
        • 하지만 마케팅 때문에 올라갔다면?
          • 마케팅 효과는 높지만, 오히려 버튼 변경 효과는 떨어짐
  • 그래서! '외부 요인'을 통제하기로 함
    • UX 변경 → 구매전환율 증가 (우리가 확인하고 싶은 인과관계)
      • UX 변경을 제외한 나머지 조건 동일 (외부요인)
  • 정확한 인과관계 확인이 필요한 이유
    • 유저를 불편하게 하는 업데이트는 비즈니스 성과 하락으로 이어진다.
    • 정확한 인과관계를 확인하고, 나쁜 영향을 준다면 보완하여 출신한다.
    • (결국 A/B test는 학습lesson이 핵심)
  • 실제로 새로 출시하는 기능의 성공 확률이 낮음
    • 구글/MS/부킹닷컴: 10~20% 수준
    • 이게 정말 좋은 건지 안 좋은 건지 정확히 판단해야 함
      • 안 좋다고 하면 수정/보완 → 유저가 만족하게끔 만든다.
    • A/B 테스트는 상대적으로 적은 비용으로 할 수 있음.

3. 통제 실험은 어떻게 해야 하나요?

    • 유저는 랜덤 화면을 보게 됨
      • 코로나 확진자 수 증가
      • 지하철광고 진행
      • 마케팅 진행 등등
      • 외부 요인이 제어된다. 

📌 따라서 어떤 화면을 보든 양쪽 화면에 동등하게 영향을 미칠 수 있음

📌 즉, 화면 차이와 원하는 지표에 대한 영향력을 측정할 수 있음.

4. 무엇을 실험해야 할까?

🗣️밀크쉐이크는 언제 많이 팔리는지?

→ 아침

🗣️누가 아침에 밀쉐를 주로 구매하는지?

→ 장거리 출근하는 사람들

🗣️왜 밀쉐를 구매하는지?

→ 장거리 운전 동안 심심하지 않기 위해

  • 고객의 불편을 찾기
    • 📌 우리 고객들이 원하는 것이 무엇이고, 지금 현재 고객들이 불편한 게 무엇이냐?
    • 📌A/B테스트는 고객 문제를 찾고, 우리가 선택한 방법이 실제 문제를 해결해주는지 확인하는 것
  • 예시: 배달의 민족 결제
    • 배가 고픈 고객이 빠르게 결제할 수 있도록 해야 한다.
    • 현재 화면에서 "카드 등록하기"를 누르면, "본인 인증" 화면이 뜬다.
      • 카드 등록하기를 클릭하면 카드 정보를 입력할 거라 기대하지 않을까?
    • 카드 등록을 위해 번호를 전부 입력해야 하는데 좀 더 쉬운 방법이 없을까?
    • 각 단계별 전환율은 어떻게 되는지, 어떤 카드를 많이 등록하는지 등등 확인
  • 고객의 문제를 해결하기 위해 어떤 포인트가 있을까를 고민하고, 가설을 세움
    • 어떤 단계에서 잘 못 넘어 가고 있다고 하면, 개선점을 어떻게 찾을 지 확인
  • 실험에서 어떤 지표를 봐야 할까? 

📌 가드레일 지표: 최소한 현재 수준을 지켜야 하는 지표

📌 보조 지표: 실험이 영향을 주는 참고성 지표

📌 성공 지표: 실험의 성패를 확인하는 지표

  • 지표가 무조건 다 좋아지는 것도, 무조건 다 나빠지는 것도 아님. 
  • 어떤 지표가 좋아지고 나빠졌을 때 이 실험이 성공했는지 판단해서, 지표를 목적에 맞게 분류해야 함
    • 예시: 부킹닷컴: Primary/Secondary/Monintoring

 

5. 통제 실험에서 주의해야 할 점은?

  • 충분한 실험 기간
    • 서비스마다 차이가 있음
      • linkedin, netflix: 1주
      • Google: 2주
      • Airbnb: 4주
    • 예시: Airbnb
      • 상품 조회부터 예약까지 소요되는 시간이 길다.
      • 따라서, 모든 특성의 유저를 반영해서 실험하기 위해서는 평균 4주 정도 시간이 필요함
      • 평균 커머스는 시간이 덜 걸리기 때문에 1~2주 정도
    📌 기간을 지켜져야 한다는 의미는 사용자가 Bias 되지 않도록 하기 위해서
    • 요일별(주중/주말) 편차 때문에 최소 일주일 이상은 권장함!
  • 지표를 해석할 때 평균의 함정에서 벗어나기
    • 예시: Airbnb 가격 필터 설정
      • 평균 : 실험 결과가 거의 변화가 없음
        • 브라우저 별로 뜯어서 살펴봄
      • 세부 분석 해보니? IE 브라우저 상에서 새 디자인이 클릭 안 되는 이슈가 발생함
      📌 평균만 보면 안 되고, 세분화해서 어떤 점이 문제인지 파악해야 한다.
    • 예시: Netlix
      • 평균 시청 시간이 늘어나는 배포는 좋은 것인가?
        • 헤비 유저들의 시청시간만 늘리고, less-engaged된 유저들이 시청 시간이 늘어나지 않음
        • 구독 모델이기 때문에, heavy user가 더 시청한다고 좋은 게 아님
        • 정착하지 못한 사용자들이 이탈되지 않도록 스트리밍 시청 시간을 늘리는 것이 중요하다.
        • 전체 유저 단위로 실험 결과를 보기보다는, less-engaged된 유저를 별도로 구분해서 실제 유의미한지 파악해야 함.
    • 예시: Linkedin
      • Wellconnected 유저와 sparsely connected 유저로 그룹
      • 어떻게 활동하고 있는 지 각각 분석 진행
    📌 즉, 우리 사용자의 light user와 heavy user를 분리해서 진행

 

질문 모음

🤔 A/B 테스트 실험을 위해 배워야하는 사전지식은? (ex 통계 개념 익혀야할 범위)

  • 통계 지식이 엄청나게 필요하지는 않음
  • '핵클 사용자 가이드' 추천
  • Trustworthy Online Controlled Experiments Chapter2 추천

 

🤔 테스트 후 결과의 유의미성을 판단하기 위해서는 수치가 어느정도 차이가 나야 하는지, 목표를 어떻게 잡아야 하는지에 대한 판단기준이 궁금합니다!

  • 값의 차이보다는 유의미성을 볼 수 있는 통계적 p-value값이 중요
  • 1000원이 올랐는데 통계적으로 유의미할 수도 있고, 5000원 올랐는데 통계적으로 무의미할 수 있음

🤔 하나의 실험이 끝나면 후 랩업, 이후 액션아이템은 어떻게 가져가야 되는지 등에 대한 실험 이후 과정에 대한 내용도 있으면 너무 유용할것 같아요!

  • 검색 전환율, 구매 전환율 갈림
    • A에서는 검색 전환율이 낮은 대신 구매 전환율 높음
    • B에서는 검색 전환율 높은 대신 구매 전환율 낮음
  • 왜 이런 차이가 나지?
    • A가 좋은지 B가 좋은지 선택하는 문제가 아니라, 왜 이렇게 나오지?
    • 어떤 이슈가 있는 거지?를 확인하는 여러가지 지표, 단서를 찾을 수 있다는 것
  • 결론 이외에, 검색 → 구매로 가는 과정에서 어떤 문제가 있는지?

📌 A/B 테스트를 통해서는 어떤 learning을 얻는지가 중요함.

  • 부정적인 결과 보인 지표: 개선 방향을 찾을 수 있음
  • 어떤 요소들이 유저들에게 긍정적으로 반응하는지를 알 수 있음
  • 테스트하지 않고 배포하게 되면, 무엇이 문제인지 알 수 없음.

📌 어떤 방법이 좋은 것인지 찾기 보다는 어떤 문제가 있는 지 다른 지표를 보고 함께 분석하는 것이 중요.

 

🤔 A/B테스트에서 실전에서 저지르기 쉬운 실수, 오류들 리스트가 궁금해요!

  • A/B 테스트 시작 지점이 다른 경우

→ 표본이 적거나 많아서 분석하기 어려움

  • 서로 생각한 A/B 대상자 조건이 다른 경우

→ 다시 해야 함

  • A/B 테스트 한 지 1주일 됐는데 로그 안 심어져 있음

→ 다시 해야 함

  • p-value 하루만에 0.05 미만이 되어 기쁘게 A/B 테스트를 종료하는 경우

→ 맞는 결과인지 의심하기

 

🤔 앱 초기에 모수가 별로 없어서 A/B테스트 유의미한 모수를 만들기 어려울 때는 어떻게 하면 좋을까요?

  • 모든 가설에서 A/B를 해야 하는 것은 아님
    • 모수가 적은 경우, 통계적인 유의성 떨어짐
    • 마케팅 통한 외부 유입으로 모수 확보
  • 최소한의 모수는 어떻게 될까요?

🤔 첫 출시에서 실패할 경우 next step으로 갈지 안 갈지 의사 결정을 어떤 기준으로 하시나요?

  • 비즈니스 방향성 때문에 무조건 해야 된다고 하면?
  • 프로덕트 만드는 입장에서는 고객들에게 최대한 불편함을 주지 않고, 만족을 최대한 줄 수 있냐의 답을 찾는 과정을 담고 있기도 한다.
  • 우리가 이런 서비스를 주고 싶으면, 서비스 상에서 커뮤니케이션을 어떻게 해서, 최대한 만족도가 높아서 들어오는 가를 고민해야 함
  • 비즈니스적 당위성이 Next Step으로 연결될 때가 많다.

🤔 제품 개발 단계에서도 AB테스트를 활용할 방법이 있을까요

  • 모든 테스트를 A/B 테스트로 할 필요는 없음
  • 설문조사나 유저 인터뷰를 할 수도 있음.

 

 

👇 핵클 강의 원본 보기  

https://www.youtube.com/watch?v=MCiazItsDgo 

👇 핵클 A/B 테스트  

https://www.hackle.io/ko/

 

핵클: A/B 테스트, 기능 플래그 및 이상 징후 탐지 플랫폼

 

hackle.io

 

 

'PM의 일 > 데이터' 카테고리의 다른 글

A/B 테스트와 p-value  (0) 2020.10.05
PM의 데이터분석  (0) 2020.10.05