본문 바로가기
Sprint_DA01/위클리 페이퍼

위클리 페이퍼 #10 - A/B 테스트 / 이벤트 로그 설계

by Toddler_AD 2024. 10. 11.

Q. A/B 테스트의 장점과 단점, 그리고 단점을 해결하기 위한 방안들을 설명해 주세요.

A.

  • A/B 테스트의 장점  (출처: https://www.waveon.io/blog/ab_test
    • 데이터 기반으로 한 최소비용, 최대효과 의사결정
      • 일반적으로 스타트업은 자원이 제한적인 상황에서 신속하게 의사결정을 내려야 한다. A/B 테스트는 그로스해킹 기법 중 하나로써, 사용자 데이터를 기반으로 한 실험을 통해 가설을 검증하고, 데이터에 근거해 의사결정을 내리는 근거를 제공한다.
      • A/B 테스트는 대부분 웹사이트, 디지털 채널에서 이루어지는 실험이고 일반적으로 소규모의 사용자 그룹을 대상으로 진행되기 때문에 상대적으로 낮은 비용이 든다.
    • 새로운 아이디어와 혁신
      • A/B 테스트는 다양하고 새로운 아이디어를 직접 실험하고 검증하는 방법이다. 스타트업의 경우 전통적인 기법을 유지하기 보다는 빠르게 변화하고 혁신하는 비즈니스 모델, 사업 전략을 구축하는 편이다.
      • 따라서, A/B 테스트가 스타트업 팁에서 사용된다면 스타트업의 다양한 아이디어와 전략을 실험할 때 큰 도움이 된다. 이를 통해 새로운 기능 및 디자인 변화에 대한 효과와 사용자의 반응을 즉각적으로 알아볼 수 있다.
    • 시작 적응력 강화
      • 스타트업은 기존 기업이 구축해놓은 생태계에서 치열하게 성장하고 생존야 한다. 이때 A/B 테스트를 통해 경쟁사와 비교하고 고객의 선호도를 빠르게 확인한다면 경쟁력을 강화하는데 큰 도움이 된다.
      • 특히 A/B 테스트는 일반적으로 짧은 실행주기를 가지며 작은 규모로 잦게 이루어진다. 그 과정에서 얻은 고객의 반응을 계속 테스트하고 그 자료를 수집할 수 있다. 따라서 추후 다른 상품이나 페이지 디자인에도 반영할 수 있고 회사의 전반적인 전략을 시장에 맞춰 최적화하는데 큰 도움이 된다.
    • 객관적 데이터 제공
      • A/B 테스트는 사용자 행동을 실제 데이터로 측정하여, 주관적 판단 대신 객관적인 데이터를 바탕으로 결정을 내릴 수 있게 한다.
      • ex) 새로운 버튼 색상을 도입했을 때, 클릭률이 기존보다 얼마나 증가했는지를 명확하게 확인할 수 있다.
    • 사용자 경험 개선
      • 다양한 변수를 테스트하여 사용자 경험을 지속적으로 개선할 수 있다.
      • ex) 웹사이트의 레이아웃 변경을 통해 사용자들이 더 쉽게 원하는 정보를 찾도록 도울 수 있다.
    • 위험 최소화
      • 새로운 아이디어나 변경 사항을 소규모로 테스트하여 큰 변화로 인한 리스크를 최소화할 수 있다.
      • ex) 새로운 기능을 전 사용자에게 배포하기 전에 일부 사용자 그룹에서 먼저 테스트하여 예상치 못한 문제를 사전에 발견할 수 있다.
    • 정량적 분석
      • 정량적인 데이터를 수집하여 마케팅 캠페인, 제품 기능, 디자인 요소 등의 효과를 분석할 수 있다.
      • ex) 이메일 캠페인에서 다른 제목을 사용하여 열람률과 클릭률을 비교 분석할 수 있다.

 

  • A/B 테스트의 단점 (출처: https://datarian.io/blog/a-b-testing
    • 테스트를 많이/자주하면 단기적으로 손해가 발생할 수 있다
      • 예를 들어, 쇼핑몰에서 구매전환율이 높은 상품 이미지가 무엇인지 알아보기 위한 테스팅을 진행한다고 하다자. 2주동안 전체 방문자를 50:50으로 나눠 기존 상품 이미지와 새로운 상품 이미지를 보여주고자 한다. 테스트를 3일 정도 진행했더니 새로운 이미지를 본 집단에서의 매줄이 기존에 비해 절반 밖에 나오지 않는다면 어떻게 해야 하는가? 애초에 계획했던 2주동안 테스트를 진행하려면 막심한 매출 손해를 감수해야 한다.
    • A/B 테스팅의 결과는 계절 변화나 취향 변화 등 시간의 흐름에 따라 바뀔 수 있다. 
      • 작년 겨울에 A/B 테스팅을 하여 얻은 결론은 언제까지 유효할까? 통제실험은 시공간의 보편성에 대한 가정을 깔고 있다. 이 가정은 물리학이나 화학 수준에서는 대단히 확실히 보장되고, 생물학을 거쳐 사회과학 분야로 가면서 점점 약해지며, 비즈니스 맥락에서는 대단히 약해진다. 어제의 세상과 오늘의 세상이 다르고, 미국과 한국이 다르다. 결국 확실성을 유지하기 위해서는 실험을 지속적으로 반복해서 해야하는데 첫번째 단점(비용 문제)과 엮어서 생각해본다면 곤란한 얘기가 된다.
    • A/B 테스팅만 해서는 지역최적점에 머물게 될 위험이 있다.
      • A/B 테스팅이라는 것은 기존 상태에서 작은 변화(되도록 하나의 변수만 살짝 바꾸기)를 가하며 점진적으로 더 나은 상태를 찾아가는 방식으로 진행된다. 하지만 이 방식으로는 지역최적점에 수렴할 수 있을 뿐 전역적인 최적점을 찾을 수 없다.

 

  • 단점을 해결하기 위한 방안
    • 테스트 기간의 제한
      • 단점 : A/B 테스트는 결과를 도출하는 데 시간이 오래 걸리며, 특히 작은 변화에 대한 검증은 시간이 많이 소요.
      • 해결 방안: 테스트를 빠르게 진행할 수 있는 방법으로 베이지안 최적화를 사용할 수 있다. 이를 통해 실험의 효율성을 높이고, 결과 도출 시간을 줄일 수 있다.
    • 표본 크기 부족
      • 단점 : 충분한 표본 크기를 확보하지 못하면 결과의 신뢰도가 낮아질 수 있다.
      • 해결 방안
        • 사전에 통계적 검정을 통해 필요한 최소 표본 크기를 계산하고, 적정 크기의 샘플이 확보될 때까지 테스트를 진행해야 한다.
        • 테스트를 더 오래 실행하거나, 트래픽이 많은 페이지에서 테스트를 수행하여 충분한 데이터를 확보할 수 있다.
    • 외부 요인의 영향
      • 단점 : A/B 테스트는 여러 외부 변수에 의해 왜곡될 수 있다. 예를 들어, 시간, 계절, 경쟁사의 프로모션 등 여러 요인이 영향을 미칩니다.
      • 해결 방안
        • 다변량 테스트(Multivariate Testing)를 통해 다양한 변수의 조합을 동시에 테스트하거나, 외부 요인을 통제한 상태에서 실험을 진행한다. 또한, 데이터를 실시간으로 모니터링하며 이상 징후를 감지할 수 있다.
        • 테스트 기간 동안 외부 변수를 통제하거나, 외부 요인을 반영한 분석 모델을 사용할 수 있다.
    • 사용자 경험 간섭
      • 단점 : 테스트 중인 그룹이 실제로 서로 다른 경험을 하면서 결과가 왜곡될 수 있다.
      • 해결 방안: 사용자를 임의의 그룹에 배정하는 과정에서 오버랩 방지 규칙을 엄격히 적용하고, 유저 세그먼테이션을 고려하여 테스트 그룹을 나누는 것이 중요하다.
    • 결과 해석의 어려움
      • 단점 : A/B 테스트 결과가 명확하지 않거나, 다양한 해석이 가능할 수 있다.
      • 해결 방안: 결과 해석 시 P-값 이외에도 효과 크기를 고려하며, 다양한 데이터 시각화 도구를 활용하여 좀 더 직관적으로 결과를 분석할 수 있도록 해야한다.
    • 장기적 효과 미검증
      • 단점 : A/B 테스트는 주로 단기적인 결과를 확인하는 데 그치기 때문에 장기적인 변화나 효과를 평가하기 어렵다.
      • 해결 방안
        • 테스트가 끝난 후에도 일정 기간 동안 변화를 지속적으로 관찰하는 사후 분석(Post-test analysis)을 통해 장기적인 영향을 모니터링 해야 한다.
        • 장기적인 데이터를 추가로 분석하여 단기적인 결과와 비교하고, 지속적인 모니터링을 통해 장기적인 영향을 평가할 수 있다.
    • 시간과 비용 소모
      • 단점 : 테스트를 설계하고 진행하는 데에 인력과 비용이 많이 소요될 수 있다.
      • 해결 방안
        • 비용 효율성을 높이기 위해 온라인 실험 플랫폼을 사용하거나, 자동화된 분석 도구를 활용하여 테스트 비용을 절감할 수 있습니다.
        • 테스트의 우선순위를 정하고, 가장 중요한 요소부터 테스트를 시작하여 자원을 효율적으로 사용할 수 있다.
    • 복잡한 테스트 설계
      • 단점 : 여러 변수를 동시에 테스트 하려면 테스트 설계가 복잡해질 수 있다.
      • 해결방안 : 다변량 테스트(Multivariate Testing) 또는 분할 테스트(Split Testing) 기법을 활용하여 여러 요소를 동시에 테스트 하고, 복잡성을 줄일 수 있다.

 

Q. A/B 테스트 결과에서 한 버전이 통계적으로 유의미하게 더 나은 결과를 보여주지 않는다면, 이를 어떻게 해석하고 다음 단계는 무엇인가요?

A.

  • A/B 테스트에서 p-value에 휘둘리지 않기  (출처: https://datarian.io/blog/dont-be-overwhelmed-by-pvalue) 
    • A/B 테스트 결과 분석은 주로 빈도주의 관점에서 유의성 검정을 따른다. 문제는 유독 유의 확률에만 신경을 쓰느라 제대로 실험 결과를 해석하지 않는다는 점이다. 실험의 목적은 얼마나 효과가 있는지 살펴보는 것이지 통계적 유의성만을 확보하는 것이 아니다.
    • 현실적인 문제
      • 이론적으로는 검정력과 유의 수준을 미리 정하고, 탐지하고자 원하는 효과 크기도 미리 알아서 실험 규모를 결정해야 한다. 가장 좋은 방법은 이 원칙을 따르는 것이지만, 실제로 이를 실무에서 행하기는 쉽지 않다. 특히, 탐지하고자 원하는 효과 크기를 미리 가늠하는 것은 쉽지 않다. 결과적으로 실험 규모를 미리 정하는 것이 실무에서는 어려울 수 있다. 
      • A/B 테스트는 표본 크기만으로 실험 지속 여부를 결정할 수 없는 경우도 있다. 예를 들어, 주말과 주중 고객의 행동이 크게 다르다면, 아무리 많은 표본 크기를 얻었더라도 최소한 1주일 주기의 실험을 계획하는 것이 바람직하다.
      • 전통적인 실험 방법은 변하는 세상에 대응하기 어렵다는 것도 문제다. 아무리 완벽한 무작위 실험을 하더라도 그 실험 결과는 과거의 것이다. 앞으로 고객이 같은 행동을 할 것이라는 전제가 성립하지 않으면 과거의 실험 결과로 미래의 의사 결정을 할 수는 없다.
    • 결론
      • p-value는 통계적 실험에서 중요한 개념이 맞지만, 이것에만 휘둘려서는 안된다. 특히 A/B 테스트는 함께 고려할 요소가 많다. 유의 수준과 검정력, 탐지하고자 원하는 효과 크기를 정하고 이를 토대로 적정 실험 규모를 정해야 한다.
      • 필요 이상으로 실험규모를 키워서 과한 실험을 하는 것은 자원 낭비고 잘못된 의사 결정을 이끌 수 있다. 반대로 실험을 자꾸 엿보다가 부족한 실험을 하는 것은 오류에 빠질 가능성을 높인다. 현실적인 상황을 고려한 실험 운영도 필요한데, 전형적인 통계 실험 외의 대안을 찾아볼 필요도 없다.
      • 실험 결과의 중요성을 한 번에 판단해 줄 마술 지팡이 같은 통계적 개념은 없다. p-value는 통계적 유의성 확보를 위한 도구이지, 실험 결과의 중요성을 평가하는 지표가 아니다. 실험 결과가 현실적으로 어떤 중요성을 갖는지 판단해야 한다. 그 결과를 얼마나 믿을 수 있는지는 그 다음 문제다.
  • A/B 테스트에서 한 버전이 통계적으로 유의미하게 더 나은 결과를 보여주지 않는 경우, 이를 해석하고 다음 단계를 결정하는 방법
    • 통계적으로 유의미하지 않은 결과의 해석
      • 무효 가설 유지 : 통계적으로 유의미한 차이가 없다는 것은, 두 버전 간에 차이가 없거나, 있더라도 매우 작아서 통계적으로 검출되지 않았음을 의미한다. 이 경우, 무효 가설(null hypothesis)을 기각하지 않고, "두 버전의 성능 차이가 없다"고 해석할 수 있다.
      • 테스트 능력 검토 : 결과가 유의미하지 않다고 해서 두 버전 간에 실제 차이가 없는 것은 아니다. 표본 크기가 충분하지 않거나, 테스트 기간이 너무 짧았다면 실제 차이를 감지하지 못했을 가능성이 있다.
      • 우연의 일치 가능성 : 통계적으로 유의하지 않은 결과는 두 버전 간의 차이가 우연에 의한 것일수 있음을 의미한다. 이는 실험 조건이나 샘플 크기가 충분하지 않음을 시사할 수 있다.
      • 효과 크기 : 효과 크기(Effect Size)가 너무 작아 통계적으로 유의미한 차이를 감지하기 어려울 수 있다. 이는 실제 차이가 존재하더라도 실질적으로 중요하지 않을 수 있음을 의미한다,
      • 데이터 변동성 : 테스트 기간 동안 데이터의 변동성이 컸을 수 있다. 이는 일시적인 트렌드나 외부 요인에 의해 결과가 영향을 받을 가능성을 나타낸다.
    • 다음 단계
      • 샘플 크기 재평가 : 테스트에 사용된 샘플 크기가 충분했는지 확인한다. 충분한 샘플 크기를 확보하지 못했다면 샘플 크기를 눌려 재테스트를 수행한다.
      • 테스트 기간 연장 : 테스트 기간이 충분하지 않았다면 기간을 연장하여 데이터를 추가로 수집한다. 더 많은 데이터를 수집하면 보다 명확한 결론을 도출할 수 있다.
      • 변수 재검토 : 테스트한 변수가 사용자 행동에 실질적인 영향을 미치지 않았을 수 있다. 다른 중요한 변수를 테스트해보는 것도 고려해야 한다.
      • 기존 데이터 분석 : 기존 데이터를 심층 분석하여 특정 사용자 그룹에서 의미 있는 차이가 있는지 확인한다. 예를 들어, 특정 세그먼트에서 더 큰 차이가 나타날 수 있다.
      • A/B 테스트 재설계 : 테스트 설계 자체를 재검토하여 개선할 점이 있는지 확인합니다. 실험 설계가 제대로 이루어지지 않았을 경우 결과가 왜곡될 수 있다.
    • 데이터와 테스트 설정 검토
      • 표본 크기 확인 : 표본 크기가 충분했는지 다시 검토해야 한다. A/B 테스트의 파워와 필요한 최소 표본 크기를 다시 계산하여 충분한 데이터가 수집되었는지 확인한다.
      • 테스트 기간 재검토 : 테스트가 너무 짧게 진행되어 의미 있는 차이를 잡아내지 못했을 수 있습니다. 더 긴 기간 동안 테스트를 연장하는 방법도 고려할 수 있습니다.
      • 변동성 있는 외부 요인 : 시간, 계절, 마케팅 캠페인, 외부 이벤트 등 외부 요인이 테스트 결과에 영향을 미쳤는지 확인합니다.
    • 세분화 분석(Segmentation Analysis)
      • 사용자 세그먼트별 분석 : 전체 데이터에서 유의미한 차이가 없더라도 특정 사용자 그룹(예 : 신규 vs 기존 고객, 특정 지역 등)에서는 차이가 있을 수 있다. 데이터를 세분화하여 분석하면, 어떤 특정 그룹에서 버전 간 차이가 존재하는지 파악할 수 있다.
      • 주요 KPI 외 지표 분석 : 주된 KPI에서 유의미한 차이가 없었더라도 다른 보조 지표(secondary metrics)에서 의미 있는 변화가 있는지 살펴볼 필요가 있다. 예를 들어, 클릭률은 차이가 없었지만 페이지 체류 시간이 달라졌는지 등을 확인할 수 있다.
    • 다른 가설 테스트
      • 가설 수정 : 테스트한 변경 사항이 기대한 만큼 영향을 미치지 못했을 수 있다. 이 경우, 가설을 수정하고 새로운 실험을 설계할 필요가 있다. 예를 들어, 변경사항이 작아서 사용자의 행동에 미치는 영향이 미미했다면, 더 극적인 변화를 시도하거나 다른 요소를 테스트하는 것이 좋다.
      • 다변량 테스트(Multivariate Testing) : 단순히 두 가지 버전을 비교하는 대신, 여러 요소를 동시에 테스트하는 다변량 테스트를 고려해볼 수 있다. 이를 통해 어느 부분에서 개선이 필요한지 더 세밀하게 파악할 수 있다.
    • 테스트 중단 또는 연장
      • 변경이 없는 경우 유지 : 두 버전 간 차이가 없다고 결론이 나면, 현재 버전으로 유지하거나, 작은 변화만으로는 큰 차이를 얻기 어렵다는 판단 아래 더 큰 변화를 시도할 수 있다.
      • 테스트 연장 : 표본 크기나 테스트 기간이 부족했던 것으로 확인되면, 테스트를 연장하여 데이터를 더 수집한 후 재분석할 수 있다.
    • 장기적인 영향 고려
      • 장기적인 관점에서 데이터 분석 : 테스트에서 유의미한 차이가 없었더라도, 장기적으로는 결과가 달라질 수 있다. 따라서 장기적인 성과를 모니터링하며 후속 분석을 진행할 수 있다.
    • 결론
      • 유의미한 차이가 없다는 것은 실패가 아니라, 가설을 검증하는 과정에서 하나의 중요한 정보를 얻은 것이다. 이를 바탕으로 실험을 개선하고, 더 나은 결과를 도출할 수 있도록 데이터와 테스트 설계를 지속적으로 최적화해 나가는 것이 중요하다.
    • 예시 시나리오 : 만약 버튼 색상을 바꾸는 A/B 테스트를 수행했는데 B 버전의 클릭률이 A 버전보다 10% 높았지만 통계적으로 유의하지 않은 경우, 다음과 같은 조치를 취할 수 있다.
      • 샘플 크기 증가 : 충분한 샘플 크기를 확보하지 못했을 수 있으므로, 샘플 크기를 증가시켜 재테스트를 수행한다.
      • 테스트 기간 연장 : 테스트 기간이 짧았다면, 기간을 연장하여 데이터를 추가로 수집한다.
      • 다른 변수 테스트 : 버튼 색상 이외에 더 중요한 영향을 미칠 수 있는 변수를 테스트한다.
      • 세그먼트 분석 : 특정 사용자 그룹(신규 사용자 Vs 기존 사용자)에서 차이가 더 크게 나타나는지 분석한다.
  • 프로젝트 2로 살펴본 A/B 테스트

2023년 이후 메인페이지를 거치지 않고 콘텐츠 페이지에 접속할 수 있음을 유추

 

  • 메인, 컨텐츠 페이지 월별 접속 패턴에 기인한 AB 테스트 
    •  동일 페이지 접속 기능의 변경이 유의미한 서비스 였는지 여부를 검정

 




Q. 이벤트 데이터 로그 설계(Event Taxonomy)의 주요 구성 요소는 무엇이며, 각 요소가 어떤 역할을 하는지 설명해 주세요.

A.

    • Event Taxonomy란 무엇인가? (출처:https://community.heartcount.io/ko/event-taxonomy/
      • Event Taxonomy는 비즈니스 프로세스 상에서 발생하는 다양한 사용자 행동 데이터를 일관되고 구조화된 방식으로 정의하고 분류하는 체계를 말한다.
      • 이벤트 데이터 로그 설계로써 사용자 행동을 추적하고 분석하기 위해 다양한 이벤트를 체계적으로 정의하는 과정이다. 이과정은 데이터 분석, 마케팅 전략 수립, 제품 개선 등에 중요한 역할을 한다.
      • 쉽게 말해, 고객의 모든 액션을 의미 있는 '이벤트'로 번역하고, 이를 카테고리화하는 것
    • 왜 Event Taxonomy가 중요한가?  (출처:https://community.heartcount.io/ko/event-taxonomy/)
      • 데이터 기반 의사결정 역량 강화
        • Event Taxonomy는 비즈니스 맥락을 반영한 데이터 수집을 가능케 함으로써 데이터의 품질을 높인다. 일관되고 정확한 데이터를 확보할 수 있게 되며, 이는 곧 데이터 활용도 제고로 이어진다.
        • 체계적인 Event Taxonomy를 통해 사용자 행동에 대한 심층적 이해가 가능해진다. 이를 바탕으로 데이터 기반의 통찰력을 발굴하고, 신속하고 정확한 의사결정을 내릴 수 있게 된다.
        • 나아가 Event Taxonomy는 조직 전반의 데이터 리터러시를 향상시킨다. 마케팅, 제품, 엔지니어링 등 여러 부서가 데이터에 대해 같은 언어로 소통할 수 있게 되며, 이는 부서 간 협업과 소통을 원활하게 한다. 데이터 사일로를 해소하고, 조직이 하나의 방향을 바라볼 수 있는 기반이 마련되는 것이다
      • 고객 중심 서비스 혁신 가속화
        • Event Taxonomy 설계의 출발점은 바로 '고객 경험'
        • 고객에게 가치를 전달하는 순간(Aha-Moment)과 고객의 필요(Pain Point)를 깊이 이해함으로써, 진정 고객 중심적인 통찰을 얻을 수 있다.
        • 이는 고객 니즈에 기반한 서비스 혁신으로 이어진다. 단순히 수치를 추적하는 것이 아니라, 고객의 문제를 발견하고 해결하는 방향으로 나아갈 수 있게 되는 것이다. 개인화와 타겟팅 역량 또한 강화될 수 있다.
        • 에어비앤비의 사례가 이를 잘 보여준다. 그들은 '예약'이라는 결과 뿐 아니라, 숙소 검색, 호스트와의 소통, 실제 숙박 경험 등 고객 여정 전반을 Event Taxonomy에 반영하였다. 이를 통해 고객 가치를 극대화하는 방향으로 서비스를 지속 발전시켜 나가고 있다.
      • 비즈니스 민첩성과 혁신성 확보
        • 오늘날의 비즈니스 환경은 그 어느 때보다 빠르게 변화하고 있다. 이런 상황에서 기업이 생존하고 성장하기 위해서는 변화에 신속히 적응하고, 혁신을 거듭해야만 한다.
        • 잘 설계된 Event Taxonomy는 이러한 비즈니스 민첩성의 토대가 된다. 서비스의 변화를 Taxonomy에 신속히 반영함으로써, 항상 최신의 데이터를 확보할 수 있기 때문이다.
        • 새로운 기능 출시 후 그 효과를 즉시 측정하고, 마케팅 캠페인의 성과를 실시간으로 추적하며, 고객 불만 요인을 신속히 파악하고 해결하는 등 데이터와 밀착된 의사결정이 가능해진다. 이를 통해 기업은 변화의 흐름을 신속히 감지하고, 선제적으로 대응할 수 있는 민첩성을 확보하게 되는 것이다.
    • 이벤트 데이터 로그 설계(Event Taxonomy)의 주요 구성 요소
      • 이벤트 데이터 로그(Event Taxonomy)의 주요 구성 요소는 이벤트 기반 데이터 수집에서 중요한 데이터를 구조화하고 해석하는 데 핵심적인 역할을 한다. 이러한 구성 요소들은 데이터를 일관성 있게 수집하고, 분석 가능하도록 체계적으로 조직하는 데 필요하다. 각 요소는 특정 역할을 하며, 다양한 비즈니스나 제품 분석에 사용된다.
      • 이벤트(Event)
        • 정의 :  사용자가 앱이나 웹사이트에서 수행하는 특정 행동 또는 작업
        • 역할
          • 이벤트는 사용자가 제품이나 서비스를 사용할 때 발생하는 행동 또는 상호작용을 의미한다. 주로 유저의 특정 행동을 추적하여 어떤 일이 발생했는지 기록한다.
          • 사용자 상호작용을 추적하고 분석할 수 있도록 하는 기본 단위이다.
          • 예를 들어,  '로그인', '상품 조회', '장바구니 추가' 등이 있다. 
        • 예시 : page_view, button_click, purchase_complete, video_play
      • 이벤트 이름(Event Name)
        • 역할 : 이벤트의 이름은 발생한 행동을 설명하는 단일 문자열로, 이벤트가 발생한 맥락을 명확히 한다. 일관성 있고 명확한 이름을 사용하여 데이터를 쉽게 분석할 수 있도록 설계한다.
        • 예시 : signup_submit, checkout_start, search_query_submit
      • 이벤트 속성(Event Properties 또는 Parameters)
        • 정의 :  이벤트와 관련된 추가 정보로, 이벤트의 맥락을 제공하는 데이터 포인트
        • 역할
          • 이벤트 속성은 각 이벤트와 관련된 추가적인 세부 정보를 제공합니다. 이는 이벤트가 발생할 때의 상태나 특정 맥락을 설명하는 데 유용하며, 이벤트 분석을 더 정교하게 할 수 있게 합니다.
          • 이벤트에 대한 더 깊은 이해를 제공하고 세분화된 분석을 가능하게 한다.
          • 예를 들어, '상품조회', 이벤트의 경우, '상품 ID', '카테고리', '가격' 등의 속성이 있을 수 있다.
        • 예시 :
          • button_click 이벤트의 속성으로는 클릭한 버튼 이름(button_name), 위치(position) 등이 있을 수 있다.
          • purchase_complete 이벤트의 속성으로는 구매 금액(amount), 상품 이름(product_name) 등이 있을 수 있다.
      • 사용자 속성(User Properties 또는 Attributes)
        • 정의 : 이벤트를 트리거하는 주체로, 고유한 식별자( ID)를 통해 식별된다.
        • 역할
          • 사용자 속성은 이벤트를 발생시킨 사용자에 대한 정보를 담고 있다. 주로 사용자 세분화퍼스널라이제이션을 위한 데이터를 제공하며, 사용자 특성에 기반한 분석을 가능하게 한다.
          • 개별 사용자 행동을 추적하고, 사용자 세그먼트를 정의하는 데 사용된다. 
          • 사용자 ID, 이메일, 회원가입 날짜 등의 정보가 포함된다.
        • 예시:
          • age, gender, user_id, location
          • 사용자 등급(user_tier): 유료 사용자인지, 무료 사용자인지 여부
          • 가입일(signup_date): 사용자가 가입한 시점사용자 속성(User Properties 또는 Attributes)
      • 세션(Session)
        • 정의 : 사용자가 일정 시간 동안 앱이나 웹사이트에서 활동한 기간을 나타낸다.
        • 역할
          • 세션은 사용자가 일정 시간 동안 애플리케이션과 상호작용한 시간 범위를 나타낸다. 세션을 통해 사용자 활동 흐름을 분석할 수 있으며, 탈퇴 시점이나 활동 주기 등의 분석에 유용하다.
          • 사용자의 연속된 행동을 분석하고, 각 세션 동안 발생한 이벤트를 그룹화하여 사용자 경험을 이해하는 데 도움을 준다. 
          • 세션 시작 시간, 종료 시간, 세견 길이 등이 포함된다.
        • 예시:
          • session_start, session_end
          • 세션 ID(session_id): 각 세션을 구분하기 위한 고유 식별자
      • 타임스탬프(Timestamp)
        • 정의 : 이벤트가 발생한 날짜와 시간을 나타낸다.
        • 역할
          • 타임스탬프는 이벤트가 발생한 정확한 시간을 기록한다. 이를 통해 시간 기반의 분석, 예를 들어 사용자 행동 패턴이나 시간에 따른 트렌드 등을 분석할 수 있다.
          • 이벤트 발생 시점을 추적하여 시간 경과에 따른 사용자 행동 변화를 분석하는 데 사용된다.
          • 이벤트 시간, 날짜, 등의 정보가 포함된다.
        • 예시: 2024-10-10T15:45:32Z (UTC 기준 시간)
      • 이벤트 분류(Event Category) / 이벤트 타입(Event Type)
        • 정의 : 이벤트의 유형을 정의하여 이벤트를 카테고리화 한다. 
        • 역할
          • 이벤트 분류는 이벤트들을 유사한 그룹으로 묶어 체계적으로 정리하는 데 사용된다. 이를 통해 이벤트를 쉽게 탐색하고 분석할 수 있으며, 특정 카테고리 내에서 유사한 이벤트 간의 비교 분석이 가능해진다.
          • 이벤트를 이해하고, 분류하는 데 도움을 주며, 공통된 패턴을 식별할 수 있게 한다. 
          • 예를 들어, '클릭', '페이지 뷰', '폼 제출' 등이 있다.
        • 예시:
          • 페이지 탐색 관련 이벤트: page_view, page_scroll
          • 구매 관련 이벤트: add_to_cart, purchase_complete
          • 소셜 관련 이벤트: share_button_click, comment_submit
      • 메타데이터(Metadata)
        • 정의 : 이벤트와 관련된 추가적인 환경 정보
        • 역할 : 이벤트가 발생된 환경을 이해하고, 분석을 더 정확하게 만든다.
        • 예를 들어, 사용자의 디바이스 유형, 운영 체제, 브라우저 종류, 위치 정보 등이 포함된다. 
          • 디바이스 및 플랫폼 속성(Device and Platform Properties)
            • 역할: 사용자가 이벤트를 발생시킨 디바이스플랫폼 정보를 기록한다. 이를 통해 디바이스별 행동 차이플랫폼 간 차이를 분석할 수 있다.
            • 예시:
              • 디바이스 정보(device_type): mobile, desktop, tablet
              • 운영 체제(os): iOS, Android, Windows
              • 브라우저 정보(browser): Chrome, Safari
          • 콘텍스트 데이터(Context Data)
            • 역할: 이벤트가 발생한 구체적인 환경이나 상황에 대한 정보를 추가로 제공하여, 분석의 맥락을 더욱 풍부하게 만든다.
            • 예시:
              • 페이지 URL: 사용자가 방문한 페이지의 URL
              • 리퍼러(Referrer): 사용자가 해당 페이지에 도달한 경로
              • 앱 버전(App Version): 사용 중인 애플리케이션의 버전 정보
      • 이벤트 순서(Event Sequence)
        • 역할: 이벤트들이 발생한 순서를 기록함으로써, 사용자의 행동 흐름이나 이벤트 간 상호작용을 분석할 수 있다. 특히 퍼널 분석이나 사용자 여정 분석에서 유용하다.
        • 예시:
          • page_view -> add_to_cart -> purchase_complete
          • 사용자가 첫 페이지를 본 후 상품을 장바구니에 넣고, 구매를 완료하는 행동 흐름
      • 결론
        • 이벤트 데이터 로그 설계(Event Taxonomy)의 각 구성 요소는 데이터를 체계적으로 수집하고 분석할 수 있게 하며, 비즈니스 의사결정이나 제품 개선에 필요한 정확한 행동 데이터를 기록하는 역할을 한다. 이를 통해 사용자 행동을 구체적으로 이해하고, 제품 또는 서비스의 성과를 향상시키는 데 기여할 수 있다.