dLite 로고근래에 다양해진 여러 JavaScript 라이브러리 출현으로 웹 개발 작업에서의 그 사용 빈도는 덩달아서 크게 늘어났으며, 많은 개발자들의 이런 라이브러리들에 대한 의존도 역시 자연 더 높아질 전망이다.
하지만, 이런 만능 JavaScript 라이브러리들을 쓰면서도 정작 특정 프로젝트에 필요한 기능들은 제한적일 수 밖에 없다. 결국, 이런 작업에 이런 덩치 큰 JavaScript 라이브러리의 힘을 빌리는 것은 어쩌면, 과유 불급, 과잉을 자초하는 행위일지도. 그래서, 평상시 개발에 있어서 꼭 필요한 기능들만 모아놓은 알짜배기 JavaScript 라이브러리의 필요성이 대두되었고, 이런 요구에 부응해서 태어난 놈이 이 dLite라는 놈이다.

dLite에 있는 이 알짜배기 기능들을 모두 나열해 보아도 무척이나 단출하다:

  • elm – 특정 id를 포함하고 있는 element 찾기
  • elmsByClass – 특정 class 이름을 포함하고 있는 모든 element들 찾기
  • DOMReadyDOM이 준비가 되자마자 원하는 함수를 실행
  • addClass – class 이름 추가
  • removeClass – class 이름 제거
  • addEvent – 이벤트 핸들러(handler) 추가
  • removeEvent – 이벤트 핸들러(handler) 삭제
  • stopDefault – 이벤트에 부여된 기본 동작이 진행되는 것을 막음
  • cancelBubbling – 이벤트의 버블링(bubbling) 현상을 취소시킴

그야말로, 평상시 자주 쓰이는 알짜배기 함수들만 모아 놓았다.
특히나 모든 dLite 함수들은 global scope에서 정의되어 있기 때문에, objectName.methodName 형식으로 부를 필요없이 함수 이름을 그대로 사용할 수 있다. 물론, 같은 이름의 함수가 이미 존재할 경우에는 원래의 함수가 대신 사용되고, dLite.함수_이름 형태로 dLite에 있는 함수를 끄집어 사용할 수도 있다.

원 개발자의 기존 JavaScript 라이브러리인 DOMAssistant도 상당히 가볍고 좋았는데, 이놈은 그 보다 더 가벼운 DOMAssistant light 정도로 생각된다.

쉽게 빠지기 쉬운 여러 JavaScript 라이브러리들에 대한 깊은 의존도에서 벗어나서 DOM Scripting 기본에 충실하려는 사용자들에게 상당한 매력이 있을 듯.

EmulateIE7 tells IE8 to display standards DOCTYPEs in IE7 Standards mode, and Quirks DOCTYPEs in Quirks mode. We believe this will be the preferred IE7 compatibility mode for most cases. Support for IE=EmulateIE7 is available now as part of the IE June Security Update for IE8 Beta 1.

IEBLog : Introducing IE=EmulateIE7

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

요넘은 게으른 개발자들이 미쳐 모든 문서를 표준에 맞게 고치지 못한 경우, Quirks DOCTYPE을 가지고 있는 문서가 깨져 보이지 않도록 Quirks mode로 해석해서 보여준단다. 어쩔 수 없이 과거의 어두운 그림자를 더 길게 드리우게 되었다.

내가 진정 원하는 meta tag은,

<meta http-equiv="X-UA-Compatible" content="IE=자폭 모드 돌입 18초 전, 당장 새로운 브라우저를 까십시오!" />

오랜만에 WebKit Nightly Build를 받아보니 눈에 보이는 많은 변화가 있었다. 우선, WebKit을 내려받으면 항상 같이 붙어 오던 JavaScript debugger인 Drosera가 눈에 보이질 않는다. 확인해 보니, 최근에 WebKit에 내장된 Web Inspector에 흡수되었단다. 설치하고 Web Inspector를 열어보면, 겉모습에서 눈에 띄는 변화들이 보인다.

WebKit의 Web Inspector 메뉴먼저, 다섯 가지(Elements, Resources, Scripts, Profile, Databases)의 항목별 구분 아이콘들로, 훨씬 보기 편하게 작업 환경이 정리된 느낌. 이제 JavaScript debugger는 Scripts 항목에서 실행시킬 수 있고, 또 Console 창 어디에서나 쉽게 접근할 수 있으며, 코드 자동 완성 기능까지 지원해 준다.

Resources 항목을 살펴보면, 예전의 Stylesheets, Images, Scripts 항목들을 통합해서 여러 분류 조건에 따라 한꺼번에 정리된 목록으로 보여주면서 전체적인 분석이 훨씬 용이해졌고, 덤으로 각 리소스 별 Request/Response Headers 정보도 확인할 수 있다.
WebKit의 Web Inspector에 있는 Resources 항목의 창 그림
또, Profiles 항목의 추가로 JavaScript의 실행 속도를 측정/진단하는데 용이하게 쓰일 수 있을 것이다.

