
크몽에서 A/B Test하는 법 (1)
안녕하세요! 크몽 모바일 개발자 인트,에밀리입니다. 저희는 올 한해 크몽 IT애자일팀에서 함께 개발했는데요. 사용자들에게 더 나은 경험을 제공하기 위해 다양한 실험을 진행했습니다. 이 과정을 2편에 걸쳐 공유하려합니다. A/B Test란? A/B Test는 하나의 웹 또는 앱 페이지를 두 가지 버전으로 나누어 비교한 후 어떤 버전이 더 효과적인지 판단하는 방법입니다. 효과를 논의할 때 페이지전환율, 구매전환율 등 지표에 따라 판단하죠. A/B Test는 작게는 버튼 배치에서부터 크게는 마케팅이나 인터페이스를 개발하기 위해서도 사용됩니다. 해당 테스트를 통해 웹 또는 앱을 최적화하고 비즈니스 성장을 위해 어떤 선택을 해야 할지 결정을 내리는 데 도움이됩니다. 저희 IT애자일 팀 또한 더 나은 서비스를 제공하기 위해 지난 1년 다양한 A/B Test를 시도해봤는데요. 이 과정에서 개선안을 찾아서 적용하기도 하고 데이터 불충분으로 테스트를 중단하기도 하고 테스트를 위해 개발한 화면을 날리기도 하는 둥 다양한 시행착오를겪었습니다. A/B Test 결정기준 저희 애자일 팀에서는 매 스프린트마다 다양한 아이템을 논의하는데요. 이 과정에서 A/B Test 결정하는 기준은 크게 두가지입니다. 1. 확실한 개선이 필요하지만, 의견이 갈리는아이템 모두가 입을 모아 개선이 필요하다고 하는 아이템이 있습니다. 하지만 해당 아이템의 어떤 부분을 중점으로 둘지 의견이 갈렸습니다. 사용자 편의성인지, 정보전달을 앞세울지 등 고민이 될 때 저희는 A/B Test를진행했습니다. 서비스 카드 리스트가 바로 그런 경우였습니다. 특히 IT 특성상 썸네일 의존도에 대한 의견이 갈렸는데요. 최종적으로 세 가지로 의견을나누었습니다. 원본: 기존의 서비스 카드 리스트. 사용자들이 가장 익숙하고 친근하게 사용하는 UI로, 썸네일 이미지와 제목이 적절하게 노출된다는 장점이있습니다. A안: 썸네일을 극단적으로 줄인 버전. 썸네일보다는 제목에 집중시킨 버전입니다. 사용자들이 원하는 정보는 제목에 있을 것이다라는 의견을 바탕으로 썸네일 이미지 대신 전문가 프로필을노출합니다. B안: 썸네일을 극단적으로 키운 버전. 모바일에서 가장 익숙한 카드 형식 UI입니다. 썸네일에 사용자들이 필요로 하는 정보(핵심 정보, 키워드)가 있기 때문에 크기를 키워보자는 의견을 바탕으로했습니다. 이렇게 확정된 세 가지 아이템에 대한 A/B Test는 현재 진행 중입니다. 과연 결과는 어떻게 됐을까요? 크몽 앱에서 그 결과를 확인하실 수 있습니다! 2. 개선을 해볼까? 싶은아이템 위의 경우와는 다르게 개선해볼까? 싶은 아이템들도 있습니다. 개선을 할 경우 사용자에게 더 나은 서비스를 제공할 수 있고 회사에도 수익을 가져오리라 예상되는 경우입니다. 하지만 현재보다 더 나은 수치를 제공할 것인지 의문이 들때 A/B Test를진행합니다. 서비스 리스트 내 검색이 그런 아이템이었습니다. 특정 카테고리 내에서 검색할 경우 원하는 서비스를 쉽게 찾을 수 있지 않을까? 라는 생각에서 시작했습니다. 저희는 A/B Test로 두 가지 안을 나누게됩니다. 필터 A안B안 원본: 기존 필터를 적용한리스트. A안: 검색창이 들어간리스트. 이처럼 확신을 얻기 위한 용도로 A/B Test를 얘기해봤습니다. 저희는 앞으로도 더 나은 서비스 제공을 위해 끊임없이 아이템을 선정하고 테스트를 진행할 것입니다. 다음으로 이 테스트를 개발하는 법에 대해 이야기해보겠습니다. 모바일에서 A/B Test하는 법 — iOS버전 먼저 Firebase의 Remote Config에 매개변수를 설정합니다. 해당 매개변수 네이밍은 안드로이드와 협의 후, 사용할 프로젝트와 연관성있는 이름으로 지어주는게 좋겠죠? 저희는 타팀 테스트와 구분하기 위한 prefix를 넣었습니다. 저희 팀명이 AB팀이라면 매개변수 앞에 ab_아이템명' 이런 식으로말이죠. 매개변수 value는 테스트할 타입에 따라 나누어줍니다. 저희는 A안과 B안 두 가지 버전을 테스트할 때는 Bool 타입으로 나누어주었습니다. A안, B안, C안 세 가지 버전을 테스트할 때는 값을 String 타입으로 “origin”, “testA”, “testB” 나누어주었습니다. 프로젝트에서는 Firebase Remote Config을 관리하는 class에 해당 매개변수를 추가한 뒤, 매개변수를 이용하여 A안과 B안 분기처리를진행해줍니다. 두 가지 버전 테스트할 경우에는 if문으로 분기처리를 해주고, 세 가지 버전 테스트할 경우에는 enum으로 타입을 나누어분기했습니다. A/B Test 코드 작성시 가장 고민했던 부분은 기존 코드를 지저분하게 만들지 않고, 향후 테스트 종료시 깔끔하게 코드를 제거하는 법입니다. 주로 extension으로 A/B Test 코드를 한꺼번에 빼놓았습니다. 테스트를 종료하면 해당 부분만 날리면되도록이요. // MARK: - A/B Test Parameters // 팀 - 용도 기재 // 완료 후 날짜 지나면 걷어내기 extension FirebaseRemoteConfigClass ( .... ) 테스트를 진행할수록 관련 코드가 많아지기 때문에 적절한 주석을 달아주는 것도 중요합니다. 그리고 배포와 함께 A/B Test를 시작하면완성 다음 편에서는 저와 함께 A/B Test를 진행했던 안드로이드 개발자 인트가 이어서 테스트 과정을 공유해드리겠습니다 2편보러가기 크몽에서 A/B Test하는 법 (1) was originally published in kmong on Medium, where people are continuing the conversation by highlighting and responding to this story.
