1. 방문자 최소 단위 정의 변경
방문자 최소 단위가 변경 했습니다. 이유는 IP와 UA로 사용자를 식별하는 경우, 카페나 공항처럼 하나의 공유기를 다수의 사람이 사용하고 있는 상황에서 같은 브라우저로 접속한다면 한 명의 사용자로 식별될 가능성이 있기 때문입니다. 물론 이렇게 진행하더라도 사용자를 카운트 하는 것에는 일관된 오차가 있으므로 유의미하진 않겠지만, 제가 생각하는 방문자는 이보다 더 세세한 단위였습니다.
따라서 저는 IP와 UA를 이용하는 것이 아니라, 사용자에게 임의의 방문 토큰을 발급하기로 했습니다. 방문하는 모든 사용자에게 토큰을 발급하여 IP에 구애받지 않고 더욱 세세한 방문 로그를 쌓을 수 있을 것 같습니다. 이때, 같은 사용자더라도 다양한 기기로 접속하는 경우가 있는데, 이는 접속 기기를 고유한 방문자로 정의하기로 했습니다.
<br>
방문자 최소 단위
사이트에 접속 가능한 브라우저 혹은 전자기기
<br>
2. 토큰 발급 방법과 관리 방법 - 토큰 정책 정의
토큰 기반으로 사용자를 식별하기로 했으므로, 이제 토큰을 어떻게 발급할 것이고, 어떻게 관리할 것인지에 대해 정의하도록 하게습니다.
토큰 발급 방법
토큰 값은 의미없는 랜덤 값이어야합니다. 따라서 토큰은 UUID를 사용하기로 했습니다. 이때, 토큰의 헤더에 YP 라는 접두사를 붙여 토큰의 의미를 조금 더 확실히 합니다. 토큰이름은 yp_visitor_id로 결정했습니다. yp 접두사를 붙여서 다른 토큰들과 이름 충돌을 막았습니다.
토큰 관리 방법
토큰을 발급하고 나선 이제 이 토큰을 얼마나 유지해야할지 정해야합니다. 결론적으론 저는 토큰 만료 기간을 1년으로 설정했습니다. 개인/기술 블로그의 특성상 글이 자주 올라오지 않고 재방문 간격이 상대적으로 깁니다. 하지만 그렇다고 해서 토큰의 만료 기간을 지나치게 길게 잡으면 추적 토큰의로의 역할을 하게 될 수도 있습니다. 저는 방문자 수만 카운트 하기 위해서, 기간을 타협해 1년으로 지정했습니다.
<br>
3. 필요한 기능 정의
토큰 관련 기능
- 토큰 발급 기능: 정책에 맞는 토큰을 발급한다.
- 토큰 저장 기능: 발급된 토큰을 사용자에게 저장한다.
- 토큰 식별 기능: 토큰이 발급되었는지 확인한다.
방문자 식별 기능
- 방문자 접근 기록 수집 기능: 블로그에 접속한 방문자의 최소한의 활동을 수집한다.
- 하루 방문자 집계 기능: 00:00부터 23:59 사이에 접속한 방문자들의 토큰을 저장한다.
- 하루 방문자 수 집계 기능: 00:00부터 23:59 사이에 접속한 방문자 수를 저장한다.
<br>
마무리
2편까지는 기능 정의에 초점을 맞추어 글을 작성해보았습니다. 기능 정의가 확실할 수록 구현의 모호함은 줄어들 것입니다. 기능 정의가 거의 완료되었기 때문에, 다음편엔 조금 더 기술적인 이야기로 작성해보겠습니다! 긴 글 읽어주셔서 감사합니다☺️