1주 1개 실험하는 프로덕트 팀이 되는 여정

문화 | 2022-03-21
1주 1개 실험하는 프로덕트 팀이 되는 여정_포스트썸네일

안녕하세요, 당근마켓 중고거래팀에서 데이터 분석가로 일하고 있는 매튜예요. 당근마켓에서 데이터 분석가는 프로덕트 팀이 실험을 설계하고 실험 결과를 분석하며 팀이 데이터를 기반으로 더 나은 의사결정을 할 수 있도록 돕는 일을 해요. 제가 처음 중고거래팀에서 데이터 분석가로 합류했을 때만 해도 팀이 실험을 잘 활용하지 못했는데요. 이제 중고거래팀은 1주에 1개의 실험을 돌리고 수많은 의사결정에 실험을 활용하고 있어요. 이런 변화의 과정을 공유해보려고 해요.

당근마켓에서 실험이라고 하면 A/B 테스트를 이야기해요. A/B 테스트는 IT회사에서 일하는 분들이라면 모두 한 번씩은 들어보셨을 거예요. A/B 테스트는 기존 요소로 구성된 A안과 특정 요소를 변형한 B안을 비교해 더 나은 성과를 내는 방법이 무엇인지 측정하는 실험인데요. 

예를 들어 설명해보자면, 최근에 중고거래팀에서 거래후기와 관련한 A/B 테스트를 진행했어요. 당근마켓에서는 거래를 하고 나면 후기를 남길 수 있는데요. 이때, 상대방이 후기를 작성하면 푸시 알림을 통해 상대방의 후기를 볼 수 있어요. 더 따뜻한 당근마켓이 되기 위해 후기를 받은 사용자도 후기를 남기도록 유도하면 좋다고 생각했고, 실험을 진행했어요.

후기를 받은 사용자를 (1) 랜덤하게 반으로 나눠서 (2) 대조군에게는 기존 화면을 보여주고 실험군에게는 새로운 화면을 보여줬어요. 일정 시간이 지나고 대조군과 실험군의 데이터를 비교해 실제로 실험군의 사용자들이 후기를 더 작성했는지 살펴보는 거예요. 이런 실험 방법을 A/B 테스트라고 해요.

실험을 시작하게 된 시작점

당근마켓은 상당히 초반부터 A/B 테스트를 활용하려고 노력해왔어요. 지금으로부터 3년 전, 한 팀원이 “검색 결과 화면에서 거래완료 게시글까지 디폴트로 모두 보여주면 어떨까?”라는 아이디어를 내놓은 적 있어요. ‘게시글을 쓸 때 판매완료된 게시글을 검색을 통해 많이 둘러보지 않을까?’라고 생각했던 거죠. 이때 A/B 테스트로 실험해보기로 했어요. 

검색 결과에서 거래완료 게시글까지 모두 보여주면 글 작성 관련 지표가 좋아질 것이라고 가설을 세워보고 파이어베이스 A/B 테스트 기능을 사용해서 실험을 했어요. 가설대로 실제 글 작성 관련 지표가 좋아지는 걸 발견했어요. 이처럼 실험을 통해 가설이 맞다는 걸 확인하니 실험 자체가 재밌을 뿐 아니라 사용자가 더 잘 사용할 수 있는 프로덕트를 만들 수 있었어요. 실험 결과를 토대로 지금까지도 검색 결과에서 거래완료 게시글을 디폴트로 볼 수 있어요.

사실, 이전까지는 다음 도표에서 “실험을 하지 않을 때”의 흐름으로 프로덕트를 만들어왔어요.

실험을 하지 않을 때는 주로 일을 하다가 혹은 회의를 하다가 떠오르는 아이디어를 주변 팀원에게 자유롭게 말했어요. 괜찮다는 피드백이 많거나 아이디어를 낸 사람이 의지가 있으며 개발해서 배포했고요. 처음 기능이 많지 않았을 때라, 사용자들이 새로운 기능을 사용하는 것을 보면서 아이디어를 평가하곤 했어요. 하지만 여러 기능을 더 좋게 개선하는 단계에 들어가니 이런 방식으로 판단하는 것이 어려워졌어요. 이때 실험을 통한다면 더 명확하게 가설을 확인하게 되고 의사결정도 단순 아이디어가 아닌 사실을 기반으로 할 수 있게 됐어요.

실험을 돌리는 팀이 되기 위해 필요한 것들

하지만 실험을 1주에 1번 돌리게 될 때까지 3년이라는 시간이 걸렸어요. 실험이 좋다는 것을 팀이 함께 경험을 했는데 왜 팀이 일하는 과정에 실험이 녹아드는 데 시간이 오래 걸렸던 걸까요? 다음과 같은 점들이 도전적이었어요. 하나씩 좀 더 설명해볼게요.

  1. 실험을 하기 위해 들어가는 추가적인 리소스
  2. 실험 설계에 대한 어려움
  3. 실험 결과를 해석하는 역량의 부족
  4. 신뢰할 수 없는 실험 플랫폼

