DW 유저 상태 Fact 모델링: 활동한 날만 저장하는 Activation 모델
이 글은 유저 상태 스냅샷 포스트 와 시리즈 개요편 에서 이어지는 내용입니다. 앞선 글을 아직 안 보셨다면 먼저 보고 오셔도 좋습니다.
스냅샷 모델링을 보고 아래와 같은 의문을 가지실 수 있습니다.
- 비활동 유저까지 매일 저장해야 하나요?
NEW / RETAINED / REACTIVATED만 보고 싶은데 더 가벼운 방법은 없나요?- 활동한 날만 저장해도 Activation 분석이 가능한가요?
이 질문에는 활동한 날만 저장하는 Activation 모델 이 답이 될 수 있습니다.
이 모델은 무엇인가
이 방식은 말 그대로 활동이 있었던 날짜만 저장합니다.
예를 들면 이런 식입니다.
| day_dt | user_id | activation_status | prev_active_day | return_interval_days |
|---|---|---|---|---|
| 2025-03-01 | 1001 | NEW | null | null |
| 2025-03-02 | 1001 | RETAINED | 2025-03-01 | 1 |
| 2025-03-10 | 1001 | REACTIVATED | 2025-03-02 | 8 |
핵심은 단순합니다.
- 활동한 날은 row 가 생김
- 활동하지 않은 날은 row 가 생기지 않음
즉 daily snapshot 보다 훨씬 가볍습니다.
장점
- 저장량이 크게 줄어듭니다
NEW / RETAINED / REACTIVATED분석에는 충분한 경우가 많습니다- 마케팅 타겟팅에도 꽤 유용합니다
특히 “활동한 유저를 어떻게 분해해서 볼 것인가”가 관심사라면 이 모델은 실용적입니다.
단점
- 비활동 날짜를 직접 보기는 어렵습니다
2025-03-05 에 이 유저 상태가 뭐였지?같은 질문에는 바로 답이 안 됩니다Inactive상태를 매일 보여주는 분석에는 약합니다
즉 상태를 모두 복원하는 모델이라기보다, 활동 중심 Activation 분석용 모델 에 가깝습니다.
운영에서 특히 조심할 점
이 모델은 활동한 날만 저장하므로, 비활동 구간을 어디까지 암묵적으로 해석할 것인지 기준이 필요합니다.
예를 들어 아래는 미리 정해두는 편이 좋습니다.
REACTIVATED의 기준 휴면일 수- 당일 다중 이벤트를 어떻게 하나의 활동으로 압축할지
- 활동 없는 날짜를 downstream 에서 어떻게 해석할지
즉 저장은 가벼워지지만, 해석 규칙은 더 분명해야 합니다.
언제 잘 맞는가
- 활동 사용자 중심 분석이 중요할 때
- Daily Snapshot 이 너무 무거울 때
NEW / RETAINED / REACTIVATED분해가 핵심일 때
비활동 날짜까지 꼭 관리할 필요가 없다면, 이 모델이 Daily Snapshot보다 훨씬 가볍고 관리하기 쉬운 경우가 많습니다.
참조 링크:
댓글 남기기
댓글 목록
관리자 보기