내가 배달 서비스 데이터 분석가 라면, 어떻게 로그를 설계할까?

h-go-getter·2023년 6월 18일
3
post-thumbnail

👀 1. 들어가며

1.1. 상황

데이터 기반 제품/서비스 개발 프로세스 경험을 채우고 싶어, 변성윤(카일)님의 PM을 위한 데이터 리터러시 강의를 듣고 있습니다. 강의에서 주어진 '지표 정의 연습'문제를 푼 경험도 배달 서비스 지표 선정해보기로 소개드렸는데요.

'지표 정의' 연습 문제에 이어서, '로그 설계' 연습 문제도 풀어봤습니다. '배달 서비스 데이터 분석가' 입장에서 풀었던 '지표 정의' 연습문제를 기반으로 '데이터 로그 설계' 문제를 푼 과정을 소개합니다!

1.2. 예상독자

  • 배달 서비스 지표 선정해보기를 읽고, 지표를 보기 위해, 필요한 데이터는 어떻게 저장되어야 할지 궁금하셨던 분
  • PM을 위한 데이터 리터러시 강의를 듣고 있는데, 자신이 한 로그 설계와 비교 해보고 싶으신 분
  • PM이나 데이터분석가로 재직 중인데 로그 설계가 궁금하신 분

🍔🛵 2. 배달서비스 로그 설계해보기

강의에서 성윤님은 '데이터 로그 설계에 대한 내용을 공통적으로 저장하는 문서'의 필요성에 대해 강조하시며, Google SpreadSheet로 직접 사용하시는 Traking Plan 양식을 공유해주셨습니다.

Tracking Plan은 데이터 로그 설계에 대한 내용을 공통적으로 저장하는 문서입니다. 데이터 로그 설계 시 잘 기록하여, 새로운 사람이 와도 잘 확인 할 수 있도록 작성 되어야합니다. 이 문서를 보며 어떤 Event와 Parameter가 있는지 확인하기 때문에 항상 최신화 상태로 유지되어야 합니다.

성윤님이 소개해주신 Tracking Plan 양식 중, 지표에서 필요한 Event를 정의하는 시트의 일부를 소개합니다. 이 시트에 맞게 '로그 설계' 문제를 풀어봤습니다!

  • topic : 어떤 주제인지?
    • 내부에 여러 서비스가 있다면 서비스별로 나눠도 괜찮고, 큰 퍼널로 나눠도 괜찮음
  • event_name : 발생한 행위를 어떤 이름으로 로깅할지?
    • 동사로 시작하기, (행위)_(구성요소)로 작성하기 등 구체적인 가이드를 정하는게 좋음
  • event_parameter : event를 실행 할 당시 어떤 구체적인 정보를 남길지?
    • '장바구니 담기' 버튼을 클릭할 때, '제품 id'나 '제품 카테고리 정보'같은 'event_parameter'를 남길 수 있음, '단순히 클릭했다'가 아니라 '어떤 옷을 클릭했다'가 기록되면 더 풍부한 분석이 가능
  • value : 어떤 값이 들어가는지 작성
    • 고정적으로 들어가는 경우도 있고, 변수로 들어가는 경우도 있음 (변수의 경우 {food_id}로 표현)
  • trigger : 어느 시점에서 발생할지?
    • 클릭할 경우 로깅할 것인지, 화면에 진입 할 경우 로깅할지 실행 시점을 작성
  • description : 목적과 설명을 작성

2.1. Home 화면의 기능이 잘 동작하고 있는지 확인하려면?

① Home 화면 기능이 잘 사용된다(활성화)를 정의해보자, Home 화면 기능이 잘 사용되면 어떤 지표 상승이 이뤄질까?

  • 고객이 많이 사용 해야 한다. → 클릭율(CTR)
    • 분자 : 해당 기능 클릭 수 (CLICK)
    • 분모 : Home화면에 진입한 수 (VIEW)
  • 고객이 기능을 만든 의도대로 사용한다. 즉 결제로 많이 전환되야 한다. → 구매 전환율(CVR)
    • 분자 : 해당 기능을 통해 주문 완료 페이지에 진입한 수 (VIEW)
    • 분모 : 해당 기능 클릭 수 (CLICK)

② 위 지표를 보기 위해 데이터 로그 설계를 한다면 어떻게 할 수 있을까?

③ 저장되는 데이터 형태를 상상해 보고 지표를 계산해보자!

이 경우, '동네 맛집 기능'의 클릭율(CTR)구매 전환율(CVR)을 계산해볼까요?

  • '동네 맛집 기능'의 클릭율(CTR)
    → 해당 기능 클릭 수 / Home화면에 진입한 수
    → COUNTIF(event_name = 'click_recommend_restaurant')/ COUNTIF(event_name = 'view_home')
    → 2/3

  • '동네 맛집 기능'의 구매 전환율(CVR)
    → 해당 기능을 통해 주문 완료 페이지에 진입한 수 / 해당 기능 클릭 수
    → COUNTIF(event_name = 'view_payment_completion' AND use_home_feature = 'recommend_restaurant')/ COUNTIF(event_name = 'click_recommend_restaurant')
    → 1/2