1. 실험을 하기 위해 들어가는 추가적인 리소스

실험을 많이 하려고 할 때 사실 가장 어려운 부분이 바로 이 부분일 것 같아요. 실험을 하려면 단순히 기능을 배포할 때보다 많은 리소스가 들어가요. 당근마켓에서는 사용자의 문제를 빠르게 해결해서 사용자들이 더 좋은 경험을 할 수 있도록 개선하는 것을 중요하게 생각해요. 하지만 실험을 하려면 (1) 분기를 나눠서 개발을 해야하고 (2) 특정 기간동안 그 분기를 유지해야 하며 (3) 실험 결과를 분석해야 하고 (4) 분석 결과를 토대로 의사결정하는 논의를 해야해요.

이렇게 실험에 리소스를 쓰는 동안 차라리 몇 번 더 배포해서 사용자의 문제를 해결해주는 것이 좋지 않을까?라는 생각이 들곤 했어요. 따라서 실험을 많이 하기 위해서는 실험이 정말 쉬워지도록 만드는 것이 중요해요. 실험이 쉽다는 것은 물리적인 장벽과 심리적인 장벽 모두 없어진다는 것을 의미해요. 물리적인 장벽은 실험 설계 / 실험 관련 개발 / 실험 결과 분석 등에 들어가는 리소스를 의미해요. 물리적인 장벽을 낮추기 위해 실험 설계 템플릿을 만들고 자체 실험 플랫폼을 구축하고 실험 결과를 자동화하는 노력을 하고 있어요.

또한 심리적인 장벽이 있을 수 있어요. 실험이라는 것이 어떻게 보면 어렵게 느껴질 수 있기 때문이에요. 이 문제는 각 프로덕트 팀에 있는 데이터 분석가가 기여할 수 있는 부분이에요. 프로덕트를 만드는 팀원이 최대한 실험이 쉽게 느껴질 수 있도록 하는 것이 중요해요.

그러기 위해서는 실험이 정말로 유용한 상황에서 실험을 빠르게 설계하고 결과를 잘 풀어서 전달해서 정말로 더 나은 의사결정을 하는 경험을 쌓아나가야 해요. 경험이 하나둘씩 쌓이다 보면 자연스레 프로덕트를 만드는 팀에서 먼저 실험을 제안하는 문화가 형성이 돼요.

2. 실험 설계에 대한 어려움

실험을 할 때는 가설을 세우고 가설을 가장 잘 확인할 수 있게 실험을 설계해야 해요. 실험을 하는 이유는 가설을 실험을 통해 확인하는 것이기 때문이에요. 그로 인해 사용자에 대해 하나둘씩 배울 수 있어요. 이 과정이 처음에는 익숙하지 않았어요. 가설이 무엇인지에 대해서 명확히 알지 못했고 어떤 지표를 설정해야 하는지 그리고 몇 개까지 설정해야 하는지 등등 결정할 때 어려움이 많았어요. 이런 어려움들이 실험을 하는 데 있어서 허들이 되었어요.

따라서 실험을 설계할 때 도움이 될 수 있는 노션 템플릿을 만들었어요. 이 템플릿을 통해서 실험을 설계할 때 무엇을 고려해야 하는지 누구나 생각할 수 있게 되었어요. 실험을 잘 설계하려면 실험을 왜 하는지가 명확해야 해요. 또한 실험의 성공과 실패를 명확히 판단할 수 있는 지표의 선정이 중요해요. 이런 사항들을 템플릿에 넣어놨어요. 또한 실험을 설계하면서 어려움이 있을 땐 언제든지 데이터 분석가와 함께 이야기 할 수 있도록 했어요. 템플릿에 따라 작성된 실험 문서가 쌓이니 새롭게 실험을 하려는 팀에서도 문서들을 참고해서 실험을 설계할 수 있게 되었어요.

당근마켓에서 사용하는 실험 문서 템플릿

당근마켓에서 사용하는 실험 문서 템플릿

3. 실험 결과를 해석하는 역량의 부족

제가 처음 당근마켓에 들어와서 팀원들과 함께 스터디를 했던 책이 《통계의 힘》이라는 책이었어요. A/B 테스트를 해석하기 위해서는 통계 지식이 필요해요. 물론, 파이어베이스 A/B 테스트와 같은 실험 플랫폼을 사용하면 자동으로 통계적 결과를 보여주지만 다양하고 복잡한 상황에서 실험 결과를 통해 의사결정을 하기에는 턱없이 부족했어요. 실험 결과는 어떻게 설계하는지에 따라 많이 달라질 수도 있고 종합적으로 판단을 하기 위해서는 다양한 정보와 지식을 필요로 해요.

