태터 플러그인: TraceWatch 통계

블로그 통계 플러그인

얼마 전 태터툴즈 1.x로 갈아탄 후 800명 정도이던 접속자 수가 2000명을 넘어서고 있어서 카운트를 태터툴즈의 카운터가 아니라 TraceWatch의 카운터로 바꿀 생각으로 이 플러그인을 만들게 되었다. 처음에는 태터툴즈의 통계처럼 오늘/어제/전체 방문자 수만 표시하려고 하다가 TraceWatch의 API에서 다른 기능도 지원하고 있기 때문에 부가적인 통계도 표시하는 플러그인을 작성하게 되었다.

목차

블로그 통계 플러그인

난 블로그 설정을 한 페이지에 하나의 글이 뜨도록 설정해서 사용하고 있다. 이유야 여러 가지가 있지만 스크롤을 하면서 글을 읽는 것을 좋아하지 않기 때문이다. 이렇게 설정하고 사용하다 보니 각각의 페이지를 몇 번이나 읽었는지 궁금한 경우가 종종 있다(PC 통신 세대의 애환). 그러나 태터툴즈의 경우 페이지 카운터를 따로 제공하지 않기 때문에 그대로 사용해왔다.

얼마 전 태터툴즈 1.x로 갈아탄 후 800명 정도이던 접속자 수가 2000명을 넘어서고 있어서 카운트를 태터툴즈의 카운터가 아니라 TraceWatch의 카운터로 바꿀 생각으로 이 플러그인을 만들게 되었다. 처음에는 태터툴즈의 통계처럼 오늘/어제/전체 방문자 수만 표시하려고 하다가 TraceWatch의 API에서 다른 기능도 지원하고 있기 때문에 부가적인 통계도 표시하는 플러그인을 작성하게 되었다.

내려받기: TraceWatchStatPlugin.zip

이전의 글에서 알 수 있듯이 태터툴즈에 플러그인을 설치하는 방법은 워낙 간단하다. 내려받은 파일을 압축해제하고 좋아하는 FTP 프로그램으로 폴더째 태터툴즈의 플러그인 폴더(plugins)에 복사한 후 '관리도구/환경 설정/플러그인 관리'에서 TraceWatch 통계 플러그인을 '사용중'으로 설정하면 된다.

이 플러그인이 정상적으로 동작하기 위해서는 TraceWatch 로그 플러그인처럼 index.php 파일에서 TraceWatch의 설치 경로를 정확히 지정해주어야 한다.

// TraceWatch를 루트 폴더가 아닌 다른 폴더에 설정한 경우 ''에 해당 폴더의 경로를
// 지정한다. 예를 들어 /tt 폴더에 twatch를 설치했다면 다음처럼 변경해야 한다.
//
// $GLOBALS['HTTP_SERVER_VARS']['DOCUMENT_ROOT'].'/tt';
$GLOBALS['adl_alt_docroot']=$GLOBALS['HTTP_SERVER_VARS']['DOCUMENT_ROOT'].'';

// 따로 변경할 필요는 없다.
@include_once $GLOBALS['adl_alt_docroot'].'/twatch_include/api.php';

// 지정된 시간 내의 접속자 수를 표시한다. 600은 10분 동안의 접속자 수를 의미한다.
$seconds = 600;

사용 가능한 치환자

