본문 바로가기
PM 부트캠프 17기 기록/Daily 탐구 과제

[코드스테이츠 PMB 17기_W5D3] A/B 테스트 사례 조사(무신사 검색 서비스, Simply 인앱구매화면)

by 홍지똥이 2023. 3. 9.

오늘은 무신사와 Simply에서 진행한 A/B 테스트 사례에 대해 조사하고 분석해보았다.

 

무신사는 2021년 검색어 분석을 통한 상품의 정렬을 개선하였는데, 이를 검증하기 위하여 A/B 테스트를 사용하였다. 나는 이전 회사에서 검색 개발팀과 협업하여 A/B 테스트 지원 업무를 했는데, 다른 커머스에서는 검색 품질 개선을 위해 A/B 테스트를 어떻게 활용는지 궁금하였다. 이에 무신사에서 진행한 A/B 테스트에 대해 조사하였다. 그리고 나는 검색 서비스에서 진행한 A/B 테스트만 봐왔었기 때문에 로직 개발을 통한 개선말고 다른 요소로는 어떻게 전환을 발생시키는 지도 궁금하였다. 그래서 이를 알아보기 위하여 Simply의 ios 앱 구매 화면 UI개선 사례를 함께 조사하였다. 


 ᅵ검색어 분석을 통한 상품 정렬 개선: 무신사

무신사는 국내 최대 쇼핑 플랫폼이다. 무신사 개발팀은 검색 서비스를 개선하고 이를 검증하기 위한 방법으로 A/B 테스트를 진행하였다.

⚠️ 다음으로 올 분석 내용은 무신사 테크에서 게시한 글 '검색어 분석을 통한 상품 정렬 개선'을 바탕으로 작성하였으며, 개인의 해석이 포함되어 있다. (원문 링크)

1. 배경

무신사에서 상품을 검색하면 '무신사 추천순'을 기본 정렬로 검색 결과가 노출된다. '무신사 수천순'은 여러 데이터(page view, 구매 이력, 후기 등)를 색인 및 분석하여 상품들을 스코어링하는 모델이다. 그런데, 기존의 모델에서 키워드 동의어 처리 이슈가 발견되었다. 예를 들어 고객이 '레이스 양말'이라고 검색하였을 떄, 양말의 동의어인 '삭스'가 상품 정보에 포함된 '삭스 부츠'도 함께 결과에 노출된 것이다. 만약 '삭스 부츠'의 인기도가 '양말'상품들보다 높다면 고객은 양말보다 삭스부츠를 검색 결과 상위에서 보게 된다. 무신사 개발팀은 이러한 모델이 고객의 검색 의도에 부합하는 상품을 잘 보여주지도 않을 수 있다고 판단하여 알고리즘 개선 프로젝트에 착수하였다.

2. 목표

무신사는 고객들의 피드백을 검토하여 '무신사 추천순'에서 고객의 검색의도에 가장 부합하는 상품을 검색결과 상위에 노출시키는 것을 목표로 하였다. 여기서 '검색의도에 가장 부합하는 상품'은 특정 브랜드 검색어엔 해당 브랜드 상품을, 특정 카테고리의 상품 검색어엔 해당 카테고리 상품을 의미한다. 예를 들어서 고객이 '레이스 양말'이라고 검색하면 양말 카테고리의 상품을 검색 결과 상위에 노출시키는 것이다.

3. 가설

무신사 개발팀은 다음과 같은 가설을 세웠다.
'적합도(Relevance: 검색어와 상품 색인 필드의 단어 간 확률적 연관 관계)' 요소를 모델에 새롭게 추가하면 mAP*가 증가할 것이다.

 

*mAP: 검색 품질 지표 중 하나로, 고객이 얼마나 상위에서 상품을 클릭했는가, 혹은 원하는 상품을 상단에서 빠르게 찾을 수 있는가를 양적으로 표현한 수치. mAP를 계산할 때는 사용자가 검색 결과 페이지에서 클릭한 모든 상품에 대해 점수를 반영하되, 해당 상품의 정렬 순서에 따라 점수에 차등을 준다. 계산 결과 mAP가 100%이면 무조건 검색 결과 중 첫 번째 상품을 클릭했다고 볼 수 있으므로 mAP가 높을수록 모델 성능이 좋다고 판단한다. (mAP에 대한 자세한 설명은 무신사 tech 블로그 참고)

