본문 바로가기
이전글/2007

Ajaxian 2007-04-04

by 물개선생 2007. 4. 4.
Ajaxian에 올라온 글들 중 관심가는 녀석들을 정리합니다.

1. TIBCO의 GI를 활용한 Financial Web Service

기업용 소프트웨어로 유명한 팁코(TIBCO)에서 xignite라는 금융 웹 서비스 어플리케이션의 데모를 공개했다. 가이드를 따라 입력하면 동작하는 기본 방식을 쉽게 익힐 수 있다. 사용자 인터페이스는 AJAX로 구현되어 있는데 팁코의 개발자 네트워크에서 전체 소스를 다운로드 받아 살펴볼 수 있다.

TIBCO GI 3.3 이상 버전에서 동작하는 이 프로그램은 웹서비스와 AJAX가 결합하는 기업 어플리케이션의 실질적인 사례를 보여준다는 점에서 흥미롭다. 다양한 검색 조건을 끌어다 조합해서 원하는 대로 맞춰쓰는 인터페이스는 특히 마음에 든다. (사용자 경험을 쉽게 높여줄 수 있는 데모 방식도 배울만한 점이다.)

사용자 삽입 이미지

2. AJAX의 5가지 안티패턴

IBM DeveloperWorks에 "Ajax and XML: Five Ajax anti-patterns"라는 제목의 기사가 올라왔다. 각각은 안티패턴을 사용한 소스와 그것이 가진 문제점, 그리고 그 안티패턴을 제거한 소스와 방법 순으로 정리되어 있다. 안티패턴은 경험해보지 않은 실패를 미리 방지할 수 있다는 점에서 늘 관심이 간다. 하지만 정리해보니 별 내용이 없다. 쩝..

1. Polling on a timer when you don't need to
 (시도때도 없이 타이머 쓰기)
2. Not inspecting the return results in the callback
 (콜백함수의 결과값 검사안하기)
3. Passing complex XML when HTML would be better
 (HTML이 더 나은 상황에서 복잡한 XML 보내기)
4. Passing XML when you should pass JavaScript code
 (자바스크립트 코드를 넘겨야 하는 상황에서 XML 보내기 -- JSON의 적극 활용)
5. Doing too much on the server
 (서버에서 너무 많은 일을 하려들기, 서버에서 다 해먹기)

3. OpenLaszlo에서 제안한 How We Deal with Browser Quirks

OpenLaszlo의 프로젝트 블로그에 "How we deal with browser quirks, with a compendium of IE 7 issues"라는 글이 올라왔다. 결론은 브라우저가 변덕을 부릴만한 요소를 파라미터화 해서 관리하고, 스크립트 실행시점에 브라우저를 체크해서 적절히 대응하자는 것이다.

LzSprite.prototype.quirks = {
    fix_clickable: true
    ,fix_ie_background_height: false
    ,fix_ie_clickable: false
    ,ie_alpha_image_loader: false
    ,ie_leak_prevention: false
    ,invisible_parent_image_sizing_fix: false
    ,emulate_flash_font_metrics: true
    ,inner_html_strips_newlines: true
    ,inner_html_no_entity_apos: false
    ,css_hide_canvas_during_init: true
    ,firefox_autocomplete_bug: false
    ,hand_pointer_for_clickable: true
    ,alt_key_sends_control: false
    ,safari_textarea_subtract_scrollbar_height: false
    ,safari_avoid_clip_position_input_text: false
    ,reverse_mouse_wheel: false
    ,no_cursor_colresize: false
    ,safari_visibility_instead_of_display: false
    ,preload_images_only_once: false
    ,absolute_position_accounts_for_offset: false
}