이번 글은 코드잇 강의를 수강하면서 배운 내용을 주로 하여 정리되어 있습니다. (코드잇 스프린트 데이터 애널리스트 트랙 1기 훈련생)
로그 설계 시작하기
User Property와 Event Property
User Property(유저 프로퍼티)
- 정의:
- User Property는 특정 시점에서의 유저 특성을 나타내는 정보입니다.
- User Property의 종류:
- 서비스용 데이터베이스에 저장된 정보: 나이, 성별, 멤버십 정보 등. 이러한 정보는 서비스 운영에 필수적이며, 별도의 로그 설계가 필요하지 않습니다.
- 로그 설계가 필요한 정보: 시점별로 변화하는 유저 특성 정보(예: 로그인 상태, 유입 채널 등). 이러한 정보는 특정 시점에 기록되어야 하므로 로그 설계가 필요합니다.
- User Property 설계의 특징:
- User Property는 한 번 설계하면 지속적으로 사용되므로, 신규 기능을 기획할 때마다 별도로 설계할 필요는 없습니다.
Event Property(이벤트 프로퍼티)
- 정의:
- Event Property는 유저가 어떤 행동을 했는지를 나타내는 정보로, 분석에 필요한 로그 데이터를 구성하는 핵심 요소입니다.
- 이벤트 로그 설계 시 고려 사항:
- 이벤트(Event) : 어떤 행위에 대한 로그인지 정의합니다.
- 애트리뷰트(Attribute) : 해당 이벤트와 관련된 부가 정보를 정의합니다.
- 트리거(Trigger) : 로그를 언제 기록할지 명확한 기준을 설정합니다. 예를 들어, "상품이 100% 보였을 때 로그를 기록한다"와 같은 명확한 지침이 필요합니다.
이벤트 로그 설계의 중요성
- 이벤트 로그는 유저가 특정 시점에 어떤 행동을 했는지를 기록하는 중요한 데이터입니다.
- 로그 설계 시, 누가(유저 아이디, 디바이스 아이디)와 언제(클라이언트 또는 서버 접근 시각)에 대한 정보는 기본적으로 모든 로그에 포함되므로, 로그 설계 시에는 주로 이벤트, 애트리뷰트, 트리거에 초점을 맞춥니다.
이벤트 로그 설계
자주 사용되는 이벤트 로그 종류
- 페이지 뷰(Page View): 유저가 특정 페이지를 방문했음을 나타내는 로그. "비지트"라고도 불릴 수 있음.
- 클릭(Click): 유저가 특정 요소를 클릭했을 때의 로그.
- 인프레션(Impression) 또는 뷰(View): 유저에게 특정 요소가 노출되었을 때의 로그.
- 기타 이벤트: 서비스 특성에 따라 스와이프, 스크롤, 찜, 장바구니 담기 등의 이벤트도 로깅될 수 있음.
- 이벤트 이름은 회사와 담당자의 재량에 따라 다를 수 있으므로, 보편적인 예시로 이해하면 됨.
이벤트 로그 설계 시 고려사항
- 목적성:
- 로그 설계 시, 해당 데이터가 어떤 지표의 계산에 사용될지 목적을 명확히 해야 함.
- 예를 들어, 상품 클릭률을 분석하려면 상품 노출 로그와 클릭 로그를 설계하고, 각 상품의 할인율을 함께 로깅해야 함.
- 유용성:
- 로그는 실제 분석에 사용되기 위해 설계되는 것이므로, 직관적이고 이해하기 쉬운 이름을 사용해야 함.
- 정보를 복잡하게 뭉쳐서 전송하지 말고, 추출과 가공이 용이한 형태로 정리해야 함.
- 예: 상품 클릭 로그를 "123_프로덕트_클릭"과 같이 복잡하게 기록하지 않도록 유의.
- 전사적 통일성:
- 회사 내에서 로그 명칭과 형식을 통일하여 관리해야 함.
- 로그 이름, 케이스(카멜 케이스 vs 스네이크 케이스), 구분자(언더바 vs 대시) 등 사소한 규칙도 일관되게 설정해야 함.
- 중요한 로그는 전사적으로 가이드라인을 설정하여 필수적으로 로깅하도록 해야 함.
- 예: 상품 클릭 로그는 모든 화면에서 일관되게 기록되어야 함.
전사적인 로그 통일성을 위한 관리 도구
- 트래킹 플랜(Tracking Plan) 또는 이벤트 텍소노미(Event Taxonomy):
- 모든 로그를 통일성 있게 관리하기 위해 필요한 개념으로, 다음 목차에서 더 자세히 다룰 예정.
Tracking Plan으로 설계 내용 기록하기
Tracking Plan의 정의
- Tracking Plan 또는 이벤트 텍소노미(Event Taxonomy)는 전사적인 로그 통일성을 유지하기 위해 로그 설계 내용을 체계적으로 정리해 두는 문서입니다.
- 한국에서는 로그 명세서, 로그 기획서, 이벤트 정의서 등으로 불리기도 합니다.
Tracking Plan의 구성 요소
- 이벤트(Event): 로깅할 이벤트의 이름과 의미를 기록합니다.
- 이벤트 애트리뷰트(Event Attribute): 해당 이벤트와 관련된 부가 정보를 기록합니다.
- 기타 정보: 로그의 배포 및 삭제 정보, 플랫폼 버전 정보, 관련 기획서 또는 디자인 문서 링크 등을 포함할 수 있습니다.
- 공통 정보: 누가(유저 아이디, 디바이스 아이디)와 언제(접근 시각)에 대한 정보는 모든 로그에 공통적으로 들어가므로 별도로 기록하지 않아도 됩니다.
Tracking Plan의 필요성
- 통일성 유지: 회사 내에서 로그의 통일성을 유지하고, 신규 로그 설계 시 기존의 규칙을 따라갈 수 있도록 합니다.
- 분석 용이성: 로그 데이터를 분석하는 모든 사람이 쉽게 데이터를 찾고 이해할 수 있도록 합니다. 이는 업무 효율성을 크게 향상시킵니다.
Tracking Plan 작성 시 유의사항
- 지속적인 업데이트: 신규 기능 출시뿐만 아니라 로깅 데이터에 변화가 생길 때마다 Tracking Plan을 업데이트해야 합니다. 기존 기능의 수정 또는 삭제 시에도 변경 내용을 반영해야 합니다.
- 템플릿 사용: Tracking Plan은 표 형태로 정리하며, 구글 시트나 노션을 사용하여 여러 사람이 함께 편집할 수 있도록 하는 것이 일반적입니다.
Tracking Plan의 최적화
- Tracking Plan의 양식은 회사와 서비스의 특성에 맞게 최적화되어야 하며, 정답은 없습니다.
- 중요한 것은 트래킹 플랜이 전사적인 통일성을 유지하고, 데이터를 쉽게 찾고 사용할 수 있도록 돕는 역할을 충실히 하는 것입니다.
이벤트 로그 설계 과정
1. 목표 설정
- 목적 정의: 로그를 통해 어떤 정보를 얻고자 하는지 명확하게 정의합니다. 예를 들어, 페이지 활용성, 특정 기능의 사용률, 사용자 행동 패턴 등을 파악하려는 목표를 설정합니다.
- 지표 결정: 목표를 달성하기 위해 필요한 핵심 지표(KPI)를 결정합니다. 예를 들어, 페이지 방문자 수, 클릭률, 전환율 등이 될 수 있습니다.
2. 페이지 분석 및 이벤트 식별
- 페이지 구조 분석: 로그를 설계할 페이지의 구조를 분석합니다. 페이지 내 주요 섹션(예: 상단 메뉴, 배너, 콘텐츠 영역 등)을 파악합니다.
- 이벤트 식별: 사용자의 주요 행동을 이벤트로 정의합니다. 예를 들어, 페이지 방문(Page View), 버튼 클릭(Click), 항목 노출(Impression) 등의 이벤트를 식별합니다.
3. 이벤트 로그 설계
- 이벤트 이름 지정: 각 이벤트에 대해 명확하고 일관된 이름을 지정합니다. 예를 들어, Main_Page_View, Main_Banner_Click 등.
- 이벤트 애트리뷰트 정의: 이벤트와 관련된 추가적인 정보를 애트리뷰트로 정의합니다. 예를 들어, 클릭된 상품의 ID, 이름, 할인율 등을 애트리뷰트로 포함시킵니다.
- 트리거 포인트 결정: 이벤트가 발생하는 정확한 시점을 정의합니다. 예를 들어, 페이지 로딩 완료 직후, 버튼 클릭 시점 등.
4. Tracking Plan 작성
- Tracking Plan 문서화: 설계된 이벤트 로그와 애트리뷰트를 문서화합니다. 모든 관련 정보를 표 형태로 정리하여, 전사적으로 일관된 로그 설계를 유지할 수 있도록 합니다.
- 통일성 유지: 이전에 정의된 로그와의 일관성을 확인하여, 회사 내 모든 로그가 통일된 방식으로 설계되었는지 확인합니다.
5. 로그 구현 및 테스트
- 로그 구현: 프론트엔드 또는 백엔드 개발팀이 설계된 로그를 구현합니다. 필요에 따라 SDK나 API를 사용하여 로그를 시스템에 통합합니다.
- 로그 테스트: 구현된 로그가 올바르게 기록되고 있는지 테스트합니다. 의도한 대로 로그가 수집되고 있는지, 필요한 모든 애트리뷰트가 정확하게 포함되었는지 확인합니다.
6. 데이터 수집 및 모니터링
- 데이터 수집: 구현된 로그를 통해 실제 사용자 데이터가 수집됩니다.
- 모니터링: 수집된 로그 데이터를 정기적으로 모니터링하여, 예상한 대로 데이터가 수집되고 있는지, 이상이 없는지 확인합니다.
7. 분석 및 개선
- 데이터 분석: 수집된 로그 데이터를 바탕으로 설정한 목표와 지표를 분석합니다. 이를 통해 사용자 행동을 이해하고, 서비스 개선을 위한 인사이트를 도출합니다.
- 로그 개선: 분석 과정에서 발견된 문제점이나 추가적으로 필요한 로그가 있으면, Tracking Plan을 업데이트하고, 로그를 수정 또는 추가합니다.
이벤트 로그 설계 예시 1: 온라인 쇼핑몰 메인 페이지 (상단의 로드맵 소개 영역, 중간 배너)
페이지 구조 및 목표 설정
- 페이지 구조: 상단의 카테고리 메뉴, 중간 배너 섹션, 하단 인기 상품 목록으로 구성.
- 목표: 페이지 활용성 확인 및 카테고리별, 상품별 관심도 파악.
로그 설계 과정
- 페이지 방문자 수 및 방문 빈도 확인:
- 목표 지표: 페이지 방문자 수, 인당 페이지 방문 빈도.
- 필요한 로그: 페이지 뷰 로그.
- 설계:
- 이름: Main_Page_View
- 트리거: 페이지 로딩 완료 직후.
- 카테고리별 관심도 확인:
- 목표 지표: 카테고리별 클릭률.
- 필요한 로그: 카테고리 메뉴의 인프레션(노출)과 클릭 로그.
- 설계:
- 인프레션 로그:
- 이름: Main_Category_Impression
- 트리거: 카테고리 메뉴의 노출 시점.
- 클릭 로그:
- 이름: Main_Category_Click
- 트리거: 카테고리 메뉴의 클릭 시점.
- 이벤트 애트리뷰트:
- Category_ID: 인티저 타입.
- Category_Name: 텍스트 타입.
- Category_Position_Index: 인티저 타입.
- 인프레션 로그:
- 인기 상품 클릭률 확인:
- 목표 지표: 인기 상품 목록에서의 클릭률.
- 설계:
- 이름: Main_Popular_Product_Click
- 트리거: 인기 상품 클릭 시점.
- 이벤트 애트리뷰트:
- Product_ID: 인티저 타입.
- Product_Name: 텍스트 타입.
- Product_Discount_Rate: 인티저 타입.
- 장바구니 담기 기능 확인:
- 목표 지표: 인기 상품 클릭 후 장바구니에 담는 유저 수.
- 설계:
- 이름: Main_Product_Added_To_Cart
- 트리거: 장바구니에 담기 버튼 클릭 시점.
- 이벤트 애트리뷰트: 상품 관련 애트리뷰트 동일하게 적용.
- 배너 클릭률 확인:
- 목표 지표: 중간 배너의 활용성 평가.
- 필요한 로그: 배너 인프레션 및 클릭 로그.
- 설계:
- 인프레션 로그:
- 이름: Main_Banner_Impression
- 클릭 로그:
- 이름: Main_Banner_Click
- 이벤트 애트리뷰트: Banner_ID.
- 인프레션 로그:
이벤트 로그 설계 예시 2 : 온라인 쇼핑몰 메인 페이지 (하단 상품 탐색 영역)
목표 재확인 및 지표 설정
- 목표: 페이지 활용성 체크 및 카테고리별, 상품별 관심도 파악.
- 중요 지표: 상품별 클릭률 지표.
로그 설계 과정
- 상품별 클릭률 확인:
- 목표 지표: 각 상품의 클릭률을 통해 사용자의 관심도를 파악.
- 필요한 로그: 상품 인프레션(노출)과 클릭 로그.
- 설계:
- 이름: Main_Product_Impression (노출 로그)
- 이름: Main_Product_Click (클릭 로그)
- 트리거 시점: 상품 정보가 담긴 박스의 노출 및 클릭 시점.
- 이벤트 애트리뷰트:
- Product_ID: 인티저 타입.
- Product_Name: 텍스트 타입.
- Product_Filter: 리스트 형식.
- Product_Position_Index: 인티저 타입.
- Page_Number: 인티저 타입.
- 구매하기 버튼 클릭률 확인:
- 목표 지표: 상품 박스 클릭과 구매하기 버튼 클릭률 비교.
- 설계:
- 이름: Main_Product_Buy_Click
- 트리거 시점: 구매하기 버튼 클릭 시점.
- 이벤트 애트리뷰트: 위 상품 관련 애트리뷰트와 동일하게 설정.
- 하단 추천 상품 클릭률 확인:
- 목표 지표: 일반 상품과 추천 상품 클릭률 비교를 통해 사용자 선호 패턴 파악.
- 필요한 로그: 추천 상품 인프레션(노출)과 클릭 로그.
- 설계:
- 이름: Main_Recommended_Product_Impression (노출 로그)
- 이름: Main_Recommended_Product_Click (클릭 로그)
- 트리거 시점: 추천 상품 박스의 노출 및 클릭 시점.
- 이벤트 애트리뷰트:
- Recommended_Product_ID: 인티저 타입.
- Recommended_Product_Name: 텍스트 타입.
- Recommended_Product_Filter: 리스트 형식.
- 검색 기능 활용도 확인:
- 목표 지표: 검색창 사용률 및 검색어 분석.
- 필요한 로그: 검색 발생 시점 기록.
- 설계:
- 이름: Main_Product_Search
- 트리거 시점: 검색 결과 화면이 호출될 때.
- 이벤트 애트리뷰트:
- Search_Keyword: 텍스트 타입.
- 필터 기능 활용도 확인:
- 목표 지표: 필터별 클릭률 파악.
- 필요한 로그: 필터 인프레션(노출)과 클릭 로그.
- 설계:
- 이름: Main_Filter_Impression (노출 로그)
- 이름: Main_Filter_Click (클릭 로그)
- 이벤트 애트리뷰트:
- Filter_Name: 텍스트 타입.
이벤트 로그 설계는 사용자의 행동 데이터를 체계적으로 기록하고 분석하는 핵심 작업입니다.
이를 통해 서비스의 효율성을 높이고, 사용자 경험을 개선할 수 있는 중요한 인사이트를 도출할 수 있습니다.
성공적인 로그 설계와 Tracking Plan 작성은 회사 내 데이터 통일성을 유지하면서도, 효율적인 분석 환경을 구축하는데 필수적인 요소입니다.
감사합니다.
출처 및 참고자료 : 코드잇 사이트 강의 '프로덕트 데이터 로그 설계' https://www.codeit.kr/topics/product-data-logging?version=1
'프로그래밍 > 데이터 분석' 카테고리의 다른 글
[데이터 분석 심화 개념] 프로덕트 데이터 로그 설계 1️⃣ (로그 설계와 사용자 행동 데이터 분석) (3) | 2024.09.09 |
---|---|
[데이터 분석 심화 개념] A/B 테스트 3️⃣ (A/B 테스트 결과 분석하기) (0) | 2024.09.06 |
[데이터 분석 심화 개념] A/B 테스트 2️⃣ (A/B 테스트 시작하기) (11) | 2024.09.04 |
[데이터 분석 심화 개념] A/B 테스트 1️⃣ (A/B 테스트 이해하기) (4) | 2024.09.02 |
[데이터 분석 심화 개념] 지표 이해하기 2️⃣ (AARRR 프레임워크와 지표들에 대한 세부 설명) (3) | 2024.08.30 |
데이터 분석을 공부하고 카페를 열심히 돌아다니는 이야기
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!