Founding as a Developer — Validate Before You Build
How You Define an Active User Changes the Number
한국어 원문으로 표시합니다.
한 줄 요약
DAU·WAU·MAU 는 "무엇을 한 사람을 활성으로 치는가", "어느 시간대의 하루인가", "누구를 빼는가" 세 가지를 정하기 전에는 숫자가 아니다. 그리고 제품 팀이 매주 보는 숫자(North Star)는 로그인 수가 아니라 고객이 가치를 얻은 행동을 세야 한다.
왜 이게 필요했나
작은 팀이 투자 미팅 전날 대시보드를 캡처한다. MAU 가 지난달보다 20% 올랐다. 그런데 그 20% 가운데 상당 부분이 사내 계정이었다 — 개발자·디자이너·영업이 매일 시연용으로 들어가고 있었다. 또 다른 팀은 '활성' 의 정의를 "로그인" 에서 "아무 사건이나" 로 바꾼 주에 지표가 뛰었다. 푸시 알림을 열기만 해도 사건이 하나 찍혔기 때문이다. 두 경우 모두 계산은 틀리지 않았다. 정의가 적혀 있지 않았을 뿐이다.
창업 초기에는 이 숫자로 채용·투자·기능 우선순위를 정한다. 정의가 바뀌면 추세가 거짓말을 하고, 그 추세를 믿고 내린 결정은 되돌리기 어렵다. 그래서 지표는 코드처럼 정의를 먼저 쓰고, 그 정의로 다시 계산해 같은 숫자가 나오는지 확인하는 대상이다.
어떻게 동작하나
지표 하나를 정의하려면 최소한 아래 네 칸을 채운다.
| 칸 | 이 실습의 정의 | 흔히 새는 자리 |
|---|---|---|
| 무엇을 | session_start 가 1번 이상 |
'아무 사건' 으로 두면 알림 열람·자동 동기화가 섞인다 |
| 누구를 | is_internal = 1 은 뺀다 |
사내·시험 계정이 매일 들어와 바닥을 올린다 |
| 언제 | Asia/Seoul 날짜, 주는 월요일 00:00 시작 | UTC 날짜로 묶으면 오전 9시 이전 활동이 전날로 간다 |
| 몇 번 | 사람 수(중복 제거) | 사건 수를 세면 한 사람이 열 번 들어와도 열 명이 된다 |
DAU·WAU·MAU. DAU 는 그날 활성인 사람 수, WAU·MAU 는 기준일을 포함해 거슬러 올라간 7일·28일 안에 한 번이라도 활성인 사람 수다. 28일을 쓰는 이유는 달력의 달이 28~31일이라 월별 비교가 요일 구성에 흔들리기 때문이다 — 28일 창은 언제 재도 요일이 네 번씩 들어간다. 이 실습은 그렇게 정의하고, 여러분의 조직이 30일을 쓴다면 그 정의를 적어 두기만 하면 된다. 중요한 것은 어느 쪽이냐가 아니라 바뀌지 않는 것이다.
스티키니스(stickiness). '한 달에 한 번이라도 온 사람 가운데 평일 하루에 몇 명이 오나' 를 보는 비율이다. 이 실습은 기준일까지 28일 동안의 DAU 평균을 그날의 MAU 로 나눈다. 하루치 DAU 하나로 나누면 그날이 일요일인지 월요일인지에 따라 숫자가 출렁인다.
North Star. Amplitude 의 North Star Metric 글은 좋은 North Star 의 조건으로 고객이 실제로 얻는 가치와 맞닿을 것, 제품 전략을 드러낼 것, 매출보다 앞서 움직이는(leading) 지표일 것을 꼽고, DAU 나 가입자 수 같은 허영 지표(vanity metric)와 월 매출 같은 후행 지표를 피하라고 적는다. 팀 문서 도구라면 "문서를 만든 사람" 보다 "문서를 다른 사람과 공유한 사람" 이 가치에 가깝다 — 협업 도구의 가치는 두 번째 사람이 들어왔을 때 생긴다. 그래서 이 실습은 '주간 공유 사용자(그 주에 share_doc 을 한 번 이상 한 사람)' 를 North Star 후보로 계산한다. 이것이 정답이라는 뜻은 아니다. 후보를 정하고, 같은 데이터에서 다른 활성 정의와 무엇이 다르게 움직이는지 보는 것이 목적이다.
활성화(activation). 가입한 사람이 가치를 처음 맛보는 순간을 정해 두고, 가입 뒤 일정 시간 안에 그 순간에 도달한 비율을 잰다. 이 실습은 "가입 시각부터 7×24시간 안에 create_doc" 이다. 달력 날짜로 7일을 세면 밤 11시에 가입한 사람은 하루를 덜 받는다 — 시각으로 센다.
현장에서 만나는 모습
- 투자자에게 보낸 MAU 와 내부 대시보드의 MAU 가 다르다. 한쪽은 내부 계정을 뺐고 한쪽은 안 뺐다. 정의 문서가 없으니 어느 쪽이 맞는지 아무도 모른다.
- 한국 서비스인데 분석 도구의 기본 시간대가 UTC 라서, 자정~오전 9시 활동이 전날로 들어간다. 요일별 패턴이 한 칸씩 밀려 보인다.
- 푸시 알림을 대량으로 보낸 주에 DAU 가 뛴다. '아무 사건' 을 활성으로 쳤기 때문이다. 알림은 가치가 아니라 비용이다.
아래 예시 숫자는 이 실습 재료로 계산한 것이며 일반적인 기준값이 아니다. 같은 날의 DAU 도 내부 계정을 넣느냐, 어떤 사건을 세느냐에 따라 몇십 퍼센트씩 달라진다 — 실습에서 직접 비교한다.
다음 실습에서 할 것
'모아노트' 의 16주치 기록으로 DAU·WAU·MAU·스티키니스를 함수로 만들고, 내부 계정을 넣었을 때와 활성의 정의를 바꿨을 때 숫자가 얼마나 흔들리는지 잰다. 마지막으로 주간 공유 사용자와 7일 활성화율을 계산해 한 장의 보고서로 묶는다. 채점기는 여러분의 함수를 다른 시드로 만든 기록에도 다시 돌려, 숫자를 외워 적은 것이 아닌지 확인한다.