4. 모델 프로토타입 개발

무신사는 결과적으로 기본 모델에 적합도를 추가하여 다음과 같은 모델 개선안을 만들었다. 
이미지 출처: medium, 무신사 tech
즉, 상품의 구매, 후기, 클레임 등을 근거로 스코어링한 인기도에 상품이 검색어와 얼마나 연관 관계가 있는지를 스코어링한 적합도를 더한 것이다. 이때 고객에게 올바른 상품을 추천해주기 위해서는 각 요소별로 적절한 가중치를 설정해야 한다. 무신사는 올바른 적합도 가중치를 찾기 위하여 고객 피드백을 가장 많이 받은 브랜드와 카테고리 필드를 선정해 다음과 같은 목표 시나리오를 설정하였다.
  •  브랜드 적합도가 가장 높은 상품 그룹이 그 이외의 상품 그룹보다 상위에 노출되어야 한다.
    예 : ‘무신사 스탠다드’ 검색 시, ‘무신사 스탠다드’ 브랜드 상품이 타 브랜드 상품보다 상위에 노출 
  • 브랜드가 동일한 상품의 경우, 카테고리 적합도가 높은 순으로 노출되어야 한다.
    예: ‘무신사 스탠다드 원피스’ 검색 시, ‘무신사 스탠다드’ 상품 중에서 원피스 상품이 티셔츠 상품보다 상위에 노출

이어서 적합한 시뮬레이션 환경을 구현하고, 적절한 알고리즘 모델을 채택하여 프로토타입을 구현하였다. 그리고 개발한 프로토타입에 최근 1년 기준 무신사 인기 검색어 Top 1,000개와 모델링 요소별 가중치 조합 10,000개를 적용하여 목표 시나리오를 만족시키는 가중치 조합을 도출하였고, 내부 검토를 거쳐 모델 개선안의 초기 가중치 값을 세팅하였다. 

5. 모델 검증 방법

무신사는 새롭게 개발한 로직을 검증하는 정성적 방법으로 A/B test를 선택하였다. 그리고 정량적으로 검색 품질 개선을 확인하기 위한 지표로는 위에서 언급한 mAP를 사용하였다.

6. 결과

무신사는 개선된 '무신사 추천순'모델을 검증하기 위하여 A/B test를 이용하였다. 그 결과 무신사는 mAP가 상승하는 긍정적인 결과를 얻을 수 있었다.
  • 1차 테스트에서 기존 대비 mAP 약 1.0%p 상승: 37.13% → 37.64%, ▲0.5%p
  • 특히, 고객 검색어가 브랜드명 또는 카테고리명일 때, 검색 결과 상위에서 원하는 상품을 찾을 확률 두드러지게 증가
    예: ‘후드집업’ 검색 시 mAP 27.02% → 28.22%, ▲1.2%p
  • 검색 관련 클레임 상당수 감소 효과
    예: “OO 브랜드 상품이 잘 검색되지 않는 것 같아요!”

종합적으로, 무신사는 검색 서비스에서 고객에게 더 나은 쇼핑 경험을 주기 위하여 기본 정렬인 '무신사 추천순'의 알고리즘을 개선하였다. 그리고 A/B 테스트를 통하여 모델을 검증하였으며, 그 결과 mAP가 상승하고 고객 클레임이 감소하는 효과를 얻을 수 있었다.

 

