올해 초 그로스 스쿼드에 합류하면서 전달받은 스쿼드의 미션은 단 한 줄이었습니다. 바로 MAU를 상승시키는 것.
분석가가 조직에 가장 크게 기여할 수 있는 방향은, 스쿼드원들이 동일한 리소스를 투입했을 때 가장 큰 임팩트를 낼 수 있는 액션이 무엇인지를 데이터로 좁혀주는 일이라고 생각합니다.
이에 그로스 PM과 논의하여, 액션을 본격적으로 기획하기 전에 미션에 영향을 미칠 수 있는 가장 견고한 레버부터 찾기로 했습니다. 바로 전사 최상위 KPI인 MAU의 성장 레버를 데이터로 규명하는 작업이었습니다.
분석은 아래 4단계로 진행되었습니다.
- 연관도 분석: MAU를 얼마나 올려야 매출을 증대시킬 수 있을까
- Cohort 분석: 어떤 세그먼트의 유저를 노려야 할까
- Funnel 분석: 어느 단계를 가장 우선적으로 개선해야 할까
- SHAP 분석: 가장 영향도 큰 레버는 무엇일까
이 글은 “MAU를 상승시킨다”라는 미션을 위 4단계에 따라 분해해, 단 하나의 견고한 레버에 도달한 과정을 정리한 것입니다.

(*참고로 이 글의 ‘MAU’는 회사가 정의한 핵심 활성 기준에 따라 산출되는 MAU를 의미합니다. 단순 방문이 아닌, 유저가 서비스에서 가치를 만들어냈다고 볼 수 있는 행동을 기준으로 하였습니다.)
1. 연관도 분석: MAU를 얼마나 올려야 매출을 증대시킬 수 있을까
MAU를 올리는 이유는 결국 매출 증대에 있습니다. 따라서 MAU와 매출 사이에 유의미한 상관성이 실제로 존재하는지부터 확인하는 것이 출발점이었습니다. 우리 서비스의 MAU는 단순 방문이 아닌 가치 행동 기반으로 정의되어 있는 만큼, 그 정의가 매출 가치까지 반영하는지를 점검할 필요가 있었습니다. 이미 형성된 미션일지라도, 최상위 미션과의 연관성이 작다면 정의 자체가 수정될 필요가 있기 때문입니다.
1년치 MAU와 일 구독 매출 데이터를 바탕으로 회귀분석을 진행했습니다. 결과는 통계적으로 유의했고, 추정치의 방향과 크기는 안정적이어서 의사결정의 근거로 합리적이라고 판단했습니다. p-value, R², 신뢰구간 등 분석의 신뢰도를 점검하는 보조 지표들도 함께 확인했습니다.
추가적으로 한 가지 질문을 더 검토했는데요,
“MAU를 단순히 N명 올리는 게 아니라, ‘어떤 세그먼트의 유저가’ 올라가느냐에 따라 매출 임팩트가 달라지지 않을까?”
미리캔버스의 유저를 여러 세그먼트로 분류하여 (이 글에서는 편의상 A, B, C, D … 로 표기합니다) 세그먼트별로 결제율과 ARPU를 분석했더니, 격차가 뚜렷했습니다. 어떤 세그먼트는 결제율과 ARPU 모두 두드러지게 높았고, 회귀로 추정한 MAU 1명당 월 ARPU는 그 중 매출 기여가 가장 작은 세그먼트의 ARPU와 거의 일치했습니다.

즉, MAU가 변동할 때 실제로 늘고 줄어든 것은 대부분 매출 기여가 가장 작은 세그먼트였습니다. 매출 임팩트가 가장 작은 세그먼트가 MAU 변동의 대부분을 만들고 있었다는 이 발견이, 이후 분석 전체의 출발점이 되었습니다.
MAU를 ‘얼마나’ 올리느냐만큼, ‘누구를’ 올리느냐가 매출 증분 관점에서 중요합니다.
2. Cohort 분석: 어떤 세그먼트의 유저를 노려야 할까
이 질문에 답하기 위해서는 MAU가 무엇으로 구성되어 있는지부터 파악해야 했습니다. 분석의 핵심 관점은 MAU의 절대 규모(Stock)와 그 안의 유입·이탈 흐름(Flow)을 함께 보는 것이었는데요. 같은 규모의 MAU라도 그 안의 New / Retained / Returned 비율과 변동폭이 어떻게 다른지를 알아야 “누구를 노려야 할지”의 답이 도출되기 때문입니다. 이를 위해 MAU를 다음 3개 코호트로 분해했습니다.
- New: 가입 후 처음으로 활성된 유저
- Retained: 전월에도 활성이었던 유저
- Returned: 그 이전엔 활성 이력이 있으나 직전 달은 비활성이었다가 다시 활성으로 돌아온 유저
월별 트렌드를 살펴보니 한 가지 패턴이 명확하게 드러났습니다. Retained가 항상 절대 다수이고, 변동폭도 가장 크다는 것입니다. 이는 서비스가 탄탄하게 성장해왔다는 증거이기도 했습니다. 월별 증감은 사실상 Retained의 증감으로 설명되었으며, New는 비율로는 작지만 특정 시즌에 폭발적으로 급증하는 양상을 보였습니다. 비수기에는 세 코호트 모두 감소하는 가운데, Retained의 이탈이 전체 급감을 만들어내는 구조였습니다.