파이어베이스 A/B 테스트를 통해 실험을 시작하긴 했지만, 몇 번 실험을 해보면서 결과를 해석하고 의사결정에 반영하는 것이 어렵다고 느꼈어요. 저 또한 3년 전에는 실험 결과를 편향없이 해석하는 법을 잘 몰랐어요. 어떻게 실험 결과를 해석하는지 팀과 데이터 분석가가 역량을 쌓아나감에 따라 더 복잡한 상황에서도 실험을 활용하게 되었어요. 최근에는 실험 결과 분석의 신뢰성과 속도를 올리기 위해 자동으로 실험 결과를 분석하는 코드를 만들어서 데이터 분석가가 실험 결과를 분석할 때 활용하고 있어요.

4. 신뢰할 수 없는 실험 플랫폼

파이어베이스에 있는 A/B 테스트 기능을 통해 실험을 시작했지만 파이어베이스를 사용하면서 어려움이 많았어요. 최근에 파이어베이스의 A/B 테스트를 사용할 때 어떤 문제가 있는지 정리를 했어요.

1. 데이터 소스를 신뢰할 수 없음

  • 파이어베이스는 파이어베이스 sdk를 통해 로깅하는 이벤트 기준으로 실험 데이터를 기록해요. 모든 이벤트에 어떤 사용자가 어떤 실험의 어떤 사용자군인지를 기록해줘요. 하지만 파이어베이스 sdk를 통해 로깅할 때 오집계가 많아서 이 데이터를 신뢰하기 어려워요.

2. 실험 기간 동안 일관된 경험을 할 수 없음

  • 파이어베이스 A/B 테스트는 파이어베이스가 자체적으로 부여하는 id를 기준으로 사용자를 실험에 배정해요. 이 기준이 당근마켓 내부에서 사용자를 구분하는 기준과 다르기 때문에 동일 사용자가 실험 기간 동안 대조군이었다가 실험군이었다가 하는 현상 발생해요.

3. 실험 시작과 종료가 원하는대로 되지 않음

  • 실험을 시작해도 시작이 바로 안 되는 이슈가 있고 앱 설치하자마자 일정 기간 동안 실험에 배정이 안 되는 문제가 있어요. 또한 실험 종료해도 실제로 제대로 종료가 안 되는 문제가 존재해요.

4. 실험 잘 돌아가는지 테스트하기 어려움

  • 실제 사용자 id 기준으로 테스트하는 것이 제일 간단한 방법이에요. 하지만 파이어베이스에서는 firebase_instance_id라는 것을 통해 테스트 기기를 특정 사용자 군에 배정해서 테스트해야 해요.

이 외에도 더 많은 문제들이 여러 실험 과정에서 발견됐어요. 그럴 때마다 실험이 어렵게 느껴지고 결과를 신뢰하기 어려웠고요. 따라서 신뢰할 수 있는 실험 플랫폼을 확보하는 것이 무엇보다 중요하다는 것을 알게 됐어요.

당근마켓에서는 자체적으로 신뢰할 수 있는 실험 플랫폼을 구축하고 있어요. 다음 화면이 현재 개발하고 있는 실험 플랫폼이에요. 새로운 실험 플랫폼을 통해서 더 많은 실험을 더 쉽고 신뢰하면서 돌릴 수 있을 거라고 기대하고 있어요.

사실을 기반으로 더 나은 의사결정을 하려고 A/B 테스트를 하는 것인데, A/B 테스트를 하는 과정을 신뢰할 수 없다면 테스트에 들인 리소스가 다 의미 없어지게 돼요. 따라서 실험을 하는 과정, 실험을 해석하는 과정에서 신뢰성을 확보하는 것이 중요해요. 실제로 실험에 대한 신뢰성을 확보해나갈수록 팀이 더 실험을 신뢰하게 되면서 자연스레 더 많이 실험을 돌리게 되었어요.


중고거래팀이 실험을 하는 방법

중고거래팀이 현재 어떻게 실험을 돌리는지 소개해볼게요. 최근에 팀에 공유했던 중고거래팀에서 실험을 하는 과정이에요. 총 10가지 step으로 나눠볼 수 있었어요.

당근마켓에서는 누구나 실험을 제안할 수 있고 실험에 대한 오너쉽을 가져갈 수 있다고 생각해요. 데이터 분석가는 누구나 실험을 제안하고 오너쉽을 가질 수 있게 서포트하는 역할을 해요. 누구나 프로덕트를 개선하고자 하는 아이디어를 낼 수 있다고 생각하고 아이디어는 가벼우면 가벼울수록 좋다고 생각해요. 하지만 실험을 하려면 실험을 잘 설계하는 것이 중요해요. 따라서 실험 템플릿을 통해 실험에 대한 내용을 작성해야 하는데 이 과정에서 허들을 낮추기 위해 누구나 실험 문서 작성할 때 데이터 분석가에게 말해서 함께 작성할 수 있어요.