나는 자료 분석을 하면서 자료를 통해 A/B 테스트가 구체적으로 어떻게 진행되었는지(타겟, 기간, 방법 등)를 알 수 없어서 아쉬웠다. 그래서 나의 경험을 토대로 내가 만약 해당 개발을 담당한 PM이었다면 어떻게 했을지 근거를 토대로 추측 해보았다. 

  • 타겟
    위 실험은 최근 1년 동안 수집한 인기 검색어 Top 1,000개를 대상으로 특정 카테고리와 브랜드의 적합도를 높이는 데 집중하였다고 보여진다. 따라서 복잡한 키워드 보다는 일반적으로 특정 브랜드 또는 카테고리를 주로 검색하는 고객을 대상으로 실험을 진행했을 것으로 추측한다. (또는 완전히 랜덤이거나..)
  • 기간
    기간은 위 자료를 근거를 바탕으로 예상하기가 어렵지만, 위 검색 모델을 개선하는 건 꽤 큰 프로젝트 였을 것이라고 생각한다. 무신사에서 검색 서비스를 이용하는 고객의 구매 전환율은 미이용 고객에 비해 약 4배 정도 높다고 하였기 때문이다. 따라서 우선순위가 매우 높았을 것으로 보여지며 1차 A/B test까지 매우 빠르게 개발이 진행되었을 것이다. Facebook에 따르면 가장 신뢰할 수 있는 테스트 결과를 얻기 위해서 7일 이상 30일 미만으로 A/B 테스트를 진행하는 것이 좋다고 한다. 따라서 무신사는 가장 빠르고 신뢰할 수 있는 결과를 낼 수 있는 기간인 7일로 설정하지 않았을까 조심스레 추측해본다.
  • 방법
    방법은 꽤나 심플했을 것이다. 위에서 예상한 기간동안 타겟에게 랜덤으로 일부는 개선된 검색페이지를 보여주고, 일부는 개선 전 페이지를 보여주었을 것이다. 그리고 두 그룹이 얼마나 검색 결과 상위의 상품을 선택하였는지 확인했을 것으로 예상한다.

ᅵ iOS 앱 구매 화면 UI개선: Simply

Simply는 사람들이 쉽고 재미있게 악기를 연주하는 방법을 배울 수 있도록 도와주는 음악 학습 서비스이다. Simply의 디자이너 아리엘 베르베르는 iOS 앱 구매 화면의 UI를 개선하고 이를 검증하기 위한 방법으로 A/B 테스트를 진행하였다. 자세한 내용은 그가 medium에 작성한 글 'A/B Test Case Study: iOS App Purchase Screen'을 통해 확인할 수 있다. (원문 링크)

1. 목표

앱 구매 화면(가격 책정 페이지) 개선을 통하여 인앱 전환율을 높인다.

2. 문제점 

베르베르는 앱 구매 화면을 설계 하기 전, 현재 구매 화면의 문제점을 파악하였다. 아래 화면에서 그가 파악한 문제점은 다음과 같다.

이미지 출처: medium, A/B Test Case Study: iOS App Purchase Screen

  • 화면에 보여지는 CTA*가 두드러지지 않는다.
  • 흰색 아이콘의 전달력이 부족하다. 
  • 목록을 가로로 읽는 것은 어렵다.

*CTA: Call to Action의 줄인 말로, 고객이 원하는 행동을 유도하는 짧은 문구를 의미한다. 

3. 가설

글에 정확히 나와있진 않지만, 그는 파악한 문제점을 토대로 다음과 같은 가설을 세웠다고 보여진다.

'위와 같은 문제점을 개선하는 새로운 구매 화면을 디자인하면 인앱 구매율이 증가할 것이다.'

4. 개발

그는 다양한 팀과 협업하여 두 개의 스텝으로 구성된 신규 구매 화면을 디자인 하였다. 첫 번째 스텝에서는 고객에게 캐로우셀 형태로 프리미엄 멤버쉽 혜택을 보다 가시적으로 보여주었다. 그리고 두번째 스텝에 기간 별로 멤버쉽을 나누어 고객이 스스로 계획을 선택할 수 있도록 유도하였다. 

5. 개선 검증 방법

그는 개선된 화면 디자인의 검증 방법으로 A/B 테스트를 선택하였다. A/B 테스트는 iOS 디바이스를 사용하는 고객 중, 전체 신규 유저를 대상으로 개선 전 화면과 개선한 구매 화면을 보여주는 방식으로 설계하였다. 이때 신규 유저의 절반에게는 개선 전 화면을, 나머지 절반에게는 개선 후 화면을 보여주었다.

6. 결과

A/B 테스트 트래킹 결과, 새로운 구매 화면에서 구매 증가율이 10% 이상 증가하였다. 그리고 시간이 지나 구매율이 20%대까지 증가하였으나, 몇 주가 지난 이후 5%대로 감소하였다. 그리고 그는 타겟으로 한 테스트 표본이 매우 적었기 때문에 이 5%의 상승이 유의미한 수치가 아니라고 판단하였다.

 


ᅵ내가 만약 Simply의 PM 라면?

