Archive for March, 2007

네이버 블로그, RSS 검색이 가능해졌다

입사한 이래로 NHN, 네이버 라는 태그를 꽤 유심히 살펴보고 있는데 2, 3주쯤 전인가에 네이버 블로그가 다른 검색엔진의 검색을 막는다는 글을 봤다. 물론, 그 전에도 있던 얘기었지만…

문제는 http://blog.naver.com/robots.txt 와 http://blog.rss.naver.com/robots.txt 였다.
어느 사용자가 문의한 결과에 따르면 자신의 글을 외부에 검색되게 하고 싶으면 RSS를 공개하면 된다는 답변을 받았다고 한다. 문제는 rss 서버에 있는 robots.txt 때문에 검색엔진이 들어올 수 없다는 거였다.

사실, 블로그 서버까지는 어찌어찌 명분이 서더라도 RSS 서버에 robots.txt 를 두고 모두 접근 금지 시켜버린 건 사실 어떻게 봐도 명분이 없는 문제였다. 건의한다는 게 깜빡하고 있었는데, 누군가 나와 같은 생각을 했었나보다. 여하튼 오늘 생각나서 살펴본 RSS서버에는 robots.txt 가 없다. 주소를 입력하면 그 대신 error 페이지가 나타난다.

RSS에 링크가 공개되어있으므로, RSS만 공개되더라도 robots.txt 의 존재여부에 관계없이 검색엔진은 링크된 글을 색인할 수 있다. 네이버 지식인 서비스는 로봇의 접근을 금지하고 있지만 간혹 구글에서 검색되는 경우가 있는데, 다른 외부글에서 해당 페이지를 직접 링크한 경우이다. 이 경우에 크롤러는 robots.txt 를 무시하고 직접 링크된 경로로 가서 데이터를 수집한다.

마찬가지로, 비록 블로그 서버는 접근을 금지하고 있으나 RSS만 오픈되어있다면 게시글 역시 인덱싱 될 수 있다는 것이다(근데 본문이 iframe이라 잘 될지는… -_-).

조금씩 변화하는 네이버의 이런 모습을 바라보는게 즐겁고, 나 역시 그 흐름에 존재할 수 있어 좋다.

P.S// 참고로, 내 네이버 블로그의 RSS 주소는 http://blog.rss.naver.com/gonom9.xml 이다. 크롤러님들이 색인해가라고 링크걸었다. ^^

특이한 Javascript 표현

정확히 말하면 ECMA 스크립트의 특징이지만 뭐… ^^

첫번째, 객체의 생성

var arr = [];
var obj = {};
var str = "";
var arr1 = [1,2,3];
var obj1 = {prop1 : 'value1', "prop2" : 'value2'};

Object는 {} 로, Array는 []로 생성할 수 있다. object 를 생성할 때 property 의 이름은 따옴표를 따로 해주지 않아도 prop1의 경우처럼 그냥 사용할 수 있다. 하지만, 혹시라도 있을지 모르는 문제점(prop1이 변수로 선언되어있다던가 하는…)을 미리 방지하기 위해서 따옴표를 붙여주도록 하는게 좋다. 단, 충돌이 없음이 확실하다면 생략해도 무방하다.

두번째, object property의 접근

var obj = { "prop1" : "value1", "prop2" : "value2" };
alert(obj.prop1);
alert(obj["prop1"]);

. 으로 호출하는 방법, 문자열로 인덱스를 지정하는 방법. 둘 다 사용가능하다. 따라서 다음과 같은 것도 가능하다.

var i=2;
alert(obj["prop"+i]);

세번째, or 의 사용

var val = predefined_value || "value";

or 연산자로 연결된 값을 처음부터 비교해서 false와 동등하게 처리되는 값이 아니라면 반환한다. false와 동등하게 처리되는 값에는 undefined, null, 숫자0, false가 있다. 위 코드에서는 predefined_value 라는 변수가 정의되어있지 않으면 “value”이라는 값을 val 이라는 변수에 할당한다. 보통 IE와 FF의 이벤트 처리가 다른데 그럴 경우에 다음과 같이 사용하기도 한다.

function eventHandler(e) {
	var evt = e || window.event;
// ... some code
}

네번째, 괄호()의 사용

(function(str){
	alert(str);
})("str");

괄호는 괄호안의 내용을 해석/실행해서 결과값을 리턴하는 역할이다. (1+2) 라고 하면 괄호는 1+2를 계산해 3 이라는 값을 리턴하는 것과 마찬가지라는 뜻. 따라서 위처럼 anonymouse 함수를 만들어놓고 바로 실행할 수도 있게된다(괄호를 통해 함수객체가 반환되었기 때문).

진도리….

회사에서 만든 자바스크립트 프레임웍의 마스코트 후보 1번…

image001.jpg

다크서클이 가득한 게… 가슴이 아프다. ㅋㅋ

참고로, 우리 프레임웍 이름이 “진도”다.
프로젝트 이름에 개 이름을 붙이다가 기반이 되는 가장 중요한 녀석에게 우리나라 개 이름을 붙이자고 해서 붙인 거다. ^^ 지금은 진도와 샤페이가 주된 프로젝트! 진도 이 녀석은 올해 안으로 빛을 보지 않을까 싶다. ^^

근데 진짜 웃기게 생겼네 =_=;;

Page 2 of 512345