Rev. 2.73

Ajax는 웹을 빠르게 변화시키고 있다. 사용자가 중심이 되는 웹2.0 운동에 중요한 요소로 손꼽히고 있기 때문이다. 그것은 그동안 웹에서 할 수 없었던 진보된 UX를 제공할수 있게 하고, 브라우저 외에 불필요한 액션이나 애드온 애플리케이션을 필요로 하지 않으며, 트래픽 송수신량까지 감소시키는 효과가 있는 등, 특징을 듣는 것 만으로 실증날 정도다.

그동안 자바스크립트를 사용하면서도 자바스크립트가 없는 환경에서 정상적으로 작동하는 웹을 생산하는 것에 고민해 왔다. 우리는 그것을 웹표준이라고 불렀다. 그리고 이 것을 지키는 것이 쉽지 않은 일이라는 것을 잘 안다. (사실, 넌자바스크립트 환경에서 돌아가는 웹은 졸라게 불편하다.) 너나 할 것 없이 Ajax가 도입된 세로운 서비스를 선보이고 있는 이 시점에서 이와 같은 생각은 구세대적인 발상이 아니가? 라고 반문해 본다. 과연 자바스크립트 없는 환경이 얼마나 되는가? 그것이 얼마나 중요하기에 일부러 자바스크립트를 꺼놓은 체 테스트하고 심지어 비방까지 일삼는 행위를 목격한 적이 있다. 과연 그것이 욕을 들어 먹어야 할 정도로 중요한 것인가? 한 때 강제로 스팸성 팝업이 열리는 것이 불쾌해서 자바스크립트를 비활성화하고 웹브라우저를 사용해 본 경험이 있다. 하지만 요즘같은 때 자바스크립트 없는 환경의 웹서핑은 마우스없는 웹서핑과 차이가 없을 정도다.

구글맵과 같은 서비스가 왜 굳이 Ajax로 만들었을까? 꼭 Ajax가 아니어도 ActiveX나 플래시로 더 쉽게 구현할수도 있었을 것을... 서드파티 플러그인을 사용하지 않는 것에 큰 의의가 있다고 본다. Ajax의 환경을 고집하면서 넌자바스크립트 환경을 고려하는것 자체가 불가능한 경우가 많다. 자바스크립트가 없이도 돌아가는 웹페이지를 기본으로 Ajax를 끌어들인다는 말 자체가 모순이며 걸림돌이다. 심지어 그 걸림돌은 Ajax의 무한한 가능성을 짓밟는 행위와 다를바 없지 않은가. 결국 ActiveX나 Flash또한 웹을 더욱 애플리케이션 스럽게(더욱 편리하게) 만들수 있게 하기위해 존재하는 것이다. 불행하게도 이것들로 인해 발생하는 더 큰 문제들이 이미 잘 알려져 있다. 그렇다고 대안으로서 Ajax가 모두 해결하는 마술사는 아니지만 적어도 보다 많은 사람들을 대상으로 서비스할 수 있는 것은 자명한 사실이다.

브라우저들이 똑똑해지고 있다. 최근 출시된 IE7이나 오페라의 페이지 확대기술은 놀랍다. 딱히 웹표준을 준수하지 않은 페이지도 레이아웃이 깨지지 않으면서 충분히 텍스트를 확대해서 보여주는 기술이 탑재되어 있다. 새 기술이 확산되면 주변환경도 자연스럽게 변하는 것이다. Ajax바람이 끊이지 않는다면 앞으로는 웹세상은 어떻게 바뀔까? 단연, 자바스크립트 처리능력이 뛰어난 브라우저가 인기를 끌게 될 것이다. 그리고 더욱 머리가 좋아진 검색엔진은 자바스크립트가 그려놓은 내용까지 긁어가게 될지도 모를 일이다.

뭐, 결론은 "너무 지나친 얽매임은 건강에 좋지 않다"이다.

