오늘 소개할 스크립트는 윈도우즈에서 아이튠즈로 듣고 있는 곡명을 미투데이 설명문으로 보여주는 매쉬업입니다. 이미 기존에 맥에서 시도되었던 것을 iTunes COM for Windows SDK를 이용한 WSH(Windows Script Host)로 만들어 봤습니다.
사용 방법은 아래의 JScript를 다운받아 아이튠즈가 재생되는 중에 실행하면 됩니다. 실행전에 반드시 에디터 JScript 파일을 열어 첫부분을 자신에 맞게 수정해야합니다. 수정할 부분은 미투데이 사용자 아이디와 사용자 키, 기본 설명문, 이렇게 세부분입니다.
실행이 되면 2분마다 현재 재생중인 음악의 태그 정보를 바탕으로 미투데이의 설명문을 자동으로 변경해줍니다. 아이튠즈를 종료하면 상태를 판단하여 스크립트 프로그램도 종료됩니다. 작업 관리자에 'wscript.exe'라는 이름의 프로세스로 떠있으니 참고하세요.
다운로드: me2DAY with iTunes.zip
아래는 JScript의 소스입니다. 다른 기능을 추가하고 싶은 경우 참고하세요.
Google 이미지 검색에서 얼굴을 검색할 수 있는 기능이 추가되었습니다. 아직 검색 옵션에는 표시되지 않고 약간의 트릭을 사용하면 가능합니다.
이미지 검색의 마지막 쿼리에 '&imgtype=face'를 추가하는 것으로 얼굴만 검색되도록 할 수 있습니다. 다음 화면에서 어떤 식으로 결과가 나타나는지 살펴보겠습니다.
검색어에 제가 좋아하는 '히로스에 료코'를 그냥 검색한 화면입니다.
뒤에 얼굴만을 검색하도록 '&imgtype=face'를 추가하여 검색한 화면입니다.
이미지에서 얼굴 패턴을 찾아낸 뒤 추가적인 태그를 붙여놓은듯 합니다. 더 쉽게 사용하려고 Bookmarklet을 만들어 보았습니다.
Face Search Bookmarklet (오른쪽 버튼으로 북마크에 추가)
웹 2.0 시대에 접어들면서 Ajax를 이용하면서 다양한 사용자 인터페이스 방식이 제안되고, 실제 쓰이고 있습니다. 이제는 웹 페이지에서의 드래그&드랍 방식을 이용한 사이트를 쉽게 볼 수 있습니다.
이러한 UX의 높은 품질 뒤에는 다양한 자바 스크립트 라이브러리들의 도움이 컷을 것으로 생각됩니다. 제가 처음 접한 라이브러리는 Prototype 이었습니다. 아직까지도 주력으로 사용하고 있고, 이 라이브러리로 인해 개발 시간을 절반 이하로 줄일 수 있었습니다.
이러한 라이브러리들은 대체적으로 CSS Query를 이용하여 앨리먼트를 선택할 수 있는 기능을 제공해줍니다. CSS Query라는것은 CSS Selector 문법으로 태그들을 선택하고 조작하기위해 만들어진 자바 스크립트 기능을 의미합니다. XML 기반 문서를 다루는 데에도 유용하기 때문에 다른 프로그래밍 언어에서 차용하기도 합니다. Ajax로 페이지를 동적으로 조작할 때 특히 유용하게 사용됩니다.
MooTools 사이트에 있는 SlickSpeed Selectors Test 도구를 이용하면, 앞서 설명한 CSS Query의 성능을 각 자바 스크립트 라이브러리별로 비교할 수 있습니다. 비교 대상은 Porotype, jQuery, MooTools, Ext JS, cssQuery, dojo.query입니다.
아래 표에는 현재 PC에 설치되어 있는 브라우져별로 모든 쿼리를 하는데 걸린 시간을 정리해 보았습니다. Safari, Firefox, IE 순서로 성능 차이가 발생하는군요.
| JS Framework | IE6 | Firefox | Safari(Win) |
|---|---|---|---|
| prototype 1.5.1 | 2534 | 232 | 136 |
| jQuery 1.1.2dev | 5732 | 5831 | 968 |
| MooTools 1.2dev | 2183 | 244 | 188 |
| ext 1.1b1 | (*비정상) 1549 | 1301 | (*비정상) 179 |
| cssQuery 2.02 | 11559 | 7579 | 1293 |
| dojo query | 1214 | 446 | 243 |
Prototype과 MooTools, dojo.query의 성능이 대체적으로 좋게 나왔습니다. 신뢰성은 각각의 셀렉터별로 틀리기는 하지만 성능이 좋은 라이브러리가 품질 또한 좋았습니다. (Ext JS의 경우 속도는 빠르지만 쿼리된 앨리먼트의 개수가 잘못된 경우가 많았습니다.)
여러분은 어떤 라이브러리를 사용하고 계신가요?
Recent Comments