책 소개
구조적이고 효율적인 웹 애플리케이션 개발을 위한 9가지 Ajax 패턴과 실전 예제!
기존 Ajax 서적과는 달리, 웹 서버/클라이언트 구조에 대한 통찰력을 제시한다.
Ajax와 REST를 하나의 솔루션으로 묶은 다이내믹한 웹 애플리케이션을 개발하자!
[ 책 소개 ]
Ajax는 우리를 다음 세대의 웹 애플리케이션으로 인도하고 있다. Ajax는 서버로부터 클라이언트를 분리함으로써 서버/클라이언트의 경계를 깨뜨렸지만, 여전히 콘텐츠를 뽑아내기 위해 서버는 필요하다. Ajax와 서버를 가장 효과적으로 사용하기 위해서는 REST와 웹 서비스를 정의하기 위한 구조적인 스타일을 이해해야 한다.
『Ajax 패턴과 베스트 프랙티스』에서는 Ajax와 REST를 하나의 솔루션으로 묶는 다이내믹한 웹 애플리케이션을 다룬다. REST의 커다란 이점은 Ajax와 마찬가지로 오늘날 존재하는 기술과 함께 사용될 수 있다는 점이다. 수백만의 클라이언트 컴퓨터들은 Ajax를 사용할 준비가 이미 되어 있고, 수백만의 서버들은 REST를 사용할 준비가 되어 있다. 이 책에 나오는 패턴들의 주요 이점은 클라이언트와 서버가 분리되어 있으며 특정 기술에 의존하지 않는다는 점이다. 필자가 사용하는 이 패턴들은 클라이언트와 서버 사이의 계약으로서의 HTTP 프로토콜에 기반하고 있으며, 실제 프로젝트에 쉽게 적용할 수 있거나 재사용 될 수 있다. 이 패턴들을 사용하면 많은 문제를 해결할 수 있을 것이다.
클라이언트와 서버를 분리하고, 자원과 표현을 분리하고, HTTP 폼 포스팅의 문제를 해결하며, URL을 관리하면서 Ajax에 관해 전반적으로 이해할 수 있게 될 것이다. 이 책을 통해 디버깅, 유지, 확장이 가능한 Ajax 애플리케이션을 쉽게 작성할 수 있을 것이다. 독자 여러분이 경험이 많은 개발자라면 이 책이 가장 효과적이고 다이내믹한 Ajax 애플리케이션을 제작하는 데 있어 귀중한 자료라는 것을 알게 될 것이다. 지금 당장 Ajax를 사용하려는 모든 플랫폼 개발자들을 위한 책이다.
[ 이 책의 구성 ]
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 패턴: 웹 애플리케이션에 의해 생성된 것이 아닌 콘텐츠를 마치 웹 애플리케이션에서 생성된 것처럼 나타나게 변형해 콘텐츠에 접근하게 한다.
기존 Ajax 서적과는 달리, 웹 서버/클라이언트 구조에 대한 통찰력을 제시한다.
Ajax와 REST를 하나의 솔루션으로 묶은 다이내믹한 웹 애플리케이션을 개발하자!
[ 책 소개 ]
Ajax는 우리를 다음 세대의 웹 애플리케이션으로 인도하고 있다. Ajax는 서버로부터 클라이언트를 분리함으로써 서버/클라이언트의 경계를 깨뜨렸지만, 여전히 콘텐츠를 뽑아내기 위해 서버는 필요하다. Ajax와 서버를 가장 효과적으로 사용하기 위해서는 REST와 웹 서비스를 정의하기 위한 구조적인 스타일을 이해해야 한다.
『Ajax 패턴과 베스트 프랙티스』에서는 Ajax와 REST를 하나의 솔루션으로 묶는 다이내믹한 웹 애플리케이션을 다룬다. REST의 커다란 이점은 Ajax와 마찬가지로 오늘날 존재하는 기술과 함께 사용될 수 있다는 점이다. 수백만의 클라이언트 컴퓨터들은 Ajax를 사용할 준비가 이미 되어 있고, 수백만의 서버들은 REST를 사용할 준비가 되어 있다. 이 책에 나오는 패턴들의 주요 이점은 클라이언트와 서버가 분리되어 있으며 특정 기술에 의존하지 않는다는 점이다. 필자가 사용하는 이 패턴들은 클라이언트와 서버 사이의 계약으로서의 HTTP 프로토콜에 기반하고 있으며, 실제 프로젝트에 쉽게 적용할 수 있거나 재사용 될 수 있다. 이 패턴들을 사용하면 많은 문제를 해결할 수 있을 것이다.
클라이언트와 서버를 분리하고, 자원과 표현을 분리하고, HTTP 폼 포스팅의 문제를 해결하며, URL을 관리하면서 Ajax에 관해 전반적으로 이해할 수 있게 될 것이다. 이 책을 통해 디버깅, 유지, 확장이 가능한 Ajax 애플리케이션을 쉽게 작성할 수 있을 것이다. 독자 여러분이 경험이 많은 개발자라면 이 책이 가장 효과적이고 다이내믹한 Ajax 애플리케이션을 제작하는 데 있어 귀중한 자료라는 것을 알게 될 것이다. 지금 당장 Ajax를 사용하려는 모든 플랫폼 개발자들을 위한 책이다.
[ 이 책의 구성 ]
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 패턴: 웹 애플리케이션에 의해 생성된 것이 아닌 콘텐츠를 마치 웹 애플리케이션에서 생성된 것처럼 나타나게 변형해 콘텐츠에 접근하게 한다.
목차
목차
- 1장 Ajax 개요 19
- 백문이 불여일견 20
- Ajax 적용 사례 26
- Ajax 아키텍처 기초 28
- 데이터를 다루는 Ajax 29
- 내비게이션을 다루는 Ajax 30
- Ajax와 다른 애플리케이션 유형의 비교 32
- 로컬에 설치된 리치 클라이언트 32
- 리치 클라이언트 웹 서비스 34
- 기존의 웹 애플리케이션 35
- 요약 35
- 2장 Ajax 더 들여다보기 37
- 급한 사람을 위한 Ajax 37
- REST 이론의 이해 37
- REST 데이터의 구현 39
- Ajax 애플리케이션의 구현 40
- Ajax와 REST의 통합 42
- Ajax와 REST를 합칠 때 생길 수 있는 문제 43
- XMLHttpRequest의 상세 43
- 팩토리 패턴의 이용 45
- XMLHttpRequest 팩토리의 정의 47
- 팩토리를 이용한 Ajax 애플리케이션의 재작성 48
- 비동기식 요청 49
- XMLHttpRequest의 실제 적용 53
- 비동기 호출 메커니즘의 구현 53
- 다른 도메인으로 요청 보내기 65
- 요약 70
- 급한 사람을 위한 Ajax 37
- 3장 Content Chunking 패턴 71
- 의도 71
- 동기 71
- 적용 범위 72
- 관련된 패턴 73
- 아키텍처 73
- 구현 순서 73
- 내용 조각의 형식 결정 77
- 구현 78
- HTML 프레임워크 페이지의 구현 78
- 동적 HTML을 이용한 내용 삽입 80
- 바이너리 데이터와 URL, 이미지 삽입 87
- 자바스크립트의 삽입 90
- 요약 96
- 4장 Cache Controller 패턴 97
- 의도 97
- 동기 97
- 적용 범위 100
- 관련된 패턴 100
- 아키텍처 101
- HTML과 HTTP 캐시 관리 101
- 일반적으로 HTTP 만료 캐시는 권장되지 않는다 103
- 더 나은 접근: HTTP 유효성 모델을 사용 103
- 서버 측 캐싱에서 고려해야 할 점 105
- 정적 HTTP 유효성 모델의 정의 107
- 동적 HTTP 유효성 모델의 정의 109
- 구현 110
- 수동적 캐시 구현 111
- 서버 측 HTTP 유효성 모델 구현 120
- 요약 128
- 5장 Permutation 패턴 129
- 의도 129
- 동기 129
- 적용 범위 134
- 관련된 패턴 134
- 아키텍처 135
- 자원이 표현으로부터 분리돼야 하는 이유 135
- 접근 허용을 위한 쿠키와 HTTP 인증의 사용 138
- 쿠키 사용 141
- 도서 정보 애플리케이션 예제 141
- 구현 147
- URL 재작성 147
- 장바구니 예제 155
- 요약 170
- 6장 Decoupled Navigation 패턴 171
- 의도 171
- 동기 171
- 적용 범위 175
- 관련된 패턴 177
- 아키텍처 178
- 구현 180
- 액션 기능의 구현 180
- 공통 데이터 기능의 정의와 구현 190
- 표현 기능의 구현 206
- HTML 컴포넌트의 사용 210
- 요약 212
- 7장 Representation Morphing 패턴 215
- 의도 215
- 동기 215
- 적용 범위 221
- 관련된 패턴 221
- 아키텍처 222
- 기본적인 이론 222
- 패턴이 HTML 컴포넌트가 아닌 이유 223
- 상태 블록의 정의 225
- 구현 229
- 프레임워크의 구현 229
- 표현 참조 포인트의 구현 231
- 구현 상세 239
- 요약 242
- 8장 Persistent Communications 패턴 243
- 의도 243
- 동기 243
- 적용 범위 245
- 관련된 패턴 246
- 아키텍처 247
- 인터넷이 “깨진” 이유 247
- 폴링 방식의 구현 250
- 구현 252
- 예제: 전역 상태 자원 252
- 예제: 존재 탐지 267
- 예제: 서버 푸시 272
- 버전 넘버와 갱신 281
- 성능에 대한 고려 282
- 요약 282
- 9장 State Navigation 패턴 283
- 의도 283
- 동기 283
- 적용 범위 286
- 관련된 패턴 286
- 아키텍처 286
- 사용자 관점에서의 이상적인 해결책 287
- 웹 애플리케이션으로의 확장 290
- 프로토콜 레벨에서의 상태 관리 295
- 구현 299
- 클라이언트에서 요청의 처리 300
- 서버에서 요청의 처리 310
- 요약 321
- 10장 Infinite Data 패턴 323
- 의도 323
- 동기 323
- 적용 범위 324
- 관련된 패턴 325
- 아키텍처 325
- 구현 328
- HTML 클라이언트의 구현 330
- 작업 관리자의 구현 337
- 요약 355
- 11장 REST-Based Model View Controller 패턴 357
- 의도 357
- 동기 357
- 적용 범위 359
- 관련된 패턴 359
- 아키텍처 360
- 전체적인 그림 360
- 적당한 자원의 정의 363
- 인터페이스 호출의 정의 365
- 데이터 포맷의 기본과 기타 정의 369
- 구현 371
- 검색의 구현 372
- 검색 엔진 클라이언트의 기반 구조 생성 376
- 전체 통합 383
관련 블로그 글
(신간)『Ajax 패턴과 베스트 프랙티스』가 출간됩니다!
크리스찬 그로스 지음 | 최재훈 옮김 | 2007년 11월 9일 출간 |
408페이지 | 28,000원 | 9788960770225
408페이지 | 28,000원 | 9788960770225
드디어 에이콘이 독자 여러분을 향한 "백한 번째 프로포즈"를 날리게 되었네요.
구조적이고 효율적인 웹 애플리케이션 개발을 위한 9가지 Ajax 패턴과 실전예제를 담고 있는 『Ajax 패턴과 베스트 프랙티스』는 웹 서버/클라이언트 구조에 대한 통찰력을 높이는 데 도움이 될 만한 중고급 Ajax 개발자를 위한 책입니다. 에이콘 웹 프로페셔널 시리즈의 열한 번째 책이기도 합니다.
고급 Ajax 책을 기다려온 독자분께 많은 도움이 되길 바랍니다.
Ajax와 REST를 하나의 솔루션으로 묶은 다이내믹한 웹 애플리케이션을 개발하자!
"Ajax? 그거 뭐 그냥 XMLHttpRequest 가지고 서버랑 통신하면 되는 거 아니야? 그거 예전부터 있던컴포넌트야"라고 말할지도 모르겠다. 썩 틀린 말은 아니긴 하지만 그렇게 이야기하는 것은 Ajax를 굉장히 좁은 시각으로 바라보고있는 것이다. 게다가 요즘은 관련 프레임워크들도 속속 발표되어 복잡한 내용을 모르고도 사용할 수 있게 되어 더더욱 쉽게 생각해버릴 위험(?)이 높아졌다. 그러나 Ajax는 단지 XMLHttpRequest 객체를 사용하는 스킬의 관점에서 접근할 주제가아니라, 향상된 사용성을 위한 고려, 이를 위한 페이지와 인포메이션 아키텍처의 설계, 구조적인 서버-클라이언트의 구현 등 웹애플리케이션 전반에 걸쳐 기존과는 다른 관점에서 포괄적으로 접근해야 할 주제라고 보는 것이 옳다고 본다.
그런 면에서 이 책에서 다루는 주제들은 역자에게는 퍽이나 반가운 것들이었다. 앞서 포괄적으로 접근해야 한다고 말은 했지만 역자도 어떤 것들을 어떻게 고민해야 할지 막연해 하고 있었는데, 이 책은 그런 부분들을 잘 안내하고 있다.XMLHttpRequest 객체의 사용법, 유명한 프레임워크의 사용법, 웹 프로젝트의 여러 기능을 구현하는 법 등을 안내하는기존의 서적들(폄하하는 것이 아니니 오해없길 바란다)과는 아마 관점이 많이 다르리라 생각된다. '패턴'이라는 타이틀을 달고있으니 이 책도 당 연히 실무 프로젝트에 적용하는 것을 목표로 하고 있기는 하지만, 읽고, 예제를 돌려보고, 바로 적용하는 수준의즉각적인 활용서라기보다는 웹 애플리케이션을 설계하기 위한 좀 더 추상적이고 깊이 있는 통찰력을 가지는 데에 주안점을 둔전략서라고 보는 것이 맞을 것 같다.
필자는 HTTP 통신 프로토콜 스펙, 아파치/IIS 등의 웹서버, IE/파이어폭스/사파리 등의 웹브라우저,자바/서블릿/C#/ASP.NET 등의 개발 언어와 프레임워크, 자바스크립트, 객체 지향 프로그래밍 등의 여러 분야를 해박한지식으로 다루면서 Ajax를 이용한 구조적이고 효율적인 웹 애플리케이션 개발을 이야기하고 있다. 읽다 보면 웹 프로그래밍에관련된 심도있는 주제들이나, 프로그래밍하면서도 신경쓰지 않았던 주제들에 대해 다뤄보게 되는 경우도 많으리라 생각된다. 간혹난해한 내용이 나올 수도 있는데, 이 책을 좀 더 편하게 읽기 위해 역자가 제공하는 팁이 있다면, 각 장마다의 '의도'와'동기' 섹션을 읽으면서 각 패턴의 필요성에 대해서 먼저 이해하고, 이후 '구현' 섹션에서는 본문보다는 코드 중심으로 먼저 훑어보고, 다시 차근차근 내용을 읽어보면 이해하는 데 도움이 많이 될 것이다.
어떤 글보다 이 책의 내용과 특장점을 명료하게 잘 적어주신 옮긴이 최재훈님의 글로 소개를 대신해봅니다. 넥슨의 웹사이트 팀장을 맡고 계시는 최재훈님, 그동안 번역 하시느라 고생 많으셨습니다. 번역을 시작하기 전엔 화려한 쏠로였는데, 지금은 아리따운 신부를 맞아 결혼하셔서 행복한 과정을 이루셨죠. 그 긴 시간동안 저희 책이 함께 한 거네요. ^^; 누가 뭐라 짚어 말하지 않더라도 많이 힘들고 고된 작업이었을 거라고 생각합니다만, 번역작업의 그 짜릿한 중독성(!)을 이미 느끼신지라 곧 좋은 책으로 다시 독자분을 찾아주실 거라 믿습니다 :) 앞부분을 번역하시다가 개인적인 사정으로 놓게된 이희승님께도 감사의 말씀을 함께 전합니다.
교보문고, YES24, 강컴, 인터파크, 알라딘 등에서 예약주문을 받고 있습니다.
크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.