이제 남은 방법은 이 플러그인에서 지원하는 치환자를 스킨 파일의 적당한 위치에 삽입하면 된다. 한가지 주의할 것은 모든 치환자는 숫자만 달랑 출력한다. 따라서 그럼처럼 분당 접속자를 표시하고 싶다면 스킨 파일에 [ ##_twatch_otoday_## ]/분처럼 치환자와 메시지를 함께 삽입해야 한다. 이 플러그인이 사용된 예를 확인하고 싶다면 좌측 상단의 통계 그래프의 접속자 통계(숫자)에 마우스를 올려 놓으면 된다. 이 플러그인에서 지원하는 통계용 치환자는 다음과 같다.

방문자 관련 치환자

[ ##_twatch_vtoday_## ]     오늘 방문자의 수를 표시
[ ##_twatch_vyesterday_## ]     어제 방문자의 수를 표시
[ ##_twatch_vtotal_## ]     전체 방문자의 수를 표시

페이지뷰 관련 치환자

[ ##_twatch_ptoday_## ]     오늘 페이지뷰를 표시
[ ##_twatch_pyesterday_## ]     어제 페이지뷰를 표시
[ ##_twatch_ptotal_## ]     전체 페이지뷰를 표시
[ ##_twatch_pageview_## ]       현재 페이지의 읽은 횟수를 표시

접속자 관련 치환자

[ ##_twatch_otoday_## ]     $second초 동안 접속한 접속자의 수를 표시

치환자를 스킨에 삽입할 때는 [ ## 사이, ## ] 사이의 공백은 제거해야 한다.

문제 해결

이 플러그인에서 가장 만족스러운 부분은 읽은 횟수를 표시하는 부분이다. 그동안 페이지에 따른 읽은 횟수를 알 수 없었기 때문이다. 한 가지 주의할 것은 읽은 횟수는 정확한 통계가 아니라는 점이다. 그 이유는 다음 두 가지이다.

같은 페이지가 다른 URL로 표시되는 경우
네이버의 상식을 배웠습니다라는 글은 두 가지 URL로 접근할 수 있다. 하나는 1.x 방식인 https://offree.net/388이며, 또 다른 하나는 0.9x 방식인 https://offree.net/index.php?pl=388이다. 1.x 방식의 카운트 수는 100 미만이지만 0.9x 방식의 카운트 수는 3542나 된다. 이런 현상은 같은 페이지가 여러 URL로 표현되는 경우 언제나 발생한다.
첫 페이지 문제
이 문제도 첫 번째 문제와 비슷한 문제이다. 예를 들어 내가 올린 마지막 글의 주소가 https://offree.net/471라면 https://offree.net/를 입력해도 같은 페이지가 나타난다. 따라서 이 경우 역시 URL이 다른 것으로 볼 수 있다.

참고로 이 플러그인은 이전에 올린 TraceWatch 로그 플러그인(태터 플러그인: TraceWatch 업데이트)과는 다른 플러그인이다. TraceWatch 로그 플러그인[1]TraceWatch의 분석 코드를 쉽게 삽입할 수 있도록 하는 플러그인 반면에 이 플러그인은 TraceWatch의 통계치를 태터툴즈에서 표시할 수 있도록 하는 플러그인이다. 두 가지 프러그인을 하나로 합칠 생각도 해봤지만 이 플러그인이 필요없는 사람도 있을 것 같아 따로 작성하게되었다.

관련 글타래


  1. 이 플러그인은 반드시 먼저 TraceWatch를 설치하고, TraceWatch 로그 플러그인을 '사용중'으로 설정한 상태에서만 사용할 수 있다. 
글쓴이
author image
운영체제의 모든 것을 운영하고 있는 IT 블로거. IT 블로거라는 이름은 현재 시국때문에 시사 블로거로 바뀐 상태다. 그러나 나는 아직도 시사와 사회에 관심이 많은 IT 블로거일 뿐이다. 컴퓨터, 운영체제, 시사, 가족, 여행, 맛집, 리뷰등과 살면서 느끼는 소소한 일상이 블로그의 주제이다. 왼쪽의 아이콘은 둘째 딸 다예가 그린 내 모습이다.
2006/04/28 19:38 2006/04/28 19:38
오늘의 글
인기있는 글
조회수 많은 글 | 베오베
댓글 많은 글 | 베오베

Trackback

Trackback Address :: https://offree.net/trackback/472

Facebook

Comments

  1. 키리 2006/04/28 19:39

    올블로그에서 보고 왔습니다.
    만들어주신 TraceWatch 플러그인을 잘 사용하고 있었는데 마침 새 버젼(?)이 나왔네요.
    감사히 사용하도록 하겠습니다 :)

    perm. |  mod/del. reply.
    • 도아 2006/04/28 19:43

      새 버전이 아니라 다른 플러그인입니다. 그때는 TraceWatch로 모니터링할 수 있도록 하는 TraceWatch 로그이고, 이 번 플러그인은 TraceWatch의 통계를 표시해주는 TraceWatch 통계 플러그인입니다.

  2. 키리 2006/04/28 19:54

    예에, 다시 읽고 설치를 해보니 확실히 알겠습니다
    섣불리 덧글을 단 게 죄송스러워지네요;
    어찌되었건 잘 사용하겠습니다.
    좋은 플러그인 감사합니다~

    perm. |  mod/del. reply.
  3. sputnik 2006/04/28 21:59

    올블에서 보고 왔습니다~ 좋은 플러그인 소개해 주셔서 감사합니다.
    그런데, 설치까지는 성공했는데 스킨 파일을 [ ##_twatch_otoday_## ]/분이렇게 변경하는 방법을 모르겠네요..;; 가르쳐주시면 감사하겠습니다;

    perm. |  mod/del. reply.
    • 도아 2006/04/29 11:54

      그대로 하면 됩니다. 스킨 파일의 임의의 위치에 [ ##twatch_otoday## ]/분이라는 코드를 삽입하면 됩니다. 다만 [ ## 사이의 공백은 제거해야 합니다.

  4. sunshiny 2006/04/29 00:56

    안녕하세요. 설치 해봤는데 잘 안되서 질문 드려요.
    테터 클래식 오피셜릴리즈 버전에서는 안되는건가요? 하려면 어떻게 해야하는지 죄송하지만 조금더 자세하게좀 알려주세요^^
    그럼 즐거운 하루 되세요.~~

    perm. |  mod/del. reply.
    • 도아 2006/04/29 10:26

      플러그인 기능은 1.x 이상에서만 지원되는 기능입니다. 따라서 클래식에서는 사용할 수 없습니다.

  5. 유마 2006/04/29 01:27

    이제 통계확인을 위해 사이트를 안가도 되겠습니다. ^^;;;
    자세한 걸 보기위해선 가야겠지만, ^^ 어느정도는 블로그에서 확인가능하게 되었네요~. 감사합니다.!

    perm. |  mod/del. reply.
    • 도아 2006/04/29 10:27

      예. 저도 통계 확인때문에 사이트에 접속을 했었는데 이렇게 해두니 갈 필요도 없어서 좋더군요.

  6. sputnik 2006/04/29 17:43

    으음.. 귀찮게 해드려서 정말 죄송합니다..;;
    저 치환자를 스킨 편집창에 적당한 곳에 삽입했더니, 그냥 흰 화면만 뜹니다. 도메인 주소를 입력하면 밑에 '완료'라는 말만 뜨고 텅 빈 화면..;;
    왜 이러는 걸까요..;;

    perm. |  mod/del. reply.
    • 도아 2006/04/29 17:55

      본문을 자세히 읽어 보시기 바랍니다. 본문에서 이미 설명하고 있듯이 TraceWatch라는 통계 프로그램을 설치한 상태에서 TraceWatch 로그라는 플러그인을 활성화한 후 TraceWatch 통계라는 플러그인을 활성화해야 정상적으로 동작합니다.

      그러나 님의 블로그에서 확인해보니 TraceWatch 로그라는 플러그인이 활성화되어 있지 않더군요. 만약 플러그인을 사용하지 않고 분석 코드를 삽입한 것이라면 index.php 파일의 경로가 맞는지 확인하시기 바랍니다.

  7. rinoss 2006/05/03 00:06

    안녕하세요.. TraceWatch 통계 플러그인 설치 했는데요...
    윗분 처럼.. 흰 화면만 뜹니다 ㅠㅠ;;
    TraceWatch로그플러그인도 활성화 시켰는데... 왜이러는지 모르겠어요 ㅠㅠ

    perm. |  mod/del. reply.
    • 도아 2006/05/03 16:13

      단순한 증상만으로는 저도 원인이 무엇인지 알 수 있는 방법이 없습니다.

  8. 섭이 2006/05/03 15:39

    한 페이지에 2개의 포스트가 보이는 블로그는 좀 난감하군요. 시간이 흐르면 흐를수록 페이지는 계속 밀리다 보니 숫자는 점점 오차가 커지고요.. ;ㅁ;
    페이지 접속횟수가 아닌 해당 포스트에 대한 횟수를 나타내주는 방법은 없을까요? http://blog.synec.net/?pl=384 에서는 DB를 건드리신듯 한데 태터클래식에서만 되는것 같네요..;

    perm. |  mod/del. reply.
    • 도아 2006/05/03 16:13

      DB를 손대지 않고는 방법이 없습니다.

  9. 몽상철학가 2006/05/03 18:21

    안녕하셔요? 앞서 플러그인도 잘 받아서 쓰고 있습니다. 감사합니다. 제가 위에 만드신 플러그인을 조금 바꿔보고 싶은데, 코딩 능력이 안 돼 놔서 좀 여쭤보려고요.

    function TwatchVistorsToday($target) {
    $target=twatch_value('visitors', 'today');
    return $target;
    }
    요기서 'visitors'를 불러다 쓰시는데, 이게 어디서 읽어오시는 건가요?
    그리고 트워치 데이터 중 sessions은 무슨 의미인가요?

    그리고 출력을 '숫자'가 아니라 '문자'로 하려면 어떻게 해야 하는지, 조금 도와주실 수 있으신지요? :-) 좀 무리한 부탁일까요?^^

    perm. |  mod/del. reply.
  10. 몽상철학가 2006/05/03 19:54

    아, 감사합니다. 그런데 제가 원한 것은 방문자 수가 얼마 이상이면(if 구문을 넣어서 비교해가지고요) "오늘 꽤 오시네요." 식으로 표시하려는 거거든요. ^^

    그리고 session의 의미는 도아님도 모르시나요?^^

    perm. |  mod/del. reply.
    • 도아 2006/05/03 20:03

      제가 한글화한 언어팩을 사용하기때문에 제 TraceWatch에는 session이 없습니다. 그래서 뭔소리인지 알 수 없었습니다. 예를들어 한번 방문한 사람이 한 사람 있고 두번 방문한 사람이 한 사람있다면 고유 방문자는 2명, 세션은 3명이됩니다.

      즉, 세션을 지우고 방문자로 보면됩니다.

  11. 몽상철학가 2006/05/04 11:04

    아, 그렇군요. 그럼 세션은 총 방문수라고 보면 되겠네요. :-) 감사합니다.

    perm. |  mod/del. reply.
  12. 먼지군 2006/05/06 20:47

    안녕하세요.
    twatch 플러그인에 이어서 멋진 플러그인을 만들어주셔서 감사합니다.
    그런데 제 블로그 적용간에 다소의 문제가 있어서 질문을 드립니다.

    제가 겪고 있는 문제는twatch 통계 플러그인을 사용하면 모든 값이 -1 로 나오는 경우입니다. 기존에 twatch를 사용중이었고(테터 0.9x 부터 1.0.2 까지) 테터를 1.0.4 로 업데이트하면서 도아님의 플러그인을 적용해서 현재까지 큰 무리없이 잘 사용하고 있어서, twatch 설정간의 문제는 아닌듯 합니다만, 이리저리 고쳐봐도 잘 안되네요.

    그래서 도아님께 도움을 부탁드려봅니다.
    (제 블로그에 해당 플러그인의 치환자가 적용된 부분은 좌상단의 턱스(펭귄) 그림의 alt(그림 설명) 부분과 각 포스트의 제목 하단의 page_views 이며, 턱스 그림을 twatch 메인화면으로 연결시켜놓았습니다.)

    제 블로그 : http://mr-dust.pe.kr
    Twatch : http://mr-dust.pe.kr/counter/twatch/

    perm. |  mod/del. reply.
    • 도아 2006/05/08 07:43

      블로그를 방문해봤지만 치환자가 변환된 결과라서 저 역시 원인을 알 수 없었습니다. 값으로 변환되는 것으로 봐서 치환자는 정상적으로 변환된 것으로 보입니다.

      다만 플러그인인에서 함수를 호출하는 부분에 문제가 있는 것으로 생각되지만 제공된 정보만으로는 다른 원인을 추측하기는 힘듭니다.

  13. 먼지군 2006/05/08 09:42

    네. 그럼 제 나름대로 원인이나 해결책을 찾아보는 수밖에 없겠네요.
    여튼 살펴봐주셔서 감사합니다. (__)

    perm. |  mod/del. reply.
    • 도아 2006/05/08 16:44

      일반적으로 -1이 반환되는 것은

      twatch_connect();

      에서 twatch db에 연결하지 못하는 경우

      twatch_value('visitors_', 'today');

      에서 visitors_처럼 twatch api에서 지원하지 않는 변수를 전달한 경우입니다.

      그러나 소스를 변경한 것이 아니라면 일반적으로 정상적으로 동작해야 합니다.

      일단 다음과 같은 프로그램으로 정상적으로 twatch db에 연결되는지 확인해보기 바랍니다. 값이 출력된다면 twatch db에 정상적으로 연결되는 것입니다. -1이 출력된다면 연결이 안된 것으로 봐야 합니다.

  14. 먼지군 2006/05/08 19:43

    네.. 오전에 twatch api를 살펴보고 도아님이 말씀해주신 방법대로 해서 테스트를 해보았는데, 그러니 아예 나오질 않더군요. 그래서 API를 보면서 이런저런 시도를 해보았는데, 잘 안되었습니다.
    (그리고 지금 다시 해보니 별반 다르지 않은 결과를 보여주네요.)

    잠시 접어두고 Twatch 의 Feeback 을 이용해 문의를 해봐야겠습니다.
    신경써주셔서 감사합니다.

    perm. |  mod/del. reply.

(옵션: 없으면 생략)

글을 올릴 때 [b], [i], [url], [img]와 같은 BBCode를 사용할 수 있습니다.