brunch

You can make anything
by writing

C.S.Lewis

by 플래터 Sep 10. 2022

A/B 테스트 설계의 노하우

A와 B만 만든다고 A/B 테스트는 아니니까

A/B 테스트는 IT 제품과 서비스의 성장을 위한 방안으로 가장 널리 알려져 있는 방법이다. 이에 앞선 몇 편의 글에서는 A/B 테스트를 수행할 때에 우리가 진짜로 궁금해하는 것이 무엇인지를 정의하고 이를 바탕으로 A/B 테스트의 결과를 제대로 해석하기 위한 통계에 대해 살펴보았다.


이어지는 이번 글에서는 A/B 테스트를 실제로 설계하고 제품과 서비스 내에 반영/배포할 때의 주의 사항에 대해 정리해보고자 한다.




1. 하나의 실험에서 변수는 한 가지


우리가 제품과 서비스를 두고 진행하는 모든 실험은 기본적으로 해당 실험의 주요 요소가 과연 고객의 행동에 영향을 미치는 원인이 맞는가? 를 알아보기 위함이다. 그리고 이 문장을 조금 더 자세히 뜯어보면, 우리가 A/B 테스트를 설계하고 또 해석할 때에 갖고 있는 질문은 아래와 같다.


1) 이 요소가 영향을 미치는가? (영향이 있는 건 맞는가?)

2) 이 영향이 혹시 우연은 아닌가? (이번 실험 동안에만 잠깐 우연으로 생긴 결과 아닌가?)

3) 영향을 미친 요소가 이게 맞는가? (다른 요소가 영향을 준 건데 이 요소가 준거라고 착각한 건 아닌가?)


이 중 1번과 2번은 앞선 글 <A/B 테스트를 설계할 때의 우리의 진짜 질문>과 이어지는 글에서 살펴보았다면, 여전히 3번 질문 '영향을 준 것도 맞고 우연이 아닌 것도 맞는데 정말 지금 이 요소가 미친 영향이 맞는가?'은 미지로 남아있다.


그리고 1번과 2번 질문이 A/B 테스트의 결과의 해석에 대한 질문이었다면, 바로 이 3번 질문이야 말로 우리가 A/B 테스트의 방안으로 실험을 설계하여 진행하는 이유다. 다른 모든 걸 동일하게 두고 딱 한 가지만 서로 다르게 A와 B로 나누어 놓았을 때 결과가 다르다면, 바로 그 A와 B가 결과에 영향을 미친 요인이 맞다,라고 이야기할 수 있으니까.


만약 A와 B 이외에도 다른 요인에 차이가 있더라도 실험의 결과를 통해 우리는 1번 질문과 2번 질문에는 답을 내릴 수 있다. 원인이 무엇이라고 콕 짚어 이야기하진 못하겠지만, 둘 사이에는 유의미한 차이가 있고 그래서 이는 우연이 아니라는 판단은 어디까지나 통계적 해석과 판단이기 때문이다. 그러나 이 경우 그 유의미한 차이가 정말 A와 B 덕분인지, 아니면 이 외의 다른 요소 때문인지, 그것도 아니면 요소들의 조합이 만들어낸 시너지 때문인지는 알 수 없다. 


좌측의 A와 B는 1-1과 1-2만 다를 뿐이다. 결과가 다르다면, 1-1과 1-2 때문이라고 이야기할 수 있다. 그러나 우측의 경우에선 이를 장담할 수 없다.



2. 한 곳(퍼널, 타깃)엔 하나의 실험만


이처럼 하나의 실험에서 하나의 변수를 두었다 하더라도, 만약 하나의 퍼널, 하나의 동일한 장소에 여러 실험을 동시에 진행하는 경우에는 이슈가 생길지도 모른다. 왜냐하면 사용자의 입장에선 결국 여러 실험에 동시에 참여하고, 영향을 받는 셈이기 때문이다.


일상에서의 예시로 생각해보자. 평소 경미한 불면증으로 불편을 겪던 김 씨는 저녁이면 수면유도제를 복용한다. 이를 A/B 테스트로 생각해보면 수면유도제를 복용한 김 씨와, 복용하지 않은 김 씨의 취침까지 소요되는 시간에 차이가 있을 것이다. 