WebKit에서는 이렇게 눈에 보이는 변화 말고도, SquirrelFish라는 새로운 JavaScript interpreter를 채용하였는데, 이전 WebKit interpreter보다 1.6 배 더 빠른 JavaScript 실행 속도를 보여준단다. (실제 물고기의 생김새는 아이콘처럼 귀엽지는 않고, 그저 눈만 닮았다. 😯 )
이는 차기 Safari에서도 적용될 예정인데, 아마도 이번 WWDC 2008에서 발표된 Apple의 새로운 MobileMe 서비스에서 사용된 상당히 복잡한 Web 어플리케이션과 같이, JavaScript 의존성이 높은 어플리케이션의 경우 부드러운 사용성 측면에서 앞으로 상당히 중요한 요소가 될 듯 싶다.

아무튼, Web Inspector와 더불어서, Firefox의 Firebug 그리고 Opera의 Dragonfly 등, 개발자들의 마음을 얻기 위한 활발한 웹 개발 도구들의 경쟁에는 박수를 쳐주고 싶다. 😮

jQuery UI jQuery UI가 버전 1.5로 갱신되었다. 거의 다시 태어났다고 말하고 싶은 것은 단순한 기능 추가 뿐만이 아니라 기본적인 구조와 사용 용법에 많은 변화가 있었기 때문.

대략적인 주요 내용을 보면, API 사용 용법이 단순화되었고, 다른 파일들과의 의존성을 줄이기 위해 과거 plugin 형태로 있던 dimensions.js가 1.2.6 버전부터 jQuery core에 흡수되었으며, 새로운 ui.core.js가 소개되면서 새로운 plugin을 추가하는 작업이 훨씬 간단해 졌다.

그리고, 원래 Prototype 라이브러리script.aculo.us에 대응하는 프로젝트로 시작된 “Enchant”가 아예 jQuery UI에 합쳐지면서 여러 UI 요소들을 위한 16 가지 이상의 다양한 특수 효과들도 $('div').effect() 형태로 기본적으로 제공된다. 특히나 transfer, explode. clip, scale 효과는 이번에 처음 소개된 것들.

또, 흥미를 끄는 것이 복잡한 형태의 easing 효과들과 Class transitions가 추가되었는데, 특히나 Class transitions는 일종의 morphing 효과를 줄 수가 있어서 CSS의 class에 정의되어 있는 속성으로 점진적으로 바뀌어가는 모습을 보여줄 수가 있다. 이는 최근 Safari에 소개된 -webkit-transition 속성과도 닮아있다.

그리고 이것은 디자이너에게도 반가운 소식일텐데, 새로 만든 UI widget들을 사용하려는 사이트와 잘 어울리는 테마로 꾸며줄 수 있는 ThemeRoller의 소개.

ThemeRoller의 UI 모습
여기서는 각 control들의 색상과 모양을 선택해서 실제 모양을 확인해 본 후, 자기만의 테마를 입힌 UI widget들을 CSS 파일과 데모 페이지가 포함된 ZIP 파일로 내려받을 수 있다. 또, Theme Gallery도 제공하니, 다양한 테마들도 더불어 엿볼 수 있을 듯.

이번 발표 소식을 듣고있자니, 과연 Web UI widget들의 전성시대도 멀지 않았군. jQuery UI Changelog

과거 난해하고 너무나도 다양한 Ruby on Rails 어플리케이션 배포 환경 때문에 골치를 아파했던 개발자들에게 반가운 소식이 들려왔다. 일명 Apache의 mod_rails로 불리우는 Passenger가 공식 발표된 것.

Passenger의 설치는 너무나 간단해서, 아래처럼 Passenger gem 설치 후 설치 스크립트를 돌려주면 작업이 완료된다.

$ sudo gem install passenger
$ passenger-install-apache2-module

스크립트를 돌려서 컴파일링을 마치면 Apache 설정 파일에 추가해야 할 몇 가지 설정 사항들을 보여주는데, apache module 추가 관련 설정과 virtual host 용 설정 사항을 참고해서 자신의 사용 환경에 맞게 수정해서 httpd.conf 파일에 복사해 넣는다. 이렇게 해서, Apache를 재시동하면 바로 Rails Application을 손쉽게 Apache 위에 얹어놓고 돌려볼 수 있게 된다. 이렇게 설치는 너무나 간단하지만, 자세한 설치 과정을 담은 screencast도 제공하고 있다.

반가운 것은, 성능면에서 Mongrel 보다도 뛰어나서 거의 Thin에서 돌리는 것과 비슷한 성능을 보여준다는 것. 그리고, 아직 공식 배포는 이루어지지 않고 있지만, Ruby Enterprise Edition과 함께 돌리면 덤으로 33%의 메모리 절약을 기대할 수도 있다니, 이제 배포 환경 때문에 과거 골치를 썩혀왔던 걱정을 많이 덜게 되면서, 앞으로 Rails 어플리케이션의 채택율에도 더 가속도가 붙을 듯.

참고로, Rails 어플리케이션을 재시동하는 방법은 두 가지가 있는데, 하나는 물론 Apache를 재시동해도 되지만, 더 간편한 방법으로 Rails 어플리케이션이 위치하는 root 디렉토리 밑에 tem/restart.txt 파일을 추가하거나 수정해 주면 된단다. 이 작업은 터미널에서 다음과 같이 해주면 손쉬워진다:

$ touch /my_web_app/tmp/restart.txt

아직 다른 Ruby 웹 프레임워크에 대한 지원 계획은 미정이라니, 당장은 Rails만이 가지는 장점으로 남아 있을 듯.