웹분석에서 방문자를 정의 한다고 할때, IP나 쿠키를 생각할 수 있다.
IP 방식은 구현이 간편하지만, IP의 유동성이나 NAT 환경에서 대표성으로 인해서 세밀하지 못하다. 일반적으로는 브라우저 단위로 세분화 가능한 쿠키 방식을 사용한다.
본문에서는 방문자 식별이 쓰이는 사례와 방법을 예시한다.
먼저 웹분석의 기본 요소를 통해서 방문자 식별 사례를 본다.
방문
최초 이벤트 발생을 시점으로 방문이 일어나고 특정 조건 하에서 방문은 유지 된다.
IDLE이 특정 시간이 지나면 방문이 끊어진 것으로 고려 할 수 있다.
방문자
쿠키에 저장된 UUID를 통해서 식별 된다.
방문 시에 식별정보가 없는 경우 UUID를 생성하고, 신규 방문자로 방문이 일어난다.
반대의 경우 재 방문자로 방문이 일어난다.
다음은 방문자 식별을 위한 UUID 생성 방법이다.
범용 고유 식별자(汎用固有識別子, 영어: universally unique identifier, UUID)는 소프트웨어 구축에 쓰이는 식별자 표준이다.
표준 형식에서 32개의 십육진수로 사용되며 8-4-4-4-12 형태와 같이 5개 그룹을 하이픈(-)으로 구분한다.
버전에 따른 생성 방식이다.
버전 1 - MAC 주소와 시간
버전 2 - DCE 보안
버전 3 - MD5 해시와 식별자이름
버전 4 - 랜덤
버전 5 - SHA-1 해시와 식별자이름
버전 4의 중복이 발생할 확률을 “생일 문제(Birthday problem)”로 계산한 예제이다.
구글 애널리틱스의 UUID는 버전 4(random)를 사용하고 있다. (가이드)
cid=35009a79-1a05-49d7-b876-2b884d0f825b
실제로 쿠키에 담긴 내용은 조금 다르다.
효율성을 위해서 randomly hash로 9자리 숫자와 시간 정보 10자리 숫자를 조합한다.
예) GA1.2.699874294.1455614537
9자의 hash를 통해서 정보의 분류 용도로 활용도가 있을 것으로 보인다.
생일 문제(生日問題)란 사람이 임의로 모였을 때 그 중에 생일이 같은 두 명이 존재할 확률을 구하는 문제이다.
n명이 있을 때의 확률
P(n) = 1 - ( 365! / ( 365**n * (365 -n)!) )
50명만 있어도 두 명의 생일이 같을 확률이 97% 이다.
IP 방식은 구현이 간편하지만, IP의 유동성이나 NAT 환경에서 대표성으로 인해서 세밀하지 못하다. 일반적으로는 브라우저 단위로 세분화 가능한 쿠키 방식을 사용한다.
본문에서는 방문자 식별이 쓰이는 사례와 방법을 예시한다.
먼저 웹분석의 기본 요소를 통해서 방문자 식별 사례를 본다.
방문
최초 이벤트 발생을 시점으로 방문이 일어나고 특정 조건 하에서 방문은 유지 된다.
IDLE이 특정 시간이 지나면 방문이 끊어진 것으로 고려 할 수 있다.
방문자
쿠키에 저장된 UUID를 통해서 식별 된다.
방문 시에 식별정보가 없는 경우 UUID를 생성하고, 신규 방문자로 방문이 일어난다.
반대의 경우 재 방문자로 방문이 일어난다.
다음은 방문자 식별을 위한 UUID 생성 방법이다.
범용 고유 식별자(汎用固有識別子, 영어: universally unique identifier, UUID)는 소프트웨어 구축에 쓰이는 식별자 표준이다.
표준 형식에서 32개의 십육진수로 사용되며 8-4-4-4-12 형태와 같이 5개 그룹을 하이픈(-)으로 구분한다.
버전에 따른 생성 방식이다.
버전 1 - MAC 주소와 시간
버전 2 - DCE 보안
버전 3 - MD5 해시와 식별자이름
버전 4 - 랜덤
버전 5 - SHA-1 해시와 식별자이름
버전 4의 중복이 발생할 확률을 “생일 문제(Birthday problem)”로 계산한 예제이다.
n | probability |
---|---|
68,719,476,736 = 236 | 0.0000000000000004 (4 × 10−16) |
2,199,023,255,552 = 241 | 0.0000000000005 (5 × 10−13) |
70,368,744,177,664 = 246 | 0.0000000005 (5 × 10−10) |
구글 애널리틱스의 UUID는 버전 4(random)를 사용하고 있다. (가이드)
cid=35009a79-1a05-49d7-b876-2b884d0f825b
실제로 쿠키에 담긴 내용은 조금 다르다.
효율성을 위해서 randomly hash로 9자리 숫자와 시간 정보 10자리 숫자를 조합한다.
예) GA1.2.699874294.1455614537
9자의 hash를 통해서 정보의 분류 용도로 활용도가 있을 것으로 보인다.
참조
생일 문제생일 문제(生日問題)란 사람이 임의로 모였을 때 그 중에 생일이 같은 두 명이 존재할 확률을 구하는 문제이다.
n명이 있을 때의 확률
P(n) = 1 - ( 365! / ( 365**n * (365 -n)!) )
n | p(n) |
---|---|
10 | 12% |
20 | 41% |
30 | 70% |
50 | 97% |
100 | 99.99996% |
위키백과
https://en.wikipedia.org/wiki/Universally_unique_identifier
https://ko.wikipedia.org/wiki/생일_문제
커버사진