이 분석을 바탕으로 아래 두 가지 전략 방향은 지양하는 것이 적절하다고 판단했습니다.
첫째, New를 상시 전략의 중심에 두는 것. New는 비중도 작고, 유입량이 마케팅과 시즌에 의존하므로 프로덕트 레버로 흔들기 어렵습니다. 따라서 New가 폭발하는 시즌에 전환율에 집중하는 일시 전략이 더 효율적입니다.
둘째, Returned를 주 타겟으로 삼는 것. Returned를 늘리려면 먼저 이탈시킨 후 복귀시켜야 한다는 역설이 따라옵니다. ‘이탈하지 않게 한다’는 관점의 Retained 유지가 선행되어야 합니다.
즉, 상시 전략의 무게중심은 Retained 유지에 두고, 시즌이나 환경 변화에 따라 New 전환에 단기적으로 베팅하거나 Retained 이탈 방어에 집중하는 보조 전략을 운영하는 구조가 바람직합니다.
3. Funnel 분석: 어느 단계를 가장 우선적으로 개선해야 할까
활성에 도달하기까지의 사용자 여정을 단계별 퍼널로 분석하고, 신규 유저와 기존 유저로 나누어 각 단계의 전환율을 비교했습니다. 이 과정에서 한 가지 패턴이 명확하게 드러났는데요. 초반 단계에서는 신규/기존 유저의 격차가 작았으나, 뒷단계로 갈수록 격차가 점점 벌어졌고, 마지막 단계에서 정점을 찍었다는 것입니다. 누적 기준으로 신규 유저의 최종 전환율은 기존 유저에 비해 현저히 낮았습니다.

한 발 더 들어가, 활성 여부별로 유저들의 행동 분포를 분석했는데요. 미활성 집단을 살펴보니 주목할 만한 결과가 도출되었습니다. 단순히 서비스를 시작조차 하지 않은 유저가 아니라, 서비스 사용을 시작했으나 체류 시간이 짧게 끝나버린 유저의 분포가 인상적이었습니다. 즉, 진입 자체보다 체류의 깊이가 문제라는 신호였습니다.
체류 시간 구간별로 활성 전환율을 분석한 결과, 초반의 짧은 구간에서 전환율 기울기가 가장 가파르게 뛰었고, 그 이후로는 완만한 단조 증가로 이어졌습니다. 짧은 체류로 이탈하는 유저를 일정 임계 시간 이상으로 유도할 수 있다면, 그 한 구간 이동만으로 활성 전환율이 크게 향상될 수 있다는 의미였습니다.

우선적으로 개선해야 할 행동은 ‘체류의 깊이’이며, 그 중에서도 초입의 짧은 구간을 임계 시간 이상으로 끌어올리는 것이 가장 큰 기회 구간입니다. 다만 ‘체류의 깊이’는 추상적인 표현으로, 이를 측정할 수 있는 정량 지표의 정의가 후속 과제로 남았습니다. 측정할 수 없다면 관리할 수 없기 때문입니다.
4. SHAP 분석: 가장 영향도 큰 레버는 무엇일까
활성 여부를 예측하는 분류 모델에 20여 개의 유저 행동 피처를 입력하고, SHAP feature importance로 어떤 행동이 활성을 가장 강하게 설명하는지 분석했습니다. 이번 섹션의 핵심은 단순히 SHAP 결과를 도출하는 것이 아니라, 결론을 그대로 받아들이지 않고 두 번 더 검증하게 만든 사고의 흐름을 정리하는 데 있었습니다.
SHAP, 그 자체로는 인과 도구가 아니다
SHAP은 “머신러닝 모델이 예측을 내릴 때 각 피처가 얼마나 기여했는가”를 게임 이론(Shapley value) 기반으로 분배해 보여주는 방법론입니다. 어떤 피처가 모델 예측에 가장 큰 영향을 주는지 파악할 때 널리 활용되는 도구인데요.
분석 과정에서 주의해야 할 점은, 이 결과를 “모델 예측에 기여하는 피처”가 아닌 “실제로 결과를 만드는 원인”으로 오해하는 경우입니다. 이는 데이터 관련 아티클에서 자주 강조되는 사항이기도 합니다.
SHAP은 ‘어떤 변수가 모델 예측에 기여하는지’를 설명할 뿐, 인과관계를 검증하는 도구가 아닙니다.
SHAP feature importance 1위가 곧 ‘그 행동을 늘리면 결과가 늘어난다’를 보장하지 않습니다. 이 간극을 메우기 위해 아래 세 가지 유의점을 추가로 검토하였습니다.
| 유의점 | 핵심 위험 | 검증 도구 |
| 다중공선성 | 같은 개념의 컬럼 다수 → 기여도 분산 | Permutation Importance, 그룹 셔플 |
| 동시성 상관 | 같은 시점 행동·결과 → 자명한 상관 | 시간 분리 모델 (t-1 → t) |
| 셀렉션 바이어스 | 관찰 가능 변수만으로는 완전 통제 불가 | PSM (Propensity Score Matching) |
[유의점 1] 다중공선성: 같은 개념이 여러 컬럼으로 분리되어 있을 때
서로 강하게 상관된 피처들이 함께 입력되면, SHAP 기여도가 해당 피처들 사이에 분산 배분됩니다. 이 경우 개별 피처의 순위는 다중공선성에 좌우되어 왜곡될 수 있습니다. 실제 데이터에서도 하나의 개념이 여러 컬럼으로 분리된 구조가 존재했고, SHAP 결과는 그 영향을 받고 있었습니다.