Simply에서는 앱 구매 화면 개선을 통한 구매 전환율 상승을 목표로 A/B 테스트를 진행하였다. 초반에는 유의미한 결과를 보았지만 시간이 갈수록 결국 신규 회원의 구매 전환율은 감소하였다고 한다. 여기서 나는 A/B 테스트를 설계하는 데 문제가 있다고 생각하였다. 

첫번째로는 그가 말한 것처럼 표본이 너무 작아서 A/B 테스트의 결과가 다소 의미없었다는 것이고, 두번째는 유의미한 결과가 도출된 이후 다른 액션을 하지 않았다는 것이다. (원문에서 그는 우선 화면을 개선하고 추후에 전환을 위해 다른 개발을 했다고 되어있지만 내용을 알 수는 없었다.)

 

이를 통해 나는 개선된 화면을 론칭하기 위해선 더욱 신뢰도 있는 A/B 테스트 결과가 필요하다고 생각하였다. 내가 만약 해당 프로덕트를 담당한 PM이었다면 1차적으로 작은 표본으로 일정 기간 (최소 7일)을 정해서 결과를 트래킹해보았을 것이다. 그리고 유의미한 결과가 도출되면 표본을 프리미엄 결제하지 않은 기존 회원으로 늘려 다시 A/B 테스트를 진행했을 것 같다. 그렇게 했을 때 만약 목표로한 KPI가 상승한다면 이가 유의미한 수치라고 판단하여 새로운 구매 화면을 런칭했을 수 있을 것이다. 만약 반대로 지표에 어떠한 변화도 없거나 오히려 감소한다면 그때 다른 개선안을 고안하고 다시 실행했을 것 이다. (작은 표본으로 실험을 진행하여 결국 도출된 데이터가 무의미하다고 한 것은 실험 자체가 어쩌면 리소스 낭비였을 것이라는 생각도 들었다.) 또는 최소한의 시간으로 최대 효율을 내기 위하여 애초에 표본을 신규 회원과 기존의 일반 유저를 모두 포함하여 A/B 테스트를 진행하면 더욱 빠르게 유의미한 데이터를 도출할 수 있지 않을까?

 

ᅵ더 나은 A/B 테스트를 위하여..!

무신사와 Simply의 사례 분석을 통하여 A/B 테스트가 실무에서 어떻게 활용되고 있는지 알 수 있었다. 특히 업계에서는 정말 다양한 영역에서 A/B 테스트를 통해 고객에게 더 나은 UX를 주기위해 노력하고 있다는 점을 다시 한번 깨닫게 되었다. 무신사의 사례에서 가설을 검증하기 위해 올바르게 세운 지표는 정량적인 개선 뿐만 아니라, 정성적인 개선까지도 이끌어낼 수 있다는 점이 인상깊었다. 이전의 과제들을 통해 지표가 얼마나 중요한지 개념적으로 배웠다면 이번을 계기로 해당 부분이 더 와닿게 되었다. 이후, 실무에서 A/B 테스트를 설계할 때 해당 부분을 고려하면 더 정확한 테스트 결과를 얻을 수 있을 것 같다. 반대로, 지표를 잘못 세우면 아무리 A/B 테스트를 열심히 진행했더라도 올바르게 결과를 측정하기 어려울 것 같다는 생각도 함께 들었다. 

또한, Simply의 A/B 테스트 결과를 통하여 테스트의 타겟 표본 규모에 대한 중요성에 대해서도 알게 되었다. 원문을 읽으면서 목표하던 전환율 5% 상승했다는 것은 매우 큰 실적으로 느껴졌으나, 표본이 적으면 해당 전환율이 비즈니스에 큰 의미가 없다는 점이 인상깊었다. 이건 테스트의 타겟 뿐만 아니라 기간이라던지, 목표 등 다른 요소에도 마찬가지일 것이라고 생각한다. 결국 A/B 테스트에서는 테스트 자체도 중요하지만, 어떻게 설계하느냐가 가장 관건이라고 보여진다. 


ᅵ참고 자료

- Medium, Musinsa Tech, '무신사가 검색 품질을 관리하는 방법'

- Medium, Musinsa Tech, '검색어 분석을 통한 상품 정렬 개선'

- Meta 비즈니스 지원 센터, 'A/B 테스트 모범 사례'

- Medium, Ariel Verber, 'The Pitfalls of Running A/B Tests'

- Medium, Ariel Verber, 'A/B Test Case Study: iOS App Purchase Screen'