해결된 질문
작성
·
416
0
안녕하세요, 선생님!
연습문제를 풀고 구글 스프레드 시트와 블로그에 정리해두었어요.
검색 필터 기능 로그 지표 부분에서 질문이 있어 스프레드시트 event컬럼에 초록색으로 표기해두었는데요
1) 검색필터 기본, 주문 많은 순, 배달 빠른 순 등등 세분화된 필터를 파라미터에 명시해두는 것이 나을지
2) 파라미터단에는 filter_name, filter_id 정도로 명시해두고 value에서 설명을 달아두는 것이 나을지 헷갈리더라구요.
1안과 2안 중 어떤 것이 업무에서 효율적인지 그렇다면 이유가 무엇인지 궁금합니다!
감사합니다.
새해 복 많이 받으세요!
답변 2
1
orchid Y님 안녕하세요! 연말에 학습 꾸준히 하시고 계시는군요! 너무 멋집니다.
말씀해주신 관점 2가지는 현업에서 많이 고민하는 방식이고, 정답은 없는 것 같아요. 각각의 방식에 대해 설명드릴게요
우선 정의를 하고 넘어갈게요.
1) 세분화된 파라미터 만들기(=고정 파라미터)
예 : click_search_filter의 파라미터로 basic, order_count, delivery_price를 두고 각각의 값에 True/False 입력
2) 파라미터를 Key, Value 형태로 만들기(=Key, Value 방식 또는 가변 파라미터)
예 : click_search_filter의 파라미터로 filter_name, filter_value를 두고 filter_name에 basic, order_count, deliver_price를 두고 filter_value에 각각의 값을 입력
로그를 설계할 때, 어떤 도구에서 로깅하는지를 확인하는 것도 꼭 필요합니다. 대표적으로 Google Analytics, Firebase, Amplitde 등이 있지요. 도구마다 정책이 존재하는데, GA나 Firebase는 이벤트 당 파라미터의 갯수가 25개로 제한되어 있습니다. Amplitude도 제한이 있을거에요. 자체 개발이 아닌 이상 무제한인 곳은 없을거에요. 이 관점에서 보면 1번의 선택은 지금 당장은 괜찮지만, 필터가 세분화되고 복잡해진다면 이슈가 될 수 있지요(갯수 제한이 걸리면 뭘 제거하는가?에 대해 논의하면 답이 없는 문제. 사용하던 데이터는? 그럼 앞으로 무엇은 못보나? 이렇게 생각하다가 갇힐 가능성이 있지요)
로그 설계 후에 어떻게 데이터를 분석하는지도 생각해보면 좋습니다. GUI가 잘 지원되는 PA 도구에서 사용한다면 1)의 방법이 좀 더 직관적일 수 있지요(파라미터를 바로 확인할 수 있으니) 2번을 선택한다면 filter_name과 filter_value에 대해 설명이 필요할 수 있습니다. filter_value가 모두 True/False면 괜찮지만 filter_value에 어떤 것은 숫자가 있는 경우. 즉 어떤 filter_name의 value가 다른 것이 생길 때부터 이슈가 생깁니다. 데이터 분석 도구에서 필터를 걸 때는 대부분 value를 모두 노출해주거든요. 그러면 헷갈릴 이슈가 생깁니다
또는 PA 도구가 아니라 BigQuery 같은 SQL에서 처리한다?라고 하면 1번이 아닌 2번도 괜찮을 수 있어요. 쿼리는 복잡하지만 표현할 수 있는 것이 좀 더 다양하고 유연해서 어떻게든 데이터를 처리할 수 있습니다
1번 방법은 직관적인 것을 선택하고 확장성이 덜하다고 볼 수 있고, 2번 방법은 직관적이진 않지만 확장성이 존재합니다. 2번 방법은 나중에 추가 개발이 없어도 될 가능성이 있어요(데이터가 저장된 후에 그 데이터를 가지고 추가적으로 작업할 경우) 그래서 개발하는 관점, 확장성을 고려하면 2번이 좋을 수 있습니다.
대표적인 예시로 GA나 Firebase의 데이터를 BigQuery에 저장할 때 event_parameter, event_value로 저장하고 있어요. 여기선 확장성을 중시했기에 이런 방식을 채택했을거에요
정리하면 다양한 파라미터가 존재할 수 있고, 유연한 데이터 처리가 중요하다면 key-value 파라미터가 좋을 수 있습니다. 반면 구조적인 명확성과 직관적인 것이 필요하다면 고정 파라미터가 유리할거에요. 지금 당장은 확장성을 고려하지 않고 쉽게 가는 것이 중요하다고 하면 고정적으로 가곤 합니다(주로 초기 비즈니스일 때 이런 방식을 쓰고 빠르게 확장) 결국 문제 정의, 목적에 따라 선택한다!라고 보시면 됩니다. 그래서 강의에서 문제 정의 파트를 추가했어요 🙂
추가로 필터의 형태에 따라 다르지만, 이전에 클릭되어 있는 상황이 있을 수 있어요. 이런 경우엔 클릭 당시의 상태가 무엇이였는지(즉, 어떤 것으로 변경되었는지)도 남겨야 할 수도 있어요. 이 부분도 고민해보시면 좋을 것 같네요
문제 푸시느라 너무 고생하셨어요. 새해 복 많이 받으세요 🙂
0
우와 선생님 엄청나게 친절한 답변 감사합니다 🙂
사실 저만 헷갈려하는걸까봐 여쭤볼지 고민했는데, 이렇게 설명을 듣고 정리해보고 나니 머리 속에서 더 명료하게 남아서 기분 좋은 1월 1일이 된 것 같아요.
감사합니다 즐거운 저녁 되세요!🫶🏻