이를 검증하기 위해 Permutation Importance로 교차 검증하고, 상관 그룹 단위로 동시에 셔플하여 그룹 단위의 실제 기여도를 측정했습니다. 그 결과, 상관이 강한 컬럼들이 단일 construct로 묶인다는 것을 확인할 수 있었습니다. 같은 construct 안에서 특정 컬럼의 순위를 단정 짓는 것은 다중공선성 함정에 빠질 위험이 있는 작업이었습니다.
[유의점 2] 동시성 상관: ‘같은 달에 일어난 일’은 인과의 증거가 아니다
또 다른 검토 사항은 모델이 동시성 상관(simultaneous correlation)을 학습한 결과를 인과로 오해하는 것입니다. “이번 달에 오래 체류한 사용자가 이번 달에 활성된다”는 사실상 자명한 진술입니다. 같은 달에 활발한 유저는 모든 행동이 동시에 많을 수밖에 없기 때문입니다.
이를 걸러내기 위해 시간 분리 모델을 적용했습니다. 이전 달(t-1)의 행동만으로 다음 달(t)의 결과를 예측하도록 데이터를 분리하여 학습시키는 방식입니다.

이렇게 시간을 분리하면, 당월에 동시에 발생하여 강하게 보이는 피처의 기여도는 감소하고, 과거 행동이 미래 결과를 실제로 예측하는 피처의 기여도는 유지됩니다.
[유의점 3] 셀렉션 바이어스: 그럼에도 인과를 완벽히 밝혀낼 수는 없다
동시성 상관까지 확인하더라도, 이를 완전한 인과관계라고 단정할 수는 없습니다. ‘A 행동을 한 사람이 B 행동을 한다’와 ‘A 행동을 하면 B 행동까지 하게 된다’ 사이에는 여전히 간극이 존재합니다. 이 간극의 일부는 PSM(Propensity Score Matching) 기법으로 추정해볼 수 있습니다. 관찰 가능한 변수(가입 기간, 유저 유형, 과거 활동 이력 등)로 Treatment와 Control을 매칭한 뒤, 매칭 전후의 격차 변화를 비교하는 방식입니다. 다만 사용 목적·역량 같은 비관측 교란변수는 통제가 불가하므로, 이를 인과 효과로 직접 해석하기는 어렵습니다.
만약 SHAP 분석까지만 진행한 뒤 SHAP score가 가장 높은 행동 피처를 핵심 레버라고 주장했다면, 이후 액션을 실행했음에도 MAU가 움직이지 않았을 수 있습니다. 인과성을 밝히기 위한 검증을 한 단계 더 거치면서 액션 방향이 수정되었습니다.
마치며
이 분석의 결론은 한 줄로 요약됩니다. MAU의 가장 견고한 행동 레버를 발견했고, 이를 기반으로 액션들의 우선순위를 정해 설계해 나가게 되었다는 것입니다.
스쿼드의 최종 분석은 “N개월간 레버 기반 여러 액션들로 인해 MAU가 최종적으로 n% 상승하였다”가 되어야 합니다. 그런 점에서 이 분석은 끝이 아니라 시작입니다. 그러나 스쿼드 모두가 납득하는 하나의 기준이 수립되었다는 것, 그것이 이 분석이 제공하는 가장 큰 가치일 것입니다.
*해당 글은 미리디 회사 블로그에도 기고되었습니다.
'데이터' 카테고리의 다른 글
| 데이터로 미래를 설계하기: 시뮬레이션 분석(Simulation Analysis) (0) | 2025.10.19 |
|---|---|
| [Dakerton] 어떤 광고가 효과적일까? 데이터로 풀어보는 Attribution Model (0) | 2025.03.02 |
| [Dakerton] 데이터에서 숨은 패턴을 찾다: Apriori 알고리즘을 활용한 연관분석 (2) | 2025.02.02 |
| CQGR로 우리 서비스의 성장률 측정하기 (1) | 2025.01.26 |
| Databricks에서 원하는 조건의 순서에 맞게 배열 정렬하기 (1) | 2025.01.12 |