배달의 민족에서도 실험 플랫폼을 구축하고 있네요! 실험 플랫폼 구축 글입니다. 개발 관점에서 궁금하신 분이 있다면 도움이 될 것 같아요 :)
✨️ 추천드리고 싶은 분
- 실험 플랫폼에 대해 궁금하신 분
- 실험 플랫폼 개발을 해야하는 분
- 데이터 분석가, 데이터 엔지니어, PM
내용 퀵 요약
- 실험 : 대조군과 실험군을 나누어 유입되는 사용자들의 반응을 통해 어떤 방법이 효과적인지 검증하는 과정
- 기능 플래그(Feature Flag)
- 코드 수정, 배포 없이 서비스의 동작을 변경할 수 있는 기능
실험 플랫폼 아키텍처(서버)
- 실험 플랫폼 어드민
- 그룹 분배
- 이벤트 적재
- 게이트웨이
실험 플랫폼 어드민
- 실험 상태(준비, 일시정지, 진행중, 종료, 보관)
- 실험명, 팀
- 시작일, 종료일
- 위너 적용
- 실험 강제 할당 : QA를 진행하기 위함
- 실험 조건 : 비율, And, OR 조건 등
- 그룹 분배와 슬롯
- 일관된 그룹 분배 결과를 보장하기 위해 10,000개의 슬롯을 사용
- 슬롯 할당 알고리즘 : 회원번호 -> 해싱 알고리즘 -> 나머지 연산 후 1을 더해 슬롯 계산
실험 대상 범위와 실험 간 충돌
- 충돌을 방지하기 위해 각각의 실험이 가지는 슬롯의 범위를 변경할 수 있는 기능 제공
실험 이벤트
- 실험에서 발생한 모든 이벤트 유형을 조회하거나 등록할 수 있음
목표 등록
- 기본 정보 작성
- 추가 정보 : 사용자 식별 유형 작성, 성공 기준 : 그룹 대비 증가 / 감소
- 분자, 분모도 선택해서 조합할 수 있음
이벤트 적재 서버
- API를 통해 이벤트 데이터를 적재함
- 1시간마다 이벤트 테이블로 추출됨
Permisson Toggles
- 유료 고객, 내부 사용자만 사용할 수 있는 기능을 관리하기 위한 목적
아직 해야할 과제
- 그룹 분배 서버 부하 감소
- 다양한 통계 분석 방법, 퍼널 분석 기능 제공
- 세그먼트 생성 및 실험 대상에 세그먼트 지정
- 실험 데이터 처리 속도 개선, 데이터 범위 축소