2007-5-26 덧. 아쉽게도 열심히 써놓고 공개하기를 깜빡한 글이군요. 이제서야 공개합니다.

Comments

Scriptaculous 1.6.4를 통해 비공식으로 배포된 프로토타입(Prototype) 1.5.0 rc1에는 많은 변화가 있다. 그중에서도 진보된 이벤트 처리와 DOM(Document Object Model) 셀렉터에 대해 알아보자.

이벤트 처리
Event.observe에 bindAsEventListener를 직접 인자로 넘길 수 있게 되었다.

var Clicker = Class.create();
Clicker.prototype = {
initialize: function(link) {
Event.observe(link, 'click', this.onClick.bindAsEventListener(this, 'red'));
},
onClick: function(event, color) {
Event.element(event).setStyle({color: color});
Event.stop(event);
}
}

new Clicker('cool');

간단한 DOM 메서드
그동안 DOM 다루기는 정말로 고통스러웠다. rc1은 정말로 간단하게 DOM을 선택할수 있는 메서드를 제공하고 있다. 자식노드를 선택하거나 가로질러 선택하거나 부모노드를 선택할 때 매우 간단하게 처리할 수 있다.

$('menu').up(); // 부모노드 반환
$('menu').down() // 자식노드 반환
$('menu').next() // 다음노드 반환(동일한 레벨에있는 노드)
$('menu').previous() // 이전노드 반환(동일한 레벨에있는 노드)
$('menu').down(2) // 3번째 자식노드 반환
$('menu').down('li', 0) // 자식노드중 첫번째 li태그 반환
$('sidebar').descendants() // 자식노드들의 배열 반환
$('selected').previousSiblings() // 주변에 있는 이전 노드들의 배열 반환
$('actions').ancestors() // 부모노드들의 배열 반환
$('actions').siblings() // 주변에있는 다음 노드들의 배열 반환

멋지지 않은가? "$('menu').childNodes[3].firstChild.firstChild"와 같은 지저분하고 비효율적인 짓을 하지 않아도 된다. 더욱이 파이어폭스는 firstChild로 접근하면 #text를 반환하는 경우가 허다하기 때문에 모든 브라우저에서 통용되는 DOM을 다루기란 결코 쉬운일이 아니었다. 이와 같은 메서드의 출현은 매우 반가운 일이다. 따라서 XML도 더욱 다루기 쉽게 되었다. 만세!

인용 원문 : encytemedia.com

Comments

tw-시간별통계.jpg

종합평균, 시간별 방문자 그래프

tw-주간통계.jpg

종합평균, 주별 방문자 그래프

아마도 폭주의 원인은 웹사이트 통계프로그램인 TraceWatch인듯 합니다. 10개월가량 사용해 온 TraceWatch는 최소량의 정보저장 설정에도 불구하고 DB저장공간이 50MB가까이 누적되어 있었습니다. 왠만하면 개인 계정에서는 통계프로램을 설치하여 돌리는 것은 금해야 겠더군요. 느려터진 Google Analytics로 만족하려고 합니다. TraceWatch를 제거하면서 그동안 쌓인 통계자료를 공개합니다.

twg.jpg

고유 방문자, 페이지뷰, 로봇에의한 페이지뷰

twg-순위그래프.jpg

참조 URL 순위 월별 그래프

twt-국가.jpg

국가별 방문 종합순위

twt-로봇.jpg

로봇 방문 종합순위

twt-참조URL.jpg

참조URL 종합순위

twt-페이지.jpg

방문 페이지 종합순위

twt-브라우저.jpg

robot.txt를 설정하지 않고 운영한 결과입니다. 참조URL(레퍼럴) 순위가 재미있군요. 네이버는 죽고 구글은 뜨고 다음은 덩달아 뜨는 추세입니다. 봇의 활동은 야후가 압도적으로 높지만 가져간 트래픽양 만큼이나 방문객을 끌어다주지는 않네요. 야후봇은 막을만한 가치가 있어보입니다.

Comments