2007/3/5 Ver 0.1 송치형(scroco@naver.com)
Ajax가 인기를 얻으면서 수많은 Ajax, Javascript 라이브러리들이 생겨났다. 이제 이들을 하나하나 비교해보는 것조차 버거울 지경이다.
나도 몇 달 전부터 Ajax 프로그래밍을 하고 있는데 전에는 Rails를 사용했기 때문에 기본적으로 Prototype/Scriptaculous를 이용하게 되었다. 그런데 최근 Grails로 포팅 작업을 하게 되면서 과연 Prototype과 Scriptaculous를 계속 사용해야 하는지에 대한 의문이 들기 시작했다. 그래서 다음과같은 라이브러리들을 검토해 보았다.
1. Prototype/Scriptaculous
2. jQuery
3. YUI
4. Dojo
5. GWT
그리고 '안정성', '기본적인 기능 지원', '구현되어 있는 컴포넌트 및 확장의 용이성', '문서화', '개발의 편의성, 그리고 재미!'를 기준으로 나름 라이브러리들을 평가해 보았다.
1. Prototype/Scriptaculous : 우선 Rails와 통합되어 있고 널리 사용되고 있기 때문에 안정적이다. NHN과 싸이도 Prototype을 이용하는 듯 싶고. 하지만 구현되어 있는 컴포넌트가 좀 부족한 듯 싶었다(Scriptaculous). 문서화는 잘되어 있다. 특히 요즘 내가 번역하고 있는 Ajax on Rails에 두 라이브러리에 대한 (거의) 완벽한 매뉴얼이 수록되어 있다(이에 해당하는 4개의 장부터 번역했다). :) 개발은 나름 편리했지만 그리 재미있지는 않았다(재미는 주관적인 평가).
2. jQuery : 내 마음에 쏙 드는 녀석이다. WordPress가 jQuery를 사용하고 있고, 수많은 레퍼런스가 있으므로 안정성 인정. Prototype이 해주는 기능은 jQuery 역시 모두 지원해 준다. 그것도 더 편리하게! 그리고 컴포넌트. jQuery는 Plugin 시스템을 이용하고 있는데 현재 구현되어 있는 많은 플러그인들이 있다. 현재 구현되어 있는 컴포넌트만으로도 왠만한 기본적인 개발은 수월히 진행할 수 있다. 유일하게 부러웠던 컴포넌트들이 YUI를 사용하고 있는 Jack Slocum의 yui-ext였는데 yui-ext가 현재 jQuery를 지원하도록 포팅 작업이 진행되고 있다고 하니 정말 반가운 소식이다. :) 그리고 개발의 편의성과 재미는 단연 내 기준에서는 으뜸이다. 블로그 스피어나 메일링 리스트를 보면 많은 개발자들도 나와 비슷한 생각인 듯 하다. Prototype과 jQuery에 대한 비교는 다음 글을 읽어보자. 문서화도 꽤 잘 되어 있다.
3. YUI : 야후가 사용하고 있는 라이브러리이므로 안정성 인정. 구현되어 있는 기본적인 컴포넌트들은 꽤 좋음. 하지만 확장할 때는 시간이 좀 걸림. YUI가 1, 2와 다른 점은 나름의 DSL 이용을 최대한 자제하고 있다는 것이다. YUI 개발자가 쓴 글을 읽어 보았는데(주소가 기억이 안난다. ㅡ.ㅡ;;;) 이 개발자는 DSL을 사용하는 부류의 라이브러리로 Prototype과 jQuery를 들고 그 중 jQuery를 높이 평가하고 있었다. 하지만 새로운 문법을 익혀야 한다는 부담이 있기 때문에 YUI는 이를 지양하고 Javascript 문법을 이용하도록 한다는 설명을 읽은 적이 있다. 문서는 매우 잘되어 있는 편이다(라이브러리를 다운로드하면 몇십 페이지 분량의 PDF Cheat Sheet까지 있다). 하지만 개발이 그리 편리하지도, 재미있지도 않았다. 유일하게 부러웠던 부분이 위에서 언급했던 yui-ext였는데 조만간 jQuery에서도 지원된다.
4. Dojo : 많은 관심을 받고 있는 라이브러리이긴 한데 왠지 정이 별로 가지 않는다. ㅡ.ㅡ;;; 너무 방대하고, 용량도 크다. 쓸만한 문서도 찾아보기 어려웠고, Dojo가 지원하는 컴포넌트들은 거의 jQuery 플러그인들도 지원하고, 여차하면 쉽게 만들어 쓸 수 있다. 그것도 훨씬 적은 용량에. 스킵.
5. GWT : 구글이라고 모두 성공할 순 없잖아요! 왜 자바 스크립트 프로그래밍을 자바로 해야하는가? RJS는 간결한 맛이라도 있지, GWT는 너무 부담스럽다. 간단한 기능을 만들기 위해서도 많은 양의 코딩을 해야 하고... 디버깅에 강점이 있겠지만 Firebug 등을 이용하면 Javascript 디버깅도 그리 어렵지만은 않다. 그리고 구글에서 IE에서 canvas 태그를 지원하도록 만든 excanvs의 버그 때문에 5시간을 날려버리고 결국 꼼수로 해결한 적이 있기 때문에 GWT에 대한 믿음도 그리 크지 않았다. 또한 컴포넌트도 그리 많지 않다. 제일 중요한 건 개발이 너무 재미없다.
결론은... jQuery를 한번 써보라는 것이다. 한달 정도 jQuery를 가지고 이것 저것 만들어 보고 있는데 재미도 있고 생산성도 높다. :)
'프로그래밍 > JavaScript' 카테고리의 다른 글
[스크립트] 드레그 & 드롭이 되는 메뉴 트리 (0) | 2010.04.24 |
---|---|
[본문스크랩] JQuery (0) | 2010.04.24 |
Prototy Api 도움말 (0) | 2010.04.24 |
이미지 업로드 전 클라이언트 경로를 통한 미리보기 (0) | 2009.06.04 |
OpenLayers (0) | 2009.05.16 |