이미 소장하고 있다면 판매해 보세요.
|
1장 Ajax 개요
백문이 불여일견 Ajax 적용 사례 Ajax 아키텍처 기초 데이터를 다루는 Ajax 내비게이션을 다루는 Ajax Ajax와 다른 애플리케이션 유형의 비교 로컬에 설치된 리치 클라이언트 리치 클라이언트 웹 서비스 기존의 웹 애플리케이션 요약 2장 Ajax 더 들여다보기 급한 사람을 위한 Ajax REST 이론의 이해 REST 데이터의 구현 Ajax 애플리케이션의 구현 Ajax와 REST의 통합 Ajax와 REST를 합칠 때 생길 수 있는 문제 XMLHttpRequest의 상세 팩토리 패턴의 이용 XMLHttpRequest 팩토리의 정의 팩토리를 이용한 Ajax 애플리케이션의 재작성 비동기식 요청 XMLHttpRequest의 실제 적용 비동기 호출 메커니즘의 구현 다른 도메인으로 요청 보내기 요약 3장 Content Chunking 패턴 의도 동기 적용 범위 관련된 패턴 아키텍처 구현 순서 내용 조각의 형식 결정 구현 HTML 프레임워크 페이지의 구현 동적 HTML을 이용한 내용 삽입 바이너리 데이터와 URL, 이미지 삽입 자바스크립트의 삽입 요약 4장 Cache Controller 패턴 의도 동기 적용 범위 관련된 패턴 아키텍처 HTML과 HTTP 캐시 관리 일반적으로 HTTP 만료 캐시는 권장되지 않는다 더 나은 접근: HTTP 유효성 모델을 사용 서버 측 캐싱에서 고려해야 할 점 정적 HTTP 유효성 모델의 정의 동적 HTTP 유효성 모델의 정의 구현 수동적 캐시 구현 서버 측 HTTP 유효성 모델 구현 요약 5장 Permutation 패턴 의도 동기 적용 범위 관련된 패턴 아키텍처 자원이 표현으로부터 분리돼야 하는 이유 접근 허용을 위한 쿠키와 HTTP 인증의 사용 쿠키 사용 도서 정보 애플리케이션 예제 구현 URL 재작성 장바구니 예제 요약 6장 Decoupled Navigation 패턴 의도 동기 적용 범위 관련된 패턴 아키텍처 구현 액션 기능의 구현 공통 데이터 기능의 정의와 구현 표현 기능의 구현 HTML 컴포넌트의 사용 요약 7장 Representation Morphing 패턴 의도 동기 적용 범위 관련된 패턴 아키텍처 기본적인 이론 패턴이 HTML 컴포넌트가 아닌 이유 상태 블록의 정의 구현 프레임워크의 구현 표현 참조 포인트의 구현 구현 상세 요약 8장 Persistent Communications 패턴 의도 동기 적용 범위 관련된 패턴 아키텍처 인터넷이 "깨진" 이유 폴링 방식의 구현 구현 예제: 전역 상태 자원 예제: 존재 탐지 예제: 서버 푸시 버전 넘버와 갱신 성능에 대한 고려 요약 9장 State Navigation 패턴 의도 동기 적용 범위 관련된 패턴 아키텍처 사용자 관점에서의 이상적인 해결책 웹 애플리케이션으로의 확장 프로토콜 레벨에서의 상태 관리 구현 클라이언트에서 요청의 처리 서버에서 요청의 처리 요약 10장 Infinite Data 패턴 의도 동기 적용 범위 관련된 패턴 아키텍처 구현 HTML 클라이언트의 구현 작업 관리자의 구현 요약 11장 REST-Based Model View Controller 패턴 의도 동기 적용 범위 관련된 패턴 아키텍처 전체적인 그림 적당한 자원의 정의 인터페이스 호출의 정의 데이터 포맷의 기본과 기타 정의 구현 검색의 구현 검색 엔진 클라이언트의 기반 구조 생성 전체 통합 요약 |
|
여러분은 아마도 Ajax라든가 REST, 패턴과 같은 용어 때문에 이 책을 집어 들었을 것이다. 그리고는 이 소개를 넘기고 페이지를 따라가면서 훑어 볼 것이다. 그러나 일단 읽기를 잠시 멈추고, 이번 소개를 읽은 후 이 책을 살 것인지에 대해서 결정을 내리길 바란다.
여러분이 Ajax에 대해서 알아야 하는 이유는 다음과 같다. Ajax은 두문자이며, 이 두문자가 함축하고 있는 것은 거대하다. Ajax는 단지 비대한 클라이언트, 자바스크립트, XML, 비동기적 동작 등을 위한 것이 아니라 차세대 웹 애플리케이션을 개발하기 위한 것이다. 우리는 차세대 웹 애플리케이션을 만들기 위한 시작 단계에 서있다. 아직까지 읽고 있다면 일단 여러분의 흥미를 끌었으니 다행한 일이다. 이제 이 책이 무엇에 관한 것인지 이야기 하겠다. Ajax를 사용한다는 것은 REST, HTTP, 인터넷을 사용해 웹 애플리케이션을 만든다는 것이다. 이 책의 패턴들은 자바스크립트가 XMLHttpRequest 객체를 제어해 XML이나 HTML을 처리하는 방법을 보여준다. 이 책에서 서버 측의 구현은 자바나 C#을 사용했다. 패턴들은 파이썬이나 루비 온 레일즈를 사용할 수 있다. 자바나 C#을 사용한 이유는 이 책을 쓰는 시점에서 가장 많은 개발자들이 사용한다고 생각했기 때문이다. 필자는 열렬한 파이썬 프로그래머이기도 해서 다음 판을 쓸 때에는 파이썬과 루비 온 레일즈의 예제까지 확장했으면 하는 바람이다. 책의 패턴은 플렉스(Flash Ajax) 같은 컨텍스트에서도 사용될 수 있다. 예를 들어 Permutation 패턴이 플렉스 콘텐츠를 생성하는 데 사용될 수 있다. 좋다. 아직까지도 이 책을 덮지 않고 있다면 여러분은 여전히 흥미가 있고 좀 더 시간을 사용할 생각이 있다는 뜻이리라. 이쯤에서 필자가 말하고 싶은 것은 소개에 패턴들의 로드맵이 들어있기 때문에 끝까지 읽으라는 것이다. 그 후 Ajax가 무엇이며 무엇을 할 수 있는지 다루는 1장을 훑어보라. 다음 '동기'와 '아키텍처'에 중점을 두고 패턴들을 훑어보라. 그 후에도 여전히 흥미롭다면 패턴이 하려고 하는 바를 상세하게 다룬 남은 장들을 읽기 위해 책을 구입하라. 패턴들을 가지고 실험을 해보고 싶다면 http://www.devspace. com/ajaxpatterns 사이트를 방문하기를 추천한다. 여기에서는 실제로 패턴을 다루거나 다루는 곳으로 인도할 것이다. Ajax에 대한 비전은 무엇인가? Ajax의 비전에 대해 철학적인 설명을 하는 것은 도대체 Ajax가 무엇인가 하는 질문만 일으킬 것이다. 어떤 이는 Ajax가 클라이언트 쪽 만을 위한 기술이라고 말한다. 어떤 이는 서버 프레임워크의 확장이라고 한다. 또 다른 사람들은 "제길, 그건 새로운 기술 어쩌구인데, 지금의 기술 나부랭이는 무시될 거야"라고도 한다. 그러나 REST를 무시하고 말하게 되면 마치 "그게 액체라면 사람들이 마실 수 있어"라고 하는 것과 같다. 물론 사람은 액체라면 뭐든 마실 수 있기는 하다. 그러나 더 큰 질문은 그걸 마신 사람이 살아남을 것인가이다. 살 수도 있겠지만, 죽을 수도 있다! 의심 없이 마시는 것은 러시안 룰렛(역자주: 매그넘과 같은 권총에 총알을 하나만 넣어두고 탄창을 무작위로 돌린 후 누군가 죽을 때까지 총을 돌려가면서 스스로 방아쇠를 당기는 내기)을 하는 것과 같다. REST와 XML, JSON, 자바스크립트를 무시하고 Ajax를 사용하는 것도 이와 같다. Ajax는 새롭고 흥미로운 방식으로 조합될 수 있는 이런 신기술들 때문에 의미가 있는 것이다. Ajax에 대한 필자의 비전은 애플리케이션을 제작하는 새로운 방법으로서의 기술이나 표현을 넘어선다. 웹 애플리케이션을 만들던 예전 시절에 서버는 콘텐츠의 생성, 내비게이션, 제어를 위한 책임이 있었다. 웹 애플리케이션은 상호작용을 위한 복잡한 서버 프레임워크에 의존하는 기술이 됐다. Ajax는 이런 결합을 깨뜨린다! Ajax는 서버로부터 클라이언트를 분리시키기 때문에 결합을 깨뜨린다. Ajax 애플리케이션은 여전히 서버를 필요로 하지만 언제, 어디서, 어떻게 콘텐츠를 배달해야 하는지 결정할 수 있다. 서버에 의존하는 웹 애플리케이션은 서버가 존재할 때에만 존재할 수 있는 강하게 결합된 애플리케이션이다. 클라이언트가 필요로 하는 어떤 콘텐츠이든 서버에 의해 통제된다. Ajax를 사용하면 콘텐츠에 초점을 맞출 수 있다. Content Chunking 패턴과 같은 경우 콘텐츠의 조각들을 조합할 수 있다. 필자가 Ajax에 대해서 정말 걱정스러운 부분은 사람들이 Ajax를 구현한답시고 알려진 프레임워크에 의존하는 서버 프레임워크를 팔려고 할 때이다. Ajax가 서버로부터 클라이언트를 분리한다면 왜 서버 프레임워크가 Ajax를 구현하기 위해 사용돼야만 하는가? 그 논리는 말이 안 된다. 프레임워크는 Ajax와 비슷한 구조적인 설계를 가능하게 하기 위한 확장이라는 주장은 이해할 수 있다. 그러나 서버 프레임워크가 Ajax 애플리케이션을 가능하게 하기 위해 필수적이라는 점은 받아들일 수 없다. 이 책에서는, 유지, 확장될 수 있는 구조를 생성하기 위한 목적으로 서버-클라이언트를 분리하기 위해 광범위하게 사용되는 특정 패턴을 사용함으로써 발생하는 Ajax의 장점을 보여주는 데 초점을 두고 있다. 개인적으로 생산성도 중요한 것이지만 어떤 면에서 더 중요한 것은 내가 무엇을 하고 있고, 왜 했는지 파악하는 역량이라고 믿는다. --- 본문 중에서 |
|
구조적이고 효율적인 웹 애플리케이션 개발을 위한 9가지 Ajax 패턴과 실전 예제!
기존 Ajax 서적과는 달리, 웹 서버/클라이언트 구조에 대한 통찰력을 제시한다. Ajax와 REST를 하나의 솔루션으로 묶은 다이내믹한 웹 애플리케이션을 개발하자! 1장과 2장을 제외하면 이 책은 기본적으로 패턴을 다룬다. 1장 - 책과 Ajax의 토픽에 대해 소개한다. 또한 Ajax의 배경에 대해 알려주며 Ajax와 다른 방법론(예를 들어 전통적인 클라이언트-서버)을 비교한다. 2장 - XMLHttpRequest 객체에 대해 소개한다. Ajax 애플리케이션을 작성할 때 XMLHttpRequest 객체는 HTTP 서버와 통신하기 위한 핵심 기술이다. XMLHttpRequest 객체를 사용할 때 가장 좋은 습관 역시 보여 준다. 3장과 그 후는 패턴을 소개한다. 3장 - Content Chunking 패턴: 점진적으로 HTML 페이지를 생성할 수 있고, 각 HTML 페이지의 로직이 분산되며, 콘텐츠가 로딩되는 로직과 시점을 사용자가 결정할 수 있게 한다. 4장 - Cache Controller 패턴: 일관된 방법으로 자원을 임시적으로 저장하는 메커니즘을 호출자에게 제공해 결과적으로 애플리케이션 사용성을 높여준다. 5장 - Permutation 패턴: (HTML이나 XML과 같은) 표현으로부터 (URL과 같은) 자원을 분리하기 위해 서버에서 사용되는 패턴이다. 이런 분리는 말단의 사용자가 자원에만 집중을 해 콘텐츠에 대해서는 신경쓰지 않게 한다. 예를 들어 클라이언트의 은행 계좌가 http://mydomain.com/ accounts/user라는 URL에 있다면 같은 URL이 장치(전화, PC와 같은 것들)에 관계없이 사용될 수 있다. 6장 - Decoupled Navigation 패턴: 클라이언트 측의 코드와 내비게이션이 더 작은 모듈 단위로 분리될 수 있는 방법을 알려주는 방법론을 정의한다. 이를 통해 클라이언트 측 콘텐츠는 생성, 갱신, 유지가 더 단순해진다. 7장 - Representation Morphing 패턴: 주어진 표현의 상태를 조합하고, 표현이 한 지점에서 상태가 없는 다른 표현으로 변이를 할 수 있는 메커니즘을 제공한다. 8장 - Persistent Communications 패턴: 서버와 클라이언트가 영속적으로 통신할 수 있는 메커니즘을 제공해 이전의 정보 없이도 서버는 클라이언트로 데이터를 전송할 수 있고 그 역도 가능해진다. 9장 - State Navigation 패턴: HTML 콘텐츠 사이를 내비게이션하는 가운데에도 상태가 보존되게 하는 기반 구조를 제공한다. 10장 - Infinite Data 패턴: 시간적 관점에서 무한해 보이는 데이터를 관리하고 보여준다. 11장 - REST-Based Model View Controller 패턴: 웹 애플리케이션에 의해 생성된 것이 아닌 콘텐츠를 마치 웹 애플리케이션에서 생성된 것처럼 나타나게 변형해 콘텐츠에 접근하게 한다. |