그런데 만약 오늘따라 감기 기운이 있는 김 씨가 취침 전 감기약을 복용했고, 평소보다 더욱 빨리 잠에 들었다면, 이는 수면유도제 때문인가 혹은 감기약의 성분 때문인가 혹은 그것도 아니라면 두 약의 조합이 만들어낸 효과인가? 


분명 각각은 아래와 같이 하나의 변수만을 둔 실험이다. 그러나 동시에 같은 대상에게 두 개 이상의 실험을 진행했기에 결국은 두 개 이상의 변수를 만든 셈이다. 


이를 서비스에 대입해 생각해본다면, 아래와 같다. 


분명 하나의 실험에선 하나의 변수만을 두었다. 그러나 두 개의 실험을 같은 곳에서 진행한 탓에, 같은 대상에게 두 개의 영향이 적용될 수 있다.



3. 다변량 테스트도 가능하지만... 


물론 하나의 퍼널, 하나의 장소에 두 개 이상의 변수를 두고 실험하는 방법도 있다. 바로 다변량 테스트다.


하나의 장소, 퍼널, 대상에게 동시에 하나의 실험만 진행할 수 있다면, 여러 실험을 빠르게 진행하기엔 어려울 것이다. 앞선 실험이 끝난 뒤에만 다음 실험을 진행할 수 있으니까. 그래서 우리는 동일한 기간에 여러 개의 실험을 통해 각각의 효과를 검증하고자, 변수의 조합만큼 여러 실험 조합과 실험군을 만드는 방안도 생각해볼 수 있다.


가령 아래와 같은 경우 우리는 그룹 A가 더 나은 결과를 보였다고 할 때에, 그 결과가 1-1 때문인지 2-1 때문인지 혹은 1-1과 2-1의 시너지 때문인지 알 수가 없다. 


그러나 아래와 같이 각각의 조합에 따라 4개(2개*2개)의 실험을 만들어버린다면, 어느 요소 덕분에 더 나은 결과가 나왔는지 비교해볼 수 있다. 가령 A와 C를 비교하면 2-1과 2-2를 비교할 수 있고, A와 D를 비교하면 1-1과 1-2를 비교할 수 있으니까. 

그러나 이 경우, 우리는 한정된 트래픽을 이전과 같이 2개의 그룹으로 나누는 대신 4개의 그룹으로 나누기에, 각각의 그룹에 할당되는 트래픽은 감소한다. 그리고 실험의 유의미함을 판단하기 위해서는 일정 수준 이상의 트래픽이 필요한데, 이를 모으기까지 걸리는 시간이 더 소요될 것이다. 


결국 서비스의 트래픽이 일정하게 유지된다고 가정했을 때에, 실험 1과 실험 2를 순차적으로 진행하는 것과 실험 1,2를 다변량 테스트로 설계하여 한 번에 진행하는 것의 차이는 직렬과 병렬의 차이일 뿐, 모든 그룹에 대한 결과를 얻기까지 소요되는 시간은 동일할지도 모른다


그리고 어쩌면 순차적으로 진행하는 경우가 유리할 수도 있다. 적어도 실험 1에 대한 결과는 먼저 받아볼 수 있고, 이를 바탕으로 실험 2를 재설계하여 진행할 수도 있으니까. 


트래픽이 일정하다고 가정했을 때에, 다변량 테스트의 경우 각 그룹에 충분한 트래픽을 할당하기 위해선 더 많은 시간이 필요할 수도 있다. 



4. 꼭 모든 트래픽을 실험에 쓸 필요는 없다


'어떤 방안이 더 나은가?'를 찾아내기 위해 A/B 테스트를 한다는 건, 실험에 노출된 이들 중 절반은 '더 나은' 방안을 경험한다는 뜻이기도 하지만, 나머지 절반은 더 불편한 경험을 한다는 뜻이기도 하다. 우리는 A/B 테스트를 '실험'이라고 부르지만, 이건 연구실 안에서 모로모트를 대상으로 하는 실험이 아니다. 우리의 실험은 어디까지나 실제 사용자를 대상으로 진행된다.


실험에 노출된 이들 중 절반은 '더 나은' 방안을 경험하지만,
나머지 절반은 더 불편한 경험을 한다는 뜻이기도 하다


