DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
Read Original

Contents

Continue Reading

  • More from 당근
  • Related reads#dbt
#Backend

Activation을 전사 공통 레이어로 만들며 해결한 3가지: 신뢰성, 비용, 생산성

Activation을 전사 공통 레이어로 만들며 해결한 3가지: 신뢰성, 비용, 생산성
01

Summary

"단순 AU는 이제 그만!" 당근이 사용자를 쪼개서 분석하는 비결, Activation 공통 레이어

데이터 신뢰성과 운영 비용, 개발 생산성을 모두 잡은 당근 데이터 가치화팀의 데이터 모델링 여정

당근은 사용자 지표 분석의 한계를 극복하기 위해 단순히 '얼마나 방문했나'를 넘어 '어떤 상태로 전이되었나'를 추적하는 전사 공통 레이어를 구축했습니다. dbt 매크로와 스냅샷 기반의 3단계 모델링을 통해 복잡한 쿼리 없이도 고차원적인 활성 유저 분석이 가능해졌으며, 이를 통해 서비스 성장 원인을 정교하게 파악하고 마케팅 성과를 극대화하는 성과를 거두었습니다.

  • 01사용자를 신규/유지/복귀/이탈로 세분화하여 분석하는 User Activation 관점 도입
  • 02데이터 스캔량을 최소화하기 위해 '날짜별 스냅샷' 방식을 채택한 FirstLast 모델 설계
  • 03dbt 매크로를 활용해 SQL 작성 없이도 표준화된 활성 지표 모델을 생성하는 생산성 혁신
  • 04유지 유저 내에서도 '신규 정착'과 '핵심 유지'를 구분하는 전이 세그먼트 분석 구현
  • 05LLM 분석 에이전트와 연동하여 구성원 누구나 지표의 의미를 대화로 파악하는 환경 구축

+RECOMMENDATION

서비스 성장의 핵심 동력을 단순 수치가 아닌 유저 흐름 관점에서 정교하게 파악하고 싶은 데이터 분석가와, 비효율적인 반복 쿼리 작업을 시스템적으로 표준화하려는 데이터 엔지니어에게 추천합니다.

The Problem

기존에는 팀마다 활성 사용자(Active User) 지표를 각자 정의하고 쿼리로 직접 계산하면서 데이터의 신뢰성이 낮았고, 지표 산출을 위해 매번 전체 기간을 스캔해야 하는 막대한 연산 비용과 복잡한 SQL 작성에 따른 생산성 저하 문제가 있었습니다.

The Solution

dbt를 활용해 'FirstLast(최초/직전 활동 스냅샷)', 'Activation(활성 상태)', 'Activation Status(전이 및 비활성 포함)'로 구성된 3단계 공통 데이터 레이어를 구축하고, 복잡한 로직을 dbt 매크로로 캡슐화하여 설정만으로 모델을 생성할 수 있게 했습니다.

The Result

데이터 스캔 범위를 하루치로 고정하여 비용을 절감하고 백필 성능을 개선했으며, 전사 공통의 '활성 상태' 및 '전이 세그먼트' 지표를 통해 서비스 성장의 원인을 정교하게 파악하고 CRM 마케팅 타겟팅에 활용하는 성과를 거두었습니다.

Trade-off

날짜별 스냅샷 방식으로 데이터를 누적함에 따라 저장 공간 사용량이 점진적으로 증가하며, 특정 시점의 데이터 오류가 이후 날짜의 결과값에 영향을 줄 수 있어 정교한 품질 모니터링과 파티션 단위의 재적재 운영이 필요합니다.

03

Key Concepts

Concept · 01

User Activation

사용자의 활동을 단순 방문 여부가 아닌 신규, 유지, 복귀, 이탈 등의 활성 상태와 그 사이의 전이 과정으로 해석하는 분석 프레임워크입니다.

  • 활성 상태와 상태 전이를 함께 분석하여 성장의 질적 원인 파악
  • 유저를 활동성 수준별 세그먼트로 세분화하여 맞춤형 액션 도출
  • 리텐션 변화의 구체적인 경로(어디서 오고 어디로 가는지) 진단
Concept · 02

dbt Macro

dbt에서 반복되는 SQL 로직을 함수처럼 캡슐화하여 재사용할 수 있게 만드는 기능입니다.

  • 복잡한 활성 상태 계산 로직을 표준화하여 SQL 작성 부담 제거
  • fact_name 지정만으로 3단계 Activation 모델을 자동 생성
  • 전사적으로 일관된 지표 정의 및 유지보수 효율성 증대
Concept · 03

Transition Segment

사용자가 직전 기간의 상태에서 현재 상태로 어떻게 변화했는지를 나타내는 세밀한 분석 지표입니다.

  • 같은 '유지' 유저 내에서도 신규 정착인지 핵심 유지인지 구분
  • 이탈 유저를 핵심 유저 이탈과 복귀 실패 등으로 상세 분류
  • 서비스 온보딩 퍼널 및 초기 유저 경험의 약점 파악에 활용
Concept · 04

Daily Snapshot (FirstLast)

유저별 최초 활동일과 마지막 활동일을 날짜별로 기록하여 누적하는 중간 데이터 모델입니다.

  • 매일 전체 데이터를 스캔하지 않고 전날 스냅샷을 이어받아 업데이트
  • 계산 비용 절감 및 대규모 데이터 백필 성능 최적화
  • 복귀 간격 및 이탈 기간 계산을 위한 기준 데이터 제공
Continue reading · same source

당근More from 당근

View all posts from 당근
  • 혼자 시작해 전국 오픈까지, 당근 레슨/과외 빌딩 로그

    MarketplaceProduct Market FitFunnel Optimization
    2주 전
  • 디자인시스템 팀은 디자인시스템만 잘 만들면 될까

    Design SystemAI in DesignUX Patterns
    1개월 전
  • 당근 200+개 DB 를 옮기는 ELT 플랫폼, DT Platform 을 만든 이야기

    ELTApache SparkApache Airflow
    1개월 전
  • 누구나 찾아볼 수 있는 중고거래 서버 LLM 릴리즈 노트 도입기

    LLMGitHub ActionsNotion
    2개월 전
  • How We Protect Karrot’s Internal PyPI Proxy from Supply Chain Attacks

    PyPIAWS CodeArtifactSecurity Cooldown
    2개월 전

Related reads#dbt

Explore #dbt
당근

Standardizing User Activation: How We Built a Shared Data Layer at Karrot

#dbt6개월 전

Source

당근
당근
Engineering Blog

Published · January 2, 2026

Topics

dbtData ModelingActive UserActivationData LayerSQL MacroData Analytics Engineering