본문 바로가기
이전글/2007

Ajaxian 2007-04-24

by 물개선생 2007. 4. 24.

1. Dojo Offline Toolkit 출시

BSD 라이센스의 오픈소스 자바스크립트 라이브러리. 300k 수준의 작은 자바스크립트 라이브러리로 구성된 클라이언트 런타임으로 설치시 케싱을 이용해 효과적이고 빠른 UI.
업무시스템을 웹으로 구축하는 경우 이처럼 런타임을 미리 설치하도록 하면 효과적일 것이라고 생각함. 개발자를 위한 SDK사용자를 위한 Runtime을 각각 제공하며, 사용자 Runtime은 installer로 설치하는 방식

사용자 삽입 이미지

2. Rico 2.0 출시

RIA용 자바스크립트라는 타이틀을 가진 Rico의 새버전 출시.

사용자 삽입 이미지

데모페이지에서 볼 수 있듯이 Drag&Drop이나 풀다운 메뉴와, 각종 에니메메이션 효과, 아코디언 등이 강점. LiveGrid에서 타이틀 밑에 바로 AJAX 스타일의 검색 필드를 준 형태의 UI는 매우 특이함

사용자 삽입 이미지

3. AutoSuggestMenu 1.1

네이봉 검색창의 서제스트 기능을 갖춘 .Net용 컴포넌트(Atlas)


4.
S5 1.3 aka 출시

S5 - Simple Standards-based Slide Show System .. 이름 참. XHTML, CSS, JavaScript로 슬라이드쇼를 만들어줌. 데모페이지를 보면 알기 쉬운데 옛날에 xWiki에도 들어가 있던 위키페이지로 프리젠테이션 하기와 같은 기능을 만들어줌. 브라우저 창의 크기변화에 따라 글자크기 등이 자동조정되는 기능도 있고.

사용자 삽입 이미지


5.
Support Center

쓸만한 소프트웨어가 나왔음 $199, 20만원 정도면 무제한 사용자가 쓸 수 있는 고객지원용 소프트웨어를 구매, 구축가능. 한글 지역화는 되어 있지 않으나, 국제화를 지원하는 구조라 메시지 파일 몇개 수정하면 쉽게 한국어 버전으로 만들 수 있을 듯. 실험해볼 수 있는 개인 사용자용은 무료. (2.24MB크기) 컨플루언스와 병행해서 개발팀 지원용 내부 소프트웨어로 채택하는 것도 나쁘지 않을 듯.

사용자 삽입 이미지

6. 자바스크립트로 즐기는 Arkanoid 게임

정말 부드럽게 에니메이션이 동작함. 자바스크립트로 만든거라고 믿어지지 않을 정도.
홈페이지에 방문자를 위한 벽돌깨기 게임 서비스? 오랜만에 해보는 추억의 게임. 자석 기능이 짱이쥐.

사용자 삽입 이미지


7.
Flexjson

JSON을 처리하기 위한 자바언어용 라이브러리로 DSL 방식을 채택했다고 주장함. 감히 특정 도메인 처리를 위한 언어 수준이라고 주장할만큼 의도가 잘 드러나도록 API를 신경써서 설계했음.

예) return new JSONSerializer().include("hobbies", "favoriteMovies").serialize(person);


8.
Specifications 라이브러리

TDD에서 발전한 용어로 BDD(Behavior Driven Development)란 말이 있음. 루비에 보면 이런 BDD를 지원하는 Rspec이라는 Benavior Definition Framework이 제공되는데, Specifications는 Rspec의 개념을 자바스크립트에서 지원할 수 있도록 만든 프레임워크임. 그러니까 TDD, BDD를 위한 자바스크립트 라이브러리. 0.1 버전이지만 꽤 잘 만들었음

Stack.Specification = new Specification({
  "A stack should": {
    setup: function() {
      this.stack = new Stack();
      this.stack.push('a').push('b').push('c');
    },
    'add to the top using push.': {
      run: function() { this.stack.push('d') },
      assert: function() { return this.stack.peek()=='d' }
    },
    'return the top using peek.': {
      run: function() {},
      assert: function() { return this.stack.peek()=='c' }
    }
    // etc.
  }
});

Event.observe( window, 'load', function() {
  Cruiser.Specification.validate().show();
});