2.2. 고객이 검색 기능에 만족했는지 확인하려면 어떤 지표를 봐야 할까?

① 검색 기능이 잘 사용된다(활성화)를 정의해보자, 검색 기능이 잘 사용되면 어떤 지표 상승이 이뤄질까?

  • 검색이 많이 일어날 것이다.
    검색 수
    검색 이용자 수 대비 검색 수
  • 검색을 통한 구매 전환율이 높을 것이다.
    검색을 통한 구매 전환율
    • 분자 : 검색 기능을 통해 주문 완료 페이지에 진입한 수
    • 분모 : 검색 이용자 수

② 위 지표를 보기 위해 데이터 로그 설계를 한다면 어떻게 할 수 있을까?

③ 저장되는 데이터 형태를 상상해 보고 지표를 계산해보자!

이 경우, 검색 수검색 이용자 수 대비 검색 수 그리고 검색을 통한 구매 전환율 을 계산해볼까요?

  • 검색 수
    → COUNTIF(event_name = 'click_search' OR event_name = 'click_recent_keyword' OR event_name = 'click_hot_keyword')
    → 3
  • 검색 이용자 수 대비 검색 수
    → 검색 수 / 검색 이용자 수
    → 검색이용자 수는 WHERE event_name = 'click_search' OR event_name = 'click_recent_keyword' OR event_name = 'click_hot_keyword'인 COUNT(DISTINCT user_id)를 계산
    → 3/2
  • 검색을 통한 구매 전환율
    → 검색 기능을 통해 주문 완료 페이지에 진입한 수 / 검색 수
    → 검색 기능을 통해 주문 완료 페이지에 진입한 수는 COUNTIF(event_name = 'view_payment_completion' AND is_use_search = TRUE)
    → 1/3

2.3. 검색 필터 기능의 활성화 지표를 정의하면 어떻게 할 수 있을까?

① 검색 필터 기능이 잘 사용된다(활성화)를 정의해보자, 검색 필터 기능이 잘 사용되면 어떤 지표 상승이 이뤄질까?

  • 고객이 많이 사용 해야 한다. → 검색 필터 클릭율
    • 분자 : 검색 필터 클릭 수 (CLICK)
    • 분모 : search_result 화면에 진입한 수 (VIEW)
  • 검색 필터를 사용한 고객이 결정에 도움을 받아 구매를 한다.→ 검색 필터 사용시 구매 전환율
    • 분자 : 해당 기능을 통해 주문 완료 페이지에 진입한 수 (VIEW)
    • 분모 : 검색 필터 클릭 수 (CLICK)

② 위 지표를 보기 위해 데이터 로그 설계를 한다면 어떻게 할 수 있을까?

③ 저장되는 데이터 형태를 상상해 보고 지표를 계산해보자!

이 경우, 검색 필터 클릭율검색 필터 사용시 구매 전환율 을 계산해볼까요?

  • 검색 필터 클릭율
    → 검색 필터 클릭 수 / search_result 화면에 진입한 수
    → COUNTIF(event_name = 'click_filter') / COUNTIF(event_name = 'view_search_result')
    → 3/5

  • 검색 필터 사용시 구매 전환율
    → 해당 기능을 통해 주문 완료 페이지에 진입한 수 / 검색 필터 클릭 수
    → 검색 필터 기능을 통해 주문 완료 페이지에 진입한 수는 COUNTIF(event_name = 'view_payment_completion' AND is_use_search_filter = TRUE)
    → 1/3


🙌 3. 정리하며

강의에서 성윤님은 '어떤 데이터가 필요한지는 우리가 해결하고자 하는 문제와 지표에 달렸다'고 말씀해주시며, 이 지표를 보기 위해 필요한 데이터는 있는지? 없다면 어떻게 저장되어야 하는지? 관점에서 로그 설계를 해보라고 추천해주셨어요.

확실히 '지표 정의'연습 문제를 기반으로, '로그 설계'를 해보니 어렵게 느껴지던 로그 설계에 친근하게 접근할 수 있었고 많이 고민하던 문제와 지표였기에 재밌게 풀 수 있었던 것 같아요!

'로그 설계'를 어떤 방식으로든 많이 시도해보고 연습해봐야겠다는 생각이 들었습니다! 데이터 기반 의사결정을 위해선 데이터를 잘 로깅하는 것이 중요하고, 아무리 지표를 잘 정의해도 잘못 로깅된 데이터로 지표를 계산하면 말짱 도루묵이니까요!

좋아하는 서비스를 가지고, 로그 설계를 해봐도 큰 도움 될 것 같습니다!


📑 참고 자료

profile
말보다는 행동, 일단 해보고 있는 Business Analyst입니다. 🌠시리즈 탭을 클릭하시면 분류 별로 글을 보실 수 있습니다!

0개의 댓글