![]() |
2006년 아마존에서 선정한 컴퓨터 인터넷 부분의 1위에 올랐던 베스트 셀러 ‘Ajax 인 액션’의 후속 편이지만, 단순 증보판은 아니다. 이 책의 저자는 이 책을 ‘2세대’ 책으로 소개하고 있는데, ‘Ajax 인 액션’이 원론적인 내용을 많이 담고 있었던 반면, 이 책은 제목 그대로 매우 실무적인 내용을 담고 있다. Ajax가 일반적인 웹 어플리케이션의 문제점을 어떻게 극복하는지를 보여주고, Ajax 기반의 어플리케이션 개발에서 발생하는 보편적인 문제들을 분야별로 정리하여 실전 예제를 통해 해결책들을 제시하고 있다. 책 전체를 통해 특정 문제와 이 문제를 풀어내는 솔루션 형식으로 기술하고 있어 분야 별로 찾아보고 실전에 적용하기 알맞게 구성되어 있다. 가장 널리 사용되는 다양한 오픈소스 라이브러리들의 사용 방법을 설명하고, 예제에 적용하여 구현하고 있어 라이브러리 선택을 고민하는 독자들에게 적지 않은 도움을 줄 것이다. 특히, 야후나 구글의 Open API 활용 방법 등 매시업(Mashup)관련 내용들도 상당히 깊이 있게 다루고 있다. 이 책은 분명 여러분이 읽어야 할 두 번째 Ajax 책이 될 것이다!
1장은 Ajax가 다른 기술들과 어떻게 다른지부터 설명하고 있다. 다양한 브라우저들에서 Ajax를 사용하기 위한 접근법을 설명하고, Ajax가 생성하는 응답을 어떻게 다루는지 살펴본다. 마지막으로 Prototype 라이브러리를 활용하여 훨씬 더 견고하게 만드는 방법도 간략하게 살펴본다.
2장에서는 JSON, XML, XSLT를 포함하는 다양한 Ajax 통신 방법을 검토한다. 또, SOAP 웹 서비스를 Ajax로 이용하는 방법을 면밀하게 조사할 것이다.
3장은 객체지향 자바스크립트의 개념을 소개한다. 전형적인 Ajax 애플리케이션을 포함해서 양이 많아지는 클라이언트 측 코드를 관리하는 데 적용할 수 있다. 객체지향의 주요한 개념들인 객체 생성, 퍼스트 클래스로서의 함수, 클래스 메서드로서의 함수, 함수 컨텍스트 그리고 클로저에 대한 설명을 객체지향 기술과 연관 지어 설명한다. 3장의 마지막 부분에서 Prototype 라이브러리를 사용하여 손쉽게 자바스크립트 클래스를 생성하는 방법도 살펴본다.
4장에서는 Ajax 자바스크립트 라이브러리인 Prototype, Dojo 툴킷, jQuery 그리고 DWR에 대해 자세히 알아 본다. 이 라이브러리가 제공하는 모든 기능을 다 설명하지는 못하지만, Ajax를 활용하는데 특별히 관심을 가지고 봐야 할 부분들을 집중적으로 다룬다. 각 라이브러리들을 실제 적용하는 예제들도 함께 살펴본다.
5장에서는 이벤트 처리에 대한 내용을 살펴본다. 다양한 이벤트 모델을 브라우저 간 호환성 이슈와 함께 살펴보고 Prototype 라이브러리를 활용하여 어떻게 호환성을 지원하는지 알아본다. 가장 널리 사용되는 이벤트 타입들에 대해 알아보고, 이벤트 타입들이 Ajax 애플리케이션에 어떻게 적용되는지 논의한다.
6장에서는 폼의 데이터 입력 검증과 5장에서 알아본 이벤트 처리를 어떻게 결합하는지 살펴본다. Prototype과 jQuery 라이브러리를 이용하는 장점을 최대한 살린 예제를 선보이는데, 전체 페이지를 ‘새로고침’ 하지 않도록 하기 위해 폼 전송을 가로채서 Ajax 요청으로 전송하는 방법을 살펴본다.
7장에서는 컨텐트 네비게이션에 대해 알아본다. 간단한 메뉴를 만들어 보고, 보다 정교한 네비게이션을 위해 트리뷰, 아코디언 컨트롤, 탭뷰 그리고 툴바를 적용한다. 이 장에서는 OpenRich와 qooxdoo 라이브러리를 활용한다.
8장은 뒤로가기와 새로고침을 할 때 발생하는 필드에 관한 문제를 다룬다. 이런 기능을 제거하고 동일한 기능을 제공한다. 8장에서는 애플리케이션에 실행취소(undo) 기능을 추가하는 방법도 함께 살펴본다.
9장에서는 끌어다 놓기 조작을 구현한다. 끌어다 놓기 조작의 순서를 살펴보고 자바스크립트 라이브러리를 활용하여 어떻게 이 기능을 지원할지 알아본다. Script.aculo.us를 사용하여 목록을 조작하는 방법을 알아보고 Script.aculo.us와 ICEfaces를 사용하여 장바구니를 구현해 본다.
10장에서 네트워크 지연 이슈와 관련하여 Ajax를 사용하여 사용성을 개선하거나 최소한 사용자의 불편을 경감할 수 있는 방법에 대해 토론한다. 서버의 도움을 받아 사용자에게 미리 도움말을 제공하고 폼 검증을 수행하는 방법을 알아본다.
11장은 상태관리에 대한 것이다. 클라이언트 상태관리를 어떻게 하는지 살펴보고, 데이터를 미리 가져오는 방법과 클라이언트 상태를 저장하는 방법을 탐험한다. 또, AMASS 라이브러리를 사용하여 대량의 데이터를 다루는 방법도 살펴본다.
12장에서는 오픈 API의 세계에 대한 조사를 한다. 다른 원격 서버에 요청을 전송하기 위해 ‘Ajax 보안 샌드박스’ 문제를 어떻게 피해갈 수 있는지 살펴본다. 야후 지도, 지도 코딩, 트래픽 그리고 구글 검색엔진, 플리커 사진 서비스와 같은 오픈 API 사용법에 대해 알아본다.
13장은 이 책의 하일라이트 부분인데 12장에서 공부한 내용을 적용하여 오픈 API를 적용한 ‘매시업’ 애플리케이션를 어떻게 제작하는지 살펴본다. 또, 이 책에서 소개한 모든 기법을 동원하여 실제 동작하는 완전한 매시업 애플리케이션을 제작해 본다.
데이브 크레인이나 DWR의 제작자 조 워커(Joe Walker)등 저명한 필자들의 글을 옮기게 되어 한편으로는 조금 부담스러웠지만, 매우 기쁜 마음으로 작업할 수 있었다.
이 책은 2006년 아마존의 컴퓨터 인터넷 부분 1위의 데이브 크레인의 “Ajax 인 액션”의 명성을 그대로 느낄 수 있는 책이다. 데이브 크레인이 Ajax 분야의 저명한 6명의 필자와 함께 저술한 이 책은 “Ajax 인 액션”과 달리 상당히 실질적인 문제들에 대한 해결책들을 담고 있다.
6명의 다른 저자와 부문을 나누어 썼음에도 불구하고, 책 전체의 논지와 일관성이 매우 뛰어나다. 특히, 소스코드에 불필요한 군더더기 없이 정말 필요한 최소한의 내용만을 기술하고 있어 핵심을 파악하기에 좋다. 역자 역시 지난 몇 년간 Ajax 분야의 개발을 해왔고, 현재도 Ajax 기반의 솔루션을 제작하는 일을 하고 있다. Prototype을 비롯하여 DWR 등 오픈소스 라이브러리들을 많이 써왔는데, 실전에서 부닥치는 문제들은 라이브러리 외적인 문제들도 상당히 있었다. 이 책은 이러한 문제들을 체계적으로 정리하고 있다. 예를 들어, 웹 페이지의 상태의 유지 문제라든가, 히스토리 관리문제 등 실제 접했던 문제들을 명확하게 풀어주고 있다. 특히, Open API에 대한 소개와 실전에 바로 적용할 만한 예제와 코드들은 이 책의 제목대로 ‘프랙티스’를 제공한다.
이 글을 옮기면서 Ajax 어플리케이션 개발 전체를 한 번에 체계적으로 정리하는 느낌을 받았다. 독자 여러분도 역시 이 책을 통해 Ajax 전체를 정리하는 느낌을 얻기 바란다.
2007년 10월, 이승준
이 책은 Ajax 분야의 최고 베스트 셀러였던 “Ajax 인 액션”을 저술한 데이브 크레인(Dave Crane)과 6명의 저자들이 공동으로 집필한 Ajax 실용서이다. 데이브 크레인은 Ajax와 웹 어플리케이션 개발 분야의 저명한 저술자이자 개발자이다. 지난 10년간 주로 Perl, Java 기반의 웹 개발을 해왔다. 이 책의 필자진은 "Prototype and Scriptaculous in Action", "jQuery in Action"을 저술한 Java Ranch(자바 개발 리소스 웹 사이트)의 스탭인 베어 바이볼트(Bear Bibeault), 구글의 조드 손네벨드(Jord Sonneveld), ClearNova사의 크리스 그레이(Chris Gray), JBoss의 제품 메니저 램 벤카타라맨(Ram Venkataraman), 전세계적으로 가장 널리 사용되는 오픈소스 프레임워크 중의 하나인 DWR의 제작자 조 워커(Joe Walker) 그리고, JavaServer Faces 기반의 오픈소스 프레임워크인 ICEfaces의 개발자 테드 고다드(Ted Goddard) 이다.
위키북스 오픈소스 & 웹 시리즈 에디터인 일래스틱웨어는 2002년 7월에 설립한 소프트웨어 개발 전문 회사로서, 비즈니스 환경의 변화에 탄력적으로 적응할 수 있도록 하는 프로세스와 사용자 인터페이스(UI) 관련 제품에 대한 연구/개발에 주력하고 있는, 신기술 개발 중심의 젊은 기업이다.
네트워크, 시스템 보안, 분석, 설계자로 일해 왔으며, Java와 J2EE 보안과 네트워킹, CCNA 등의 분야에서 다양한 책들을 우리말로 옮겼다. 현재 국내 대표 개발자 커뮤니티 사이트 중의 하나인 비팬(BPAN.COM)의 대표로 일하고 있다.
지난 13년간 C/C++과 Java 개발을 주로 해왔으며, 현재 ㈜일래스틱웨어의 대표로 기업용 웹 2.0 프레임워크를 지향하는 어플리케이션 프레임워크 제품인 EnRichClient를 제작하고 공급하는 일을 하고 있다.