그래서 서비스가 크고 복잡할수록, 사용자가 많고, 실험이 사용자의 경험 중 주요한 부분에 영향을 미칠수록, 혹은 이미 비즈니스와 고객에 긍정적인 영향을 주고 있는 부분에 대한 실험일수록, 실험을 노출시킬 범위와 조건, 기간에 대해 고민해봐야 한다. 


가령 전체 트래픽의 70%만을 실험에 노출시킬 그룹으로 사용하고, 그중에서도 절반을 실험군으로, 그리고 나머지 절반을 대조군으로 노출시킨다고 가정해보자. 그리고 대조군은 어떠한 변화도 주지 않은 원본에 노출된다고 가정해보자. 이 경우 전체 트래픽의 65%(30% + 35%)는 실험에 노출되지 않는다. 서비스의 실제 트래픽에 따라 비율과 기간은 달라지겠지만, 이 경우 실험이 진행되는 동안 실험에 영향을 받는 이들은 1/3로 제한하면서도 A와 B의 영향을 비교할 수 있다. 


5. 실험 지표는 복합적으로 고려하자


모든 실험은 특정 대상과 특정 지표에 대한 가설을 바탕으로 설계된다. 그러나 실험을 진행해보면 예상치 못한 지표가 함께 개선되기도 하고, 더러는 다른 지표가 악화되기도 한다. 가설은 어디까지나 가설일 뿐이기 때문이다. 


예상치 못한 지표가 함께 개선되기도 하고, 더러는 다른 지표가 악화되기도 한다


이와 관련해 아주 유명한 사례가 있다. 바로 비아그라의 사례다. 원래 협심증 치료제로 고안된 비아그라는 임상 실험 과정에서 예상과 의도와 달리 부작용으로(?) 남성들의 성기능을 개선한다는 사실을 발견한 뒤, 협심증 치료제가 아닌 발기부전 치료제로서 개선되어 유통되게 되었다. 이처럼 어떤 실험은 의도한 바를 달성하기도 하지만, 의도와 다른 효과를 낳기도 한다. 


예를 들어 콘텐츠 리스트에 광고 베너를 추가해 광고 전환율을 높이는 실험을 한다고 가정해보자. 실험의 배경과 목적에 따라 실험의 성공 여부를 판가름하기 위해 핵심적으로 봐야 할 지표는 콘텐츠 리스트에서 광고 베너를 클릭하는 전환율일 것이다. 


한 편으로는 화면 내에 발견할 수 있는 광고의 개수를 늘리는 방안이므로, 단순히 '광고를 눌러보는 여부'에 외에도, '눌러보는 광고의 개수'가 증가하는 것도 기대해볼 수 있다. 이 경우 함께 고려해볼 지표는 인당 클릭하는 광고 배너의 개수가 된다. 


그러나 이는 동시에 한정된 화면에 더 많은 광고 베너를 노출함으로써 원래 노출시키던 콘텐츠의 개수는 감소시키는 방안이므로, 사용자의 콘텐츠 소비량이 감소할 여지가 있을 수도 있다. 통상적으로 리스트 형식으로 콘텐츠를 제공할 때에는, 사용자가 더 많은 콘텐츠를 소비하고, 더 많은 반응을 남기길 기대한다. 따라서 광고 배너를 추가한 덕분에 광고 배너로의 전환율이나 소비량이 증가했다고 하더라도, 콘텐츠의 소비량이 눈에 띄게 감소했다면, 제품의 핵심 가치를 저해하는 방안이므로 실험의 중단을 고려해볼 수도 있다. 


그래서 실험을 설계할 때에는, 아래와 같이 실험을 진행하게 된 목적과 배경에 따른 핵심 지표 외에도, 성공 여부를 판단하는 데 사용할 수 있는 부가적인 지표와, 실험의 중단 여부를 판단하는 데 사용할 가드레일 지표를 함께 선정하고 고려해야 한다.


1) 핵심 지표 : 실험을 진행한 배경과 목적에 따라, 궁극적으로 개선시키고 싶은 지표

2) 부가 지표 : 실험을 진행한 배경과 목적에 완벽히 부합하는 대상은 아니지만, 실험이 진행되는 UX 를 고려했을 때 함께 개선되리라 예상하는 지표

3) 가드레일 지표 : 실험을 통해 오히려 저해되거나 악화될 여지가 있는 UX와 관련된 지표



더 많은 지식과 경험, 노하우가 궁금하다면

홈페이지 방문하기

뉴스레터 구독하기

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari