A/B 테스트만 하면 왜 어느 순간 안 올라갈까

들어가며

전환율을 A/B 테스트로 계속 올리는 팀이 있다. 버튼 색을 바꿔 0.3%p 올렸다. 문구를 바꿔 0.2%p 올렸다. 여백을 줄여 0.1%p 올렸다. 한 달에 한 번씩 작은 승리가 쌓인다. 보고서에 우상향 그래프가 그려진다.

그런데 반년쯤 지나면 그래프가 눕는다. 이번 테스트는 무승부. 다음 테스트도 무승부. 색을 바꿔도, 문구를 바꿔도 더 안 올라간다. 팀원이 묻는다: “우리 이제 다 한 건가요? 이게 최선인가요?”

그 질문의 답이 이 글의 주제다. 결론부터 말하면, 다 한 게 아니다. A/B 테스트라는 도구가 갈 수 있는 데까지 간 것뿐이다. A/B 테스트는 지금 자리에서 한 발씩 위로 올라가는 도구다. 그래서 어떤 봉우리 정상에 닿으면 멈춘다. 문제는 그 봉우리가 세상에서 가장 높은 봉우리라는 보장이 없다는 거다. 이 상황을 부르는 이름이 있다. 로컬 옵티마(local optimum), 우리말로 국소 최적이다.

A/B 테스트는 언덕을 오르는 일이다

A/B 테스트가 하는 일을 한 장면으로 그려보자. 지금 화면이 있고, 거기서 한 군데를 살짝 바꾼 화면을 만든다. 둘을 나란히 사용자에게 보여주고, 전환율이 더 높은 쪽을 남긴다. 이긴 화면이 다음 라운드의 기준이 된다. 거기서 또 한 군데를 바꿔 겨룬다.

이걸 지형에 비유하면 이렇다. 지금 디자인은 어떤 땅 위의 한 지점이다. 높이는 전환율이다. 한 군데를 바꾼다는 건 그 지점에서 한 발짝 옆으로 옮겨보는 것이다. 옮긴 자리가 더 높으면(전환율이 오르면) 거기로 간다. 더 낮으면 원래 자리에 남는다. 매 라운드 주변을 더듬어서 조금이라도 높은 쪽으로 발을 옮긴다. 이게 A/B 테스트를 반복하는 일의 전부다.

이 방식에는 이름이 있다. 언덕 오르기(hill climbing)다. 눈앞에서 조금이라도 높은 쪽으로만 계속 올라가는 전략이다. 단순하고 강력하다. 매번 확실하게 지금보다 나아지니까. 들어가며의 우상향 그래프가 바로 이 언덕 오르기의 기록이다.

여기서 한 가지가 중요하다. 언덕 오르기는 눈앞만 본다. 한 발짝 옆이 더 높은지 낮은지만 보고 결정한다. 저 멀리 어딘가에 지금 발 디딘 언덕보다 훨씬 높은 산이 있는지는 보지 않는다. 볼 수가 없다. 발밑 경사만 확인하는 도구니까.

로컬 옵티마, 더 낮은 봉우리 정상

이제 정체가 왜 오는지 보인다. 언덕을 계속 오르면 언젠가 정상에 닿는다. 정상이란 사방 어느 쪽으로 발을 옮겨도 더 낮아지는 지점이다. 버튼 색을 바꿔도 떨어지고, 문구를 바꿔도 떨어지고, 여백을 줄여도 떨어진다. A/B 테스트는 여기서 “더 올라갈 곳이 없다"고 보고한다. 무승부가 계속되는 그 상태다.

그런데 이 정상이 어떤 정상인지가 문제다. 안개 낀 산을 오른다고 해보자. 한 걸음 앞만 보인다. 계속 위로 올라가서 어떤 봉우리 꼭대기에 섰다. 사방이 다 내리막이다. 여기가 정상이다. 그런데 안개가 걷히면, 골짜기 건너에 지금 선 봉우리보다 두 배 높은 산이 보인다. 나는 낮은 봉우리 정상에 서 있었던 거다.

이 낮은 봉우리 정상이 로컬 옵티마다. 주변을 다 둘러봐도 더 높은 데가 없어서 최적처럼 보이지만, 세상 전체로 보면 최적이 아닌 지점. 반대로 골짜기 건너 그 두 배 높은 산꼭대기가 글로벌 옵티마(global optimum), 전역 최적이다. 진짜 도달하고 싶은 자리.

디자인으로 돌아오면 이렇다. 지금 화면을 조금씩 다듬어서 전환율 12%까지 올렸다. 더는 안 올라간다. 이 12%가 지금 디자인 구조가 가진 천장이다. 그런데 화면을 완전히 다시 설계하면 전환율 20%가 나올 수도 있다. 12%는 이 봉우리의 정상일 뿐, 가장 높은 산의 정상이 아니다.

왜 A/B 테스트는 골짜기를 못 건너나

여기서 자연스러운 질문. 그럼 그 두 배 높은 산으로 옮겨가면 되지 않나. 문제는 두 봉우리 사이에 골짜기가 있다는 거다. 지금 봉우리에서 저 산으로 가려면, 일단 내려갔다가 다시 올라가야 한다. 그리고 A/B 테스트는 내려가는 걸음을 절대 허락하지 않는다.

왜냐하면 A/B 테스트의 규칙이 “이번 판에서 이긴 쪽만 남긴다"이기 때문이다. 새 디자인이 지금보다 전환율이 낮게 나오면, 그 새 디자인은 탈락한다. 그런데 완전히 다른 구조의 디자인은 처음엔 대개 진다. 사용자가 익숙하지 않고, 한 번에 여러 군데를 바꿔서 어디가 문제인지 짚기도 어렵다. 골짜기 바닥을 지나는 중인데, A/B 테스트는 그 지점에서 “졌으니 버려"라고 판정한다. 골짜기를 다 건너 반대편 산을 오르기도 전에 실험이 끝난다.