팀 미팅에서 실험 문서를 함께 보며 실험을 할지 말지를 결정하게 돼요. 결정이 되고 나면 개발자 분들이 실험 설계에 따라 개발을 하게 돼요. 실제로 실험이 돌아가기 위해서는 실험 플랫폼에서 설정을 하고 테스트를 하고 실험을 시작하는 과정이 필요해요. 이 과정은 주로 실험 아이디어를 제안했던 실험 오너가 해요. 그리고 실험을 종료하기 전에 데이터 분석가가 실험 결과를 분석해서 실험을 마쳐도 되는지, 더 해야 하는지를 결정해요. 실험을 마치게 되면 실험 문서에 실험 결과를 작성해요.

당근마켓에서는 ‘Data-driven decision’이 아닌 ‘Data-informed decision’을 추구해요. 사실을 알기 위해 실험을 하지만, 실험 결과가 우리의 의사결정을 정해주는 건 아니라고 생각해요. 팀이 의사결정을 할 때는 데이터뿐만 아니라 다양한 요인들을 함께 고려해서 결정을 해요. 따라서 실험 결과가 나왔더라도 바로 결과에 따라 배포가 되는 것이 아니라 팀이 함께 모여서 결과에 대해서 이야기를 하고 의사결정을 해요.

앞으로 더 많은 실험을 돌리기 위해 필요한 것들

지금까지 1주에 1개의 실험을 돌리기 위해 무엇을 했고 현재 어떻게 하고 있는지를 소개해드렸어요. 당근마켓에서는 1주에 1개의 실험을 넘어서 더 자주 1주에 n개까지 실험을 돌릴 수 있게 되는 것을 목표로 하고 있어요. 당근마켓에서는 사용자 경험을 중요하게 생각하는데, 더 많은 의사결정을 사용자의 행동으로부터 나온 데이터를 기반으로 하길 바라기 때문이에요. 그렇다면 더 많은 실험을 돌리기 위해서는 무엇이 필요할까요?

위에서 설명한 실험을 하는 10가지 과정이 정말 부드럽고 쉽게 돌아가는 것이 중요하다고 생각해요. 그러기 위해서는 다음과 같은 개선이 필요해요. 결국 더 쉬운 실험을 위해서는 엔지니어링으로 문제를 해결해야 해요. 자체 실험 플랫폼을 통해 어떤 팀이나 신뢰하며 쉽게 실험할 수 있게 만드는 과정이 필요해요. 또한 실험 결과를 해석할 때 항상 데이터 분석가가 필요하다면 그 과정이 병목이 되어서 많은 실험을 돌릴 수 없어요. 따라서 실험 결과 해석이 대부분의 경우 자동으로 돌아가도록 해야 해요.

  • 더 쉬운 실험 설계
  • 더 쉬운 실험 관련 개발과 테스트
  • 데이터 분석가 없이도 가능한 실험 결과 분석
  • 실험할 때 참고할 수 있는 가이드라인
  • 정기 실험 리뷰 미팅

또한 실험을 하면 할수록 실험에 대한 경험이 쌓여가면서 일종의 가이드라인을 만들 수 있게 돼요. 이러한 가이드라인이 있다면 새롭게 실험을 하려는 팀에서도 누구나 쉽게 실험을 할 수 있게 돼요. 정기적으로 실험을 리뷰하는 회의를 만들어서 실험을 더 잘 설계하고 실험을 통해 더 나은 의사결정을 할 수 있는 장치를 만들어요. 이 미팅을 통해 각 팀이 실험에 대한 허들이 낮아지고 더 나은 의사결정을 하게 될 수 있어요.

글을 마치며

당근마켓 중고거래팀에서 실험을 1주에 1개씩 돌리게 된 여정을 소개했어요. 당근마켓에서 데이터는 결국 사용자에 대한 정보를 말해요. 우리는 실험을 통해 사용자에게 어떤 것이 더 좋은 경험을 만들어주는지 확인해요. 실험을 사용자에 대해 알아가고 사용자를 위한 더 좋은 의사결정을 위한 도구라고 생각해요. 

실험을 10배 더 많이 하면 사용자에 대해 10배 더 알아갈 수 있을 거예요. 당근마켓의 데이터 분석가는 앞으로도 프로덕트 팀이 사용자에 대해 더 이해하고 더 나은 의사결정을 할 수 있도록 더 노력할 예정이에요. 

더 나은 의사결정을 함께 만들고 싶다면

Matthew

Data Scientist, Decision

#데이터가치화팀
#실험문화
#데이터
#데이터분석가

추천 포스트