블로그 메타 사이트(allblog, blogkorea)의 피드 수집 방식 유감 
블코나 올블 같은 블로그 메타 사이트에 자신의 블로그(피드)를 등록하면, 새로운 글을 포스팅하는 경우 약간의 시간차가 있긴 하지만, 길어야 10분 이내 자신의 글이 메타 사이트에 등록된다.
어떻게 내가 글 쓴 것을 알고 그것을 등록하는 거지? 신기하네...
이런 생각을 한 적이 있는데, 그 배경에는 설마 주기적으로 내 피드를 가져가서 이전 피드랑 비교하는 식으로 처리하는 것은 아니겠지...하는 생각이 있었다.
설마 그 많은 블로그들의 피드를 계속 읽어들여서 비교하는 방식을 쓸까?...그렇진 않겠지... 그렇다면 도대체 저 두 메타사이트는 내가 새글을 쓴걸 어떻게 귀신같이 알고 등록하는 거지? 거참 신기하다...
그런데 사실은 내가 설마했던 그 방식을 사용하고 있다. 메타 사이트에 등록한 대략 1만여개의 블로그의 RSS/ATOM 피드 파일을 주기적으로 읽고 비교하는 방식이다.
그래서 어제 한번 과연 두 사이트는 얼마나 주기적으로 가져가나 실험을 잠깜 해봤다. 당연히 어떤 객관성을 강조하기 위한 실험이 아니라 대~충 했다. 근데 크게 그 평균값은 당장에 달라지지 않으리라 본다.
블 로그코리아(blogkorea)는 660초마다 한 번씩 내 RSS 피드를 가져갔다. 올블로그(allblog)는 540초마다 한 번씩. 다시 말하면 올블은 하루에 160번, 블코는 130번 정도 내 블로그 서버에 접근해서 RSS 피드 파일을 가져간다.
이제 내가 등록하고 있는 무버블타입 플러그인 블로그의 실험 당시의 RSS 피드 파일의 크기를 보니까 35K 바이트 정도였다. 이 피드 파일의 크기는 평균이라는 개념을 잡기 곤란하다. 하나의 피드에 몇개의 글을 담느냐, 전문을 다 담느냐 요약 정도만 담느냐, 영문이냐 한글이냐, 한글이면 EUC-KR인코딩이냐 UTF-8인코딩이냐에 따라 시시각각 변한다.
어쨋든 실험해보는 순간 내 RSS 파일의 크키를 기준으로 계산해보면, 내가 올블과 블코 두 군데 메타 사이트에 등록한 "원죄(?)"로 하루에 약 10 메가의 트래픽을 소비당하고 있었다.(그 절대적인 크기는 이 실험에서 그리 중요하지 않다)
10메가의 트래픽이라면 크다면 크고 작다면 작지만, 대체적으로 그리 부담이 되는 양은 아니라고 봐도 될 것이다. 내 호스팅의 하루 트래픽 용량이 400메가인데, 어차피 방문객도 없는 이런 외딴 블로그에 꼬박 꼬박 10메가를 메타 사이트에 소비한다고 달라질건 하나도 없다고 볼 수 있다.
그렇다면 정말 아무 문제가 없는 방식인가?
메 타 사이트들의 성능을 평가하는 여러 잣대가 있을 수있는데, 그중 블로거의 새 글을 얼마나 실시간으로 포착해서 메타 사이트에 나타내주느냐...하는 것이 있을 것이다. 현재의 피딩 방식은 여기서 딜레마에 빠진다. 즉, 실시간 개념으로 빨리 포착하기 위해선 피딩 시간 간격을 좁혀야 한다. 그 말은 결국 블로거의 트래픽을 더 많이 소비해야만 한다는 말이 된다. 현재 두 메타 사이트가 평균적으로 넉넉잡고 10분 간격인데, 이걸 5분 간격으로 높인다면 블로거들은 두배의 트래픽을 소비(제공)해야만 하는 것이 된다.
이 런 서버와 클라이언트간의 정보 교환 방식은 폴링(polling) 혹은 pull 방식이라고 표현할 수 있을 것이다. 개개의 블로거가 RSS 피드를 제공하는 서버 역할이 되고, 메타 사이트의 피딩로봇이 클라이언트가 되는데, 그 로봇이 주기적으로 서버에 접근해서 업데이트를 포착하는 방식.
그에 반하는 방식은 push 방식 혹은 인터럽트 방식이라고 부를 수 있을려나? 즉 개개의 블로그 시스템에서 새론 글을 업데이트하면 그 사실을 메타사이트에게 알려주는 방식이다. 이 경우 하루에 열개의 글을 쓰든 한달에 하나의 글을 쓰든 쓸때만 트래픽이 발생한다. 따라서 메타사이트 서버도 로드가 매우 적게 걸리는 효율적인 방식이다. 수많은 블로그의 피드를 수집하는 리소스를, 검색/인덱싱 등에 분배할 수 있을 것이다.
테크노라티나 그외 여러 해외의 메타사이트는 다 이 방식을 사용하고 있다. 따라서 무버블타입이나 워드프레스 등과 같은 블로그 툴은 당연히 이런 방식을 지원하고 있다.
테크노라티의 경우 XML-RPC 방식에 의한 업데이트 ping 방식을 지원하고 있으면, weblogs.com의 경우 XML-RPC 핑 이외에 REST 방식으로 GET, POST 등으로 업데이트를 알리는 방식까지 지원한다.
이 게 기술적으로 어려운 것이냐하면 전혀 그렇지 않다. 그런데도 한국의 여러 블로그 메타 사이트는 블로거들의 트래픽을 주기적으로 쓸데 없이 소비하면서, 자신의 서버 리소스까지 낭비하는 조금 단무지틱한 폴링 방식으로 피드를 가져간다는게 조금 뜻밖이다.
왜 업데이트 핑을 지원하지 않는걸까? 도.대.체. 왜!!!
올블의 경우 수동 핑 방식을 지원하는데, 과연 누가 글하나 쓰고 올블의 자기 계정에 들어가서 핑 버튼을 누를까...
앞 선 하나의 실험에서 내 경우 하루에 두 메타 사이트 도합 약 10메가의 트래픽을, 단지 메타에 등록만 했다는 죄로 새 글을 업데이트 했냐와 상관없이 소비한다고 했는데... 네이버나 다른 수많은 회원을 가진 블로그 시스템에서 본다면, 아무리 그곳이 트래픽 천국이라고 하지만 이건 "낭비"가 아닐 수 없다. 그 전적인 책임은 두 메타사이트의 프로그래머들이 져야 할것이고...
업 데이트 핑을 지원하지 않는 블로그툴이나 가입형 블로그가 존재하는 마당에, 당장의 실질적인 효과가 적을 순 있다. 하지만 메타 사이트에서 이것을 지원한다면, 네이버 같은 대형 사이트에서 이 간단한 업데이트 핑을 지원하지 않을 수 없다.
이 페이지에 서 거의 실질적 표준(?)이라고 볼 수 있는 XML-RPC, REST 방식의 설명을 볼 수 있다. 정말 기술적으로 그 도입의 어려움을 논하는 것 자체가 우스울 정도로 간단한 방식이니 얼른 이 업데이트 핑을 블로그 메타 사이트에서 지원했으면 한다.
수정 추가:
무버블타입에서는 설정의 "새 엔트리 기본값" 영역에서 주소를 아래 부분에 메타사이트가 제공하는 ping 주소를 입력하면 됩니다.
올블로그의 경우 http://v2.allblog.net/RpcPing.rem 주소를 입력하면 됩니다.
Comments
Posted by 골빈해커 {OpenPGP 서명} , 2006년 06월 14일 오후 6:40
Posted by CN {OpenPGP 서명} , 2006년 06월 14일 저녁 7:12
Posted by 알록블록 {OpenPGP 서명} , 2006년 06월 14일 저녁 7:27
Posted by 작은인장 {OpenPGP 서명} , 2006년 06월 14일 저녁 7:35
Posted by sandi {OpenPGP 서명} , 2007년 03월 15일 밤 10:37

Posted by 알록블록 {OpenPGP 서명} , 2006년 06월 14일 오후 6:56