쉽게 말해, A/B 테스트는 한 발짝의 도구다. 한 발짝 옆이 높으면 가고 낮으면 안 간다. 골짜기를 건너는 건 내리막을 여러 발짝 감수한 뒤에야 오르막이 시작되는 여정이다. 한 발짝의 도구로는 그 여정을 시작할 수 없다. 그래서 오래 A/B 테스트만 돌린 팀은 지금 봉우리 정상에 점점 더 정밀하게 눌러앉는다. 정상에 가까울수록 남은 개선은 소수점 아래로 작아지고, 그게 들어가며의 눕는 그래프다.

한 가지 덧붙이면, 이건 A/B 테스트가 나쁜 도구라는 말이 아니다. 지금 봉우리를 끝까지 오르는 데는 이만한 도구가 없다. 문제는 도구를 쓰는 사람이 이 도구의 한계를 모를 때 생긴다. 언덕 오르기 도구 하나만 쥐고서 “더 안 올라가니 여기가 세계 최고점"이라고 결론 내리는 순간, 로컬 옵티마에 갇힌다.

골짜기를 건너는 법: 탐색과 활용

빠져나오는 열쇠는 두 가지 행동을 구분하는 데 있다. 활용(exploitation)과 탐색(exploration)이다. 활용은 지금 아는 최선을 더 파고드는 것이다. 지금 봉우리를 한 뼘 더 오르는 일. A/B 테스트가 잘하는 게 이거다. 탐색은 지금 모르는 곳을 일부러 찔러보는 것이다. 골짜기 건너에 뭐가 있는지 확인하러 내려가 보는 일.

정체가 왔다는 건 활용이 바닥났다는 신호다. 그러니 이때 필요한 건 더 정교한 활용이 아니라 탐색이다. 구체적으로는 이렇다.

첫째, 가끔은 크게 건다. 버튼 색 같은 한 뼘짜리 변경 말고, 화면 구조를 통째로 다시 짠 대안을 만든다. 이건 앞 절에서 본 이유로 대개 처음엔 진다. 그러니 이 큰 베팅은 이겨야 하는 실험이 아니라, 저쪽 산의 높이를 재보는 실험으로 다뤄야 한다. 한 번 져도 그 구조의 잠재력이 보이면, 그쪽 봉우리를 새 기준으로 삼고 다시 오르기 시작한다.

둘째, 탐색에 쓸 트래픽을 미리 떼어둔다. 전체 사용자를 지금 봉우리 다듬는 데 다 쓰지 말고, 일부는 전혀 다른 방향을 시험하는 데 배정한다. 이렇게 활용과 탐색에 트래픽을 나눠 거는 방식을 정식화한 게 멀티암드 밴딧(multi-armed bandit) 같은 접근이다. 핵심은 매 순간 최선에 전부 걸지 않고, 최선을 흔들 후보에도 꾸준히 조금씩 걸어두는 데 있다. 단, 밴딧은 이미 손에 쥔 후보들 사이에서 트래픽을 나눌 뿐이다. 골짜기 건너 먼 산 같은 후보 자체를 만들어내지는 못한다. 그건 다음 항목의 몫이다.

셋째, 탐색의 방향은 A/B 테스트가 정해주지 않는다. 애초에 골짜기 건너 더 높은 산이 정말 있는지조차 A/B 숫자로는 확신할 수 없다. 지금 정체가 낮은 봉우리에 갇힌 탓인지, 아니면 정말 한계에 다다른 탓인지, 무승부라는 숫자만으로는 구분되지 않는다. 그 구분의 유일한 근거는 사용자 이해다. 사용자 인터뷰, 관찰, 정성 조사가 지금 구조 자체가 틀렸을 수 있다는 다른 가설을 만든다. A/B 테스트는 그 가설 중 어느 게 실제로 높은지 재는 자에 가깝다. 잴 대상 자체를 만드는 건 사람이다.

넷째, 판단 기준을 한 판보다 길게 잡는다. 큰 변화는 단기 지표가 잠깐 떨어졌다가 나중에 오르는 경우가 많다. 다음 한 번의 전환율만 보면 골짜기 바닥에서 실험을 접게 된다. 이 지표를 몇 주, 몇 달 단위로 보면 그제야 반대편 산의 오르막이 보인다.

마무리

들어가며의 질문으로 돌아가자. “이게 최선인가요?” 이 글의 답은 이렇다. 지금 이 봉우리에서는 최선이 맞다. 그런데 그게 가장 높은 봉우리라는 뜻은 아니다. A/B 테스트가 무승부만 내놓는다는 건 세계 최고점에 닿았다는 신호가 아니라, 언덕 오르기라는 도구가 이 봉우리에서 할 일을 다 했다는 신호다.

그래서 A/B 테스트를 오래 돌린 팀에게 필요한 건 더 촘촘한 A/B 테스트가 아니다. 지금이 활용을 멈추고 탐색을 시작할 때인지 판단하는 일이다. 언제 이 봉우리를 더 오를지, 언제 골짜기를 건너 다른 산을 오를지 정하는 것. 그건 도구가 대신 못 한다. A/B 테스트는 한 봉우리를 정밀하게 오르는 자일 뿐, 어느 산을 오를지 정해주지는 않는다. 그 결정은 디자이너와 팀의 몫이다.