AB테스트는 이유 있는 제품을 만든다.
아직 2개월 반이 남긴 했지만, 올해는 저에게 정말 다사다난한 한 해였습니다. 다양한 스쿼드에서 전담 데이터분석가로 일했고, 여러 직무의 동료들과 협업했으며, 분석 업무 외에도 경험해보지 못했던 많은 업무들을 맡았어요. 그러다가 3분기에 들어서서는 아예 1개의 스쿼드만 맡도록 바뀌었어요. 고객이 좋아할만한 템플릿을 추천해주는 추천스쿼드 담당 DA가 된거죠. 스쿼드 내에는 추천모델을 개발하는 개발자님들이 계셨고, 그분들이 개발하신 추천모델이 고객이 실제로 좋아하는지 체크할 필요가 있었습니다. 그러기 위해서 스쿼드에서 선택한 방법은 'AB테스트'였습니다. 데이터직군이라면(데이터직군 외에도) 누구나 AB테스트에 관심이 많을 거라 생각해요. 그래서 저는 오늘 저희 팀이 진행해 온, 또 앞으로도 진행할 'AB테스트'에 대한 제가 가진 지식과 겪은 경험을 나누고자 합니다.
…뭐, 사실 3년 차라는 짧지 않은 연차가 무색하게 AB테스트를 실제로 처음부터 끝까지 설계하고 검증한 경험은 많지 않습니다. 그전까진 책 몇 권, 아티클 몇 개 읽어보고 강의 몇 편 들어보며 다른 분들이 주도한 AB테스트에 결과 데이터만 받아서 분석해본 게 전부인 사람이에요. 그래서 이 글로 "AB테스트에 대한 모든 것을 알아내겠다!"라는 목표라면 죄송하게도 그 목표는 충족시켜 드릴 수 없어요😅 그저 저는 이 글을 읽은 독자 한 분이라도 "AB테스트에 대해 조금 알 것 같아!", "우리 서비스를 개선하는데 AB테스트를 잘 써먹어 봐야겠어!"라고 말할 수 있게 된다면 무척 기쁠 것 같아요.
자 그럼, 글을 본격적으로 시작하기 전에 제가 물어볼게요.
AB테스트란 무엇일까요?
저는 이렇게 말하고 싶어요. AB테스트는 '이유' 있는 제품을 만들기 위한 방법론이다.
우리는 많은 기능들을 새로 만들고, UI를 수정하고, 모델을 적용하죠. 근데 그렇게 우리가 한 작업들을 고객들이 좋아할 거라고 확신할 수 있나요? 만약 예상외로 고객들이 좋아하지 않는다면 어떡할까요? 롤백해야 할까요? 오늘 고객들은 별로 안 좋아했는데 내일 고객들은 좋아할 수도 있잖아요? 그렇다면 좀 더 기다릴까요? 우린 '좋은' 제품을 만들었지만 그것이 실제로 '고객도 좋아할' 제품인지는 알 수 없습니다. 하지만 AB테스트를 통해 새로운 제품의 기존 제품 대비의 지표를 알 수 있다면, 그때서야 비로소 우리의 제품은 이유를 갖추게 됩니다.
AB테스트는 위와 같은 절차로 이루어집니다. 가설을 세우고, 실험을 진행하고, 결과를 분석하고, 결과에 따라 제품 전체에 적용하거나 또다른 가설을 세워서 실험을 진행할지를 결정합니다. AB테스트를 계획할 때는 "실험을 어서 빨리 시작해서 효과가 있는지를 보고 싶다!"는 마음이 들기 쉽지만, 제대로 된 가설을 수립하지 않고 실험을 시작한다면 오히려 실험을 안 하느니만 못하게 될 수도 있습니다. 가설을 제대로 세우면 일직선의 고속도로🛣️를 달리게 될 것이고, 가설을 잘못 세운다면 빙빙 돌아가는 산길⛰️을 걸어가게 될 거예요.
여기까지만 들으면 AB테스트가 마냥 좋아 보이고 프로젝트 내 모든 일들에 AB테스트를 도입하고 싶을 거예요. 하지만 AB테스트에는 몇 가지 주의할 점이 있습니다.
첫째, 어떤 결정은 AB테스트로 판단할 수 없습니다. 예를 들어볼게요. 급여 인상률과 업무 능률과의 상관관계를 구하기 위해서 회사의 사원들을 AB 집단으로 나누어 한 집단은 급여를 인상하지 않고, 나머지 집단은 급여를 큰 폭으로 인상하기로 했다. 어때요? 듣기만 해도 말이 안 되고 바로 노동청에 신고해야할 것 같지 않나요? 이처럼 윤리적이나 도의적인 문제로 AB테스트로 진행해서는 안 될 결정들이 존재합니다.
둘째, 위에서 말한 대로 AB테스트에서는 무엇보다 가설이 중요합니다. 가설 없이 실험을 진행해서도, 정교화되지 않은 가설로 실험을 진행해서도 안 됩니다. 시간만 쓰고 얻게 되는 것은 없이 혼란만 가중될 수도 있어요.
셋째, A와 B 두 집단 간의 통계적으로 유의한 차이가 있어서는 안 됩니다. 우리는 '이유' 있는 제품을 만들기 위해 AB테스트를 하는건데, 집단간 차이가 있다면 B 집단의 지표가 성공적으로 나타난다 해도, 그 지표의 이유가 '제품' 때문인지 '집단의 특성' 때문인지 판단할 수 없습니다. 즉, 실험 결과가 제품을 대변해주지 못하게 됩니다.
AB테스트 시행 시의 가장 중요한 주의점입니다. 실험 결과가 어떻게 나오더라도 객관적으로 해석할 수 있어야 합니다. 우리 솔직해집시다. 우린 우리가 세운 가설이 참이면 좋겠어요. 우리가 노력해서 열심히 만든 기능인만큼 고객들이 좋아해 줬으면 좋겠어요. 우리 제품이 시행착오 없이 단번에 고객의 사랑을 받았으면 좋겠어요. 당연합니다. 저 또한 그래요. 하지만 명심해야 해요. 우리는 '고객들이 원하는 게 무엇인지 알기 위해서' AB테스트를 하는 것이지, '우리 아이디어가 맞았다고 짜맞추기 위해서' AB테스트를 하는 것이 아닙니다. 실험 결과에 주관적 해석이 들어간다면 단기적으로는 행복할지라도, 장기적으로는 고객과 점점 멀어질 거예요.
그렇다면 실험 결과의 객관적인 해석은 어떻게 해야 할까요? 우리가 세운 가설을 대립가설로 두고, 이와 반대되는 귀무가설을 두어서 통계적 검정방법론을 활용하여 p값을 구해야 합니다. 아마 통계학을 전공으로 하지 않은 분들은 '무슨 소리야; 뭘 어떻게 하라고? 일도 바빠 죽겠는데 통계학까지 공부해야 해?'라는 생각이 절로 들 거예요. 걱정마세요, AB테스트는 이미 수십 년째 많고 많은 회사들이 써온 방법론인 만큼 실험 결과의 통계적 유의성을 구해주는 사이트도 엄청나게 많거든요. 그중에서 제가 제일 추천하는 사이트는 AB Testguide입니다.
Test data의 Visitors와 Conversions 빈칸에 AB테스트의 핵심지표로 설정해 두었던 수치를 각각 입력하고, [Apply changes] 버튼만 클릭하면 끝입니다. 우측의 Test result에 AB Testguide가 알아서 AB테스트의 결과가 통계적으로 유의미한지를 해석해 줄 거예요.
AB테스트 시작합니다~!라고 말한 후 실험기간동안 아무도 지표를 볼 수 없다가, 실험 이후에 AB테스트 끝났습니다~! 결과는 이러이러해요~!라고 말한다면 스쿼드가 함께 '실험을 실행했다'고 할 수 있을까요? 아마 데이터직군 외의 동료들한테는 주기적으로 오는 스팸메일보다도 관심도가 낮을 거에요. 데이터분석가는 데이터를 해석(Data interpret)하는 역할만 해서는 안 되고, 데이터를 전파(Data delivery)하는 역할도 수행해야 합니다. AB테스트 또한 마찬가지에요. 그렇기 때문에 스쿼드원 누구나 AB테스트의 지표가 궁금하다면 바로 볼 수 있는 대시보드가 필요합니다. 저는 회사에서 Tableau를 사용 중이어서 태블로로 대시보드를 제작했지만, 대시보드를 제작할 수 있는 툴은 아주 많기 때문에 회사에서 쓰고 있는 툴이 있다면 이를 활용하셔도 되고, 별도의 툴이 없다면 구글 스프레드시트의 차트 기능으로도 충분합니다. 중요한 것은 '대시보드의 존재 유무'이지, 'BI툴의 종류'가 아니니까요. 대시보드에는 실험 목표, 실험 기간, 집단을 나눈 기준, 핵심 지표가 들어가야 합니다. 어떤 시각화 차트를 이용할지는 데이터 분석가가 결정할 일이지만, 개인적으로는 누구나 한눈에 직관적으로 이해가 쉬우려면 막대 차트와 라인 차트만한 게 없다고 생각하긴 해요.
제가 공유드릴 내용은 여기까지입니다. 오늘 글에서 전달드린 바와 같이, 저 또한 AB테스트의 주의점들을 신경쓰면서 실험을 진행해 왔고 진행해 나갈 예정이에요. 그 과정 속에서 여러 시행착오들을 겪고 레슨런하는 시간을 가지기도 했었고요. (Tip: 하나의 실험이 끝나면, 그 실험에 대한 회고 시간을 짧게라도 가지면 다음번 실험에서 시행착오를 조금 더 줄일 수 있어요!) 단번에 정답을 찾아낼 수는 없더라도, 수많은 AB테스트들을 거치면서 본질적인 문제를 해결하는 것에 점점 더 가까워지리라고 생각합니다.
*글에 활용된 모든 자료는 미리캔버스 MiriCanvas(https://www.miricanvas.com/)를 통해 만들었습니다 :)
참고문헌
- A/B 테스트 : 신뢰할 수 있는 온라인 종합 대조 실험 (론 코하비,다이앤 탕,야 쉬 저서)
- 그 AB테스트 결과는 우연일지도 모릅니다. (https://dewberry9.github.io/ab-test-frequentist-statistical-analysis)
- A/B 테스트 과정에서 맞닥뜨릴 수 있는 문제1. 통계적 유의성 부족, p-value가 뭐길래 (https://medium.com/@khjin1002/a-b-테스트-과정에-맞딱-드릴-수-있는-문제-ed7e0571a560)
- Become an A/B Testing Expert: Advanced Topics in Testing for PMs (https://www.news.aakashg.com/p/become-an-ab-testing-expert-advanced)