02 사용자 행동 모니터링 환경 구축 - woowacourse-teams/2026-jachwi-sunbae GitHub Wiki

개요

"우리는 뭘 개선해야 하죠?"서비스를 배포하긴 했는데, 사용자가 어디를 눌렀는지, 어떤 기능을 자주 쓰는지 알 수 있는 방법이 없다. 잘 쓰일 거라 생각했던 기능은 아무도 안 쓰고, 중요하지 않다고 여겼던 버튼에서 피드백이 오기도 한다.무엇을 개선해야 할지 논의할 때마다 팀원마다 가설이 다르고 정답을 확인할 수 있는 데이터는 없어 결론을 내리기 어렵다. 뭘 먼저 개선해야 할지 우선순위를 어떻게 잡아야 할까?

완료 조건

  • 배포한 서비스에서 사용자 행동 데이터를 수집할 수 있는 로그 모니터링 환경이 구축되어 있어야 한다.
  • 페이지 방문, 주요 버튼 클릭, 특정 기능 사용 여부 등 핵심 사용자 지표를 수집하고 확인할 수 있다.

기술 역량 목표

  • 사용자 행동 데이터를 기반으로 기능 개선이나 추가의 근거를 도출할 수 있다.
  • 이를 위해 GA(Google Analytics), Amplitude 등 사용자 행동 분석 도구를 자율적으로 선택하고 연동할 수 있다.
  • 페이지 방문, 버튼 클릭, 임프레션(View) 등 주요 이벤트를 정의하고, 수집된 데이터를 확인할 수 있다.

링크

자취선배 사용자 행동 모니터링 대시보드

PostHog를 선택한 이유

PostHog는 사용자 행동 분석, 세션 리플레이, 퍼널 분석, 에러 트래킹을 하나의 도구에서 제공합니다.

정밀한 데이터 분석을 위해선 세션 리플레이가 필요했기 때문에 센트리대신 아래의 기능들을 제공하는 PostHog를 사용하게 되었습니다

  • Product Analytics: 이벤트와 사용자 행동 분석
  • Session Replay: 사용자의 화면 이동 및 행동 흐름 확인
  • Funnels: 특정 기능의 단계별 전환율 분석
  • Error Tracking: 프론트엔드 예외와 오류 위치 확인
  • Dashboards: 주요 지표를 한 화면에서 모니터링

수집하는 주요 이벤트

저희는 크게 두 가지 이벤트를 주요 이벤트로 삼았는데요, 첫 째는 로그인 전환 두 번째는 매물 등록 이벤트입니다.

매물 등록 이벤트는 일어나지 않는다면 다른 기능까지 사용하지 못하는 핵심 기능이라 판단했고 로그인은 그 핵심 기능을 만나기 전까지의 유일한 장벽이라 생각해서 두 이벤트를 확인하게 되었습니다.

핵심 지표

그래서 매물 등록 이벤트(property_created) 를 핵심 지표로 삼았고, 단순히 매물 등록만 확인하는 것이 아닌 재등록을 기준으로 삼았습니다.

  • 활성 이벤트: property_created
  • 활성 사용자: 해당 이벤트를 발생시킨 고유 사용자
  • 주간 활성 사용자: 일주일 동안 property_created를 발생시킨 고유 사용자 수
  • 주요 지표: WAU

서비스의 사용 목적이 매일 반복되기보다는 매물 탐색과 등록이 필요할 때 집중적으로 발생한다고 판단해 DAU보다 WAU를 중심으로 관찰하고 있습니다.

리텐션 정의

리텐션은 첫 매물 등록 이후 사용자가 다시 매물을 등록하는지를 기준으로 측정합니다.

  • 코호트 기준 이벤트: property_created
  • 재방문 기준 이벤트: property_created
  • 측정 단위: 주간
  • 확인 지표: W1, W2, W4 리텐션

특정 주에 처음 매물을 등록한 사용자 중 이후 1주, 2주, 4주 뒤에도 다시 매물을 등록한 사용자의 비율을 확인합니다.

로그인 퍼널

단계 이벤트 설명
1 login_page_viewed 로그인 페이지 진입
2 login_started 로그인 요청 시작
3 login_succeeded 로그인 성공
4 login_failed 로그인 실패

위 처럼 페이지 접속 - 로그인 과정을 기록하게 했고 어디서 가장 이탈이 많이 일어나는 지 측정하였습니다.

매물 등록 퍼널

단계 이벤트 설명
1 property_creation_started 매물 등록 시작
2 property_creation_deposit_completed 보증금 입력 완료
3 property_creation_monthly_rent_completed 월세 입력 완료
4 property_creation_address_completed 주소 입력 완료
5 property_creation_name_completed 매물 이름 입력 완료
6 property_creation_submitted 매물 등록 요청
7 property_created 매물 등록 성공

매물 등록 과정에서도 각 항목별로 이벤트를 수집해 사용자가 어디 구간에서 어려움을 겪는 지 파악하고 개선점을 찾기 위한 모니터링을 했습니다.

사용자 식별 기준

비로그인 사용자는 브라우저에 저장된 식별자로 파악하여 같은 세션이 유지되는 동안에선 비로그인 상태 - 로그인 과정을 하나로 통합하여 같은 사용자로 판단했습니다.

로그인 이후에는 회원 ID로 사용자를 식별했습니다.

비로그인 사용자: 익명 distinct_id
로그인 사용자: member-{memberId}
  • 사용자가 비로그인상태에서 로그인 하는 하나의 세션 리플레이

https://github.com/user-attachments/assets/b3186211-1cc5-4156-a8f4-4db4f207c237

이를 통해 비로그인 상태에서 사용자가 기능을 체험한 뒤 로그인하는 전환 흐름을 분석할 수 있었습니다.

환경 구분

개발 환경과 운영 환경

environment = development
environment = production

처음에는 운영환경의 데이터만 받아오려 했으나, posthog의 변경 때마다 릴리즈 할 수 없으니 dev까지 데이터를 받게 되었습니다.
위와 같은 필터를 통해 dev에서 받아온 데이터인지, 운영환경에서 일어난 데이터인지 구분 할 수 있었습니다.

웹, ios, android 환경

가설 검증을 위해 웹, ios 웹뷰 , 안드로이드 환경 등(User-Agent로 구분) 확인하여 어느 곳에서 수요가 발생하고 에러가 생기는 지 확인하도록 했습니다.

데이터는 수집중이며 보라색 선은 웹뷰를 도입하기 전의 웹 상태입니다.