목차
이 책에 쏟아진 각계 전문가 서평 ... ⅴ
추천의 글 ... ⅷ
저자 서문 ... ⅹ
감사의 글 ... xii
저자 소개 ... xiii
옮긴이의 글 ... xiv
들어가며 ... xxvi
1부 웹 애플리케이션의 새로운 물결 ... 1
   1장 웹의 새로운 패러다임 ... 3
      1.1 Ajax가 각광받는 이유 ... 5
        [1.1.1] 사용자 인터페이스 측면 ... 5
        [1.1.2] 네트웍 지연 ... 10
        [1.1.3] 비동기 상호작용 ... 13
        [1.1.4] 애플리케이션의 활용 패턴 ... 16
        [1.1.5] 고정관념에서 벗어나자 ... 17
      1.2 Ajax를 이루는 4가지 원리 ... 19
        [1.2.1] 애플리케이션을 담는 틀, 브라우저 ... 19
        [1.2.2] 데이터를 제공하는 서버 ... 23
        [1.2.3] 지속적이고 원활한 사용자 인터페이스 ... 23
        [1.2.4] 이제는 웹 사이트도 코딩해야 하는 시대 ... 26
      1.3 대표적인 Ajax 클라이언트 사례 ... 26
        [1.3.1] 업계 현황 ... 27
        [1.3.2] 구글 맵 ... 28
      1.4 유사 기술 ... 31
        [1.4.1] 매크로미디어 플래시 ... 31
        [1.4.2] 자바 웹 스타트 ... 32
      1.5 요약 ... 33
      1.6 참고자료 ... 34
   2장 Ajax 첫걸음 ... 35
      2.1 Ajax의 기본 구성 요소 ... 36
      2.2 자바스크립트로 만드는 새로운 사용자 인터페이스 ... 39
      2.3 CSS로 화면 모양 만들기 ... 40
        [2.3.1] CSS 셀렉터 ... 41
        [2.3.2] CSS 스타일 선언 ... 43
        [2.3.3] 간단한 CSS 예제 ... 45
      2.4 DOM 기반 화면 구성 ... 51
        [2.4.1] 자바스크립트로 DOM 다루는 법 ... 52
        [2.4.2] DOM 노드 찾기 ... 55
        [2.4.3] DOM 노드 생성 ... 56
        [2.4.4] 스타일 적용 ... 57
        [2.4.5] innerHTML 속성 활용 ... 59
      2.5 XML 데이터를 비동기적으로 읽어오기 ... 60
        [2.5.1] IFrame ... 61
        [2.5.2] XmlDocument와 XMLHttpRequest ... 64
        [2.5.3] 서버에 요청 보내기 ... 66
        [2.5.4] 요청 결과를 받기 위한 콜백 함수 ... 69
        [2.5.5] 전체 과정 ... 71
      2.6 Ajax가 돋보이는 이유 ... 74
      2.7 요약 ... 76
      2.8 참고자료 ... 77
   3장 Ajax 개발 순서 ... 79
      3.1 혼돈 속의 한 줄기 빛 ... 81
        [3.1.1] 디자인 패턴 ... 82
        [3.1.2] 리팩토링과 Ajax ... 83
        [3.1.3] 적절한 적용 범위 잡기 ... 83
        [3.1.4] 리팩토링 적용 방법 ... 84
      3.2 리팩토링 사례 ... 88
        [3.2.1] 퍼사드와 어댑터 패턴을 이용한 브라우저 호환성 ... 88
        [3.2.2] 옵저버 패턴을 이용한 이벤트 처리 ... 92
        [3.2.3] 커맨드 패턴을 이용한 사용자 액션 ... 96
        [3.2.4] 싱글톤 패턴을 이용한 효율적인 자원 관리 ... 100
      3.3 모델 뷰 컨트롤러 ... 105
      3.4 웹 서버 측면의 MVC ... 107
        [3.4.1] 패턴을 사용하지 않은 사례 ... 108
        [3.4.2] 모델 리팩토링 ... 112
        [3.4.3] 내용과 표현 방법 분리 ... 116
      3.5 참고할만한 라이브러리와 프레임웍 ... 120
        [3.5.1] 브라우저 호환 문제를 처리하는 라이브러리 ... 121
        [3.5.2] 위젯 라이브러리 ... 126
        [3.5.3] 애플리케이션 프레임웍 ... 130
      3.6 요약 ... 134
      3.7 참고자료 ... 136
2부 Ajax 핵심 기법 ... 137
   4장 애플리케이션으로 다시 태어난 웹 페이지 ... 139
      4.1 새로운 차원의 MVC ... 140
        [4.1.1] 규모를 넓히자 ... 140
        [4.1.2] 웹 브라우저와 MVC ... 142
      4.2 Ajax에서의 뷰 ... 144
        [4.2.1] 뷰에서 로직 분리해내기 ... 145
        [4.2.2] 로직에서 뷰 분리해내기 ... 152
      4.3 Ajax에서의 컨트롤러 ... 156
        [4.3.1] 전통적인 이벤트 처리 방법 ... 156
        [4.3.2] W3C 이벤트 처리 모델 ... 160
        [4.3.3] 유연한 이벤트 모델 구현 ... 161
      4.4 Ajax에서의 모델 ... 167
        [4.4.1] 자바스크립트를 이용한 객체 모델링 ... 167
        [4.4.2] 서버와 연동 ... 169
      4.5 모델에서 뷰 생성 ... 171
        [4.5.1] 자바스크립트 리플렉션 ... 172
        [4.5.2] 배열과 객체 ... 176
        [4.5.3] 컨트롤러 추가 ... 180
      4.6 요약 ... 183
      4.7 참고자료 ... 184
   5장 서버의 역할 ... 185
      5.1 서버 작업 ... 186
      5.2 서버 프로그램 구현 ... 187
        [5.2.1] 많이 쓰이는 프로그래밍 언어 ... 188
        [5.2.2] N 티어 구조 ... 188
        [5.2.3] 클라이언트측과 서버측의 모델 ... 190
      5.3 일반적인 서버 구성 방법 ... 191
        [5.3.1] 프레임웍을 적용하지 않은 웹 서버 ... 191
        [5.3.2] 모델2 프레임웍 ... 193
        [5.3.3] 컴포넌트 기반의 프레임웍 ... 194
        [5.3.4] SOA 적용 ... 197
      5.4 데이터 통신 유형 ... 202
        [5.4.1] 클라이언트 전용 방식 ... 203
        [5.4.2] 행성 탐색기 예제 ... 203
        [5.4.3] 내용중심 : 웹 페이지 관점 ... 207
        [5.4.4] 스크립트 중심 : 플러그인 관점 ... 211
        [5.4.5] 데이터 중심 : 애플리케이션 관점 ... 218
      5.5 서버에 데이터 전송 ... 224
        [5.5.1] HTML 폼 ... 225
        [5.5.2] XMLHttpRequest ... 227
        [5.5.3] 사용자의 변경 사항 관리 ... 229
      5.6 요약 ... 240
      5.7 참고자료 ... 241
3부 Ajax 고급 기법 ... 243
   6장 편의성을 고려한 인터페이스 ... 245
      6.1 고품질 애플리케이션의 요건 ... 247
        [6.1.1] 반응성 ... 247
        [6.1.2] 안정성 ... 248
        [6.1.3] 일관성 ... 249
        [6.1.4] 간결성 ... 250
        [6.1.5] 실전 적용 ... 250
      6.2 메세지 전달 방법 ... 251
        [6.2.1] 요청에 대한 응답 처리 ... 251
        [6.2.2] 다른 사용자의 변경 내용 처리 ... 254
      6.3 Ajax 메시지 프레임웍 ... 259
        [6.3.1] 메시지 설계 ... 260
        [6.3.2] 사용자 인터페이스 요구사항 ... 262
      6.4 메시지 프레임웍 구현 ... 264
        [6.4.1] 상태표시줄과 아이콘 ... 264
        [6.4.2] 메시지 세부 내용 ... 267
        [6.4.3] 기능 통합 ... 268
      6.5 네트웍 전송 모듈에 메시지 프레임웍 활용 ... 276
      6.6 최신 데이터 표시 ... 281
        [6.6.1] 하일라이팅 방법 구상 ... 281
        [6.6.2] Scriptaculous 라이브러리의 Effect 객체 ... 284
      6.7 요약 ... 285
      6.8 참고자료 ... 286
   7장 Ajax와 보안 ... 287
      7.1 자바스크립트와 브라우저 보안 ... 288
        [7.1.1] 원천 서버 정책 ... 289
        [7.1.2] Ajax에서 고려해야 할 점 ... 290
        [7.1.3] 하위 도메인 문제 ... 291
        [7.1.4] 브라우저별 보안 기능 ... 292
      7.2 원격 서비스와 통신하는 방법 ... 293
        [7.2.1] 원격 서비스 프록시 ... 294
        [7.2.2] 웹 서비스 활용 ... 295
      7.3 비밀 데이터 보호 ... 308
        [7.3.1] 중간자 공격 ... 308
        [7.3.2] 보안 HTTP 연결 ... 309
        [7.3.3] 자바스크립트로 하는 데이터 암호화 ... 311
      7.4 Ajax 데이터 전송 정책 ... 314
        [7.4.1] 안정적인 웹 서버 설계 ... 315
        [7.4.2] 웹 데이터 접근 제한 ... 319
      7.5 요약 ... 325
      7.6 참고자료 ... 326
   8장 성능 ... 327
      8.1 성능이란? ... 328
      8.2 자바스크립트 실행 속도 ... 330
        [8.2.1] 원시적인 실행 시간 측정 방법 ... 331
        [8.2.2] 벵크만 프로파일러 ... 337
        [8.2.3] Ajax 실행 속도 최적화 ... 339
      8.3 자바스크립트 메모리 관리 ... 353
        [8.3.1] 메모리 누수 방지 ... 354
        [8.3.2] Ajax에서 고려해야 할 점 ... 358
      8.4 성능을 높이는 설계 방법 ... 365
        [8.4.1] 메모리 소비량 측정 ... 365
        [8.4.2] 간단한 예제 ... 370
        [8.4.3] 메모리 소비량을 줄이는 방법 ... 376
      8.5 요약 ... 379
      8.6 참고자료 ... 380
4부 Ajax 실전 프로젝트 ... 381
   9장 동적으로 연동하는 콤보 박스 ... 383
      9.1 더블 콤보 자바스크립트 ... 384
        [9.1.1] 클라이언트 중심 개발의 제약사항 ... 384
        [9.1.2] 서버 중심 개발의 제약사항 ... 386
        [9.1.3] Ajax로 해결하자 ... 387
      9.2 클라이언트측 구성 방안 ... 388
        [9.2.1] HTML 폼 설계 ... 389
        [9.2.2] 클라이언트와 서버 간의 통신 ... 391
      9.3 서버측 프로그램 : VB.NET ... 393
        [9.3.1] XML 결과 문서 정의 ... 393
        [9.3.2] 서버측 코드 작성 ... 395
      9.4 결과 표시 ... 399
        [9.4.1] XML 문서 들여다보기 ... 399
        [9.4.2] CSS 적용 ... 402
      9.5 고급 기능 ... 403
        [9.5.1] 다중 항목 선택 ... 404
        [9.5.2] 트리플 콤보 ... 405
      9.6 리팩토링 ... 406
        [9.6.1] 업그레이드된 ContentLoader ... 407
        [9.6.2] 더블 콤보 모듈 구현 ... 414
      9.7 요약 ... 424
   10장 검색어 자동완성 기능 만들기 ... 425
      10.1 사전 조사 ... 426
        [10.1.1] 일반적인 동작 방식 ... 426
        [10.1.2] 구글 서제스트 사례 ... 428
        [10.1.3] Ajax로 만드는 검색어 자동완성 기능 ... 430
      10.2 서버측 프레임웍 : C ... 431
        [10.2.1] 서버와 데이터베이스 ... 431
        [10.2.2] 서버측 프로그램 테스트 ... 434
      10.3 클라이언트측 프레임웍 ... 436
        [10.3.1] HTML ... 436
        [10.3.2] 자바스크립트 ... 437
        [10.3.3] 서버에 요청 전송 ... 449
      10.4 기능 추가 : 다중 엘리먼트 지원 ... 464
      10.5 리팩토링 ... 465
        [10.5.1] 첫 날 : TextSuggest 컴포넌트 개발 계획 ... 466
        [10.5.2] 둘째 날 : TextSuggest 코딩 - 깔끔하고 설정하기 쉬운 컴포넌트 ... 470
        [10.5.3] 셋째 날 : Ajax 연결 ... 475
        [10.5.4] 넷째 날 : 이벤트 처리 ... 481
        [10.5.5] 마지막 날 : 추천 단어 목록 화면 인터페이스 ... 490
        [10.5.6] 리팩토링 결과 보고 ... 501
      10.6 요약 ... 501
   11장 Ajax로 만드는 웹 포털 ... 503
      11.1 진화하는 포털 ... 504
        [11.1.1] 전통적인 포털 ... 505
        [11.1.2] 풍부한 기능의 인터페이스 ... 506
      11.2 자바 기반의 Ajax 포털 구성 ... 508
      11.3 Ajax 로그인 기능 ... 509
        [11.3.1] 사용자 테이블 ... 510
        [11.3.2] 서버측 로그인 프로그램 ... 511
        [11.3.3] 클라이언트측 로그인 프로그램 ... 515
      11.4 DHTML 윈도우 구현 ... 521
        [11.4.1] 윈도우 데이터베이스 ... 522
        [11.4.2] 윈도우 정보를 전달하는 서버측 프로그램 ... 524
        [11.4.3] 외부 자바스크립트 라이브러리 ... 529
      11.5 Ajax 자동 저장 기능 구현 ... 532
        [11.5.1] 윈도우 라이브러리 수정 ... 532
        [11.5.2] 윈도우 정보 자동 저장 ... 535
      11.6 리팩토링 ... 539
        [11.6.1] 생성 메소드 구현 ... 542
        [11.6.2] AJAXWindow.js 라이브러리 호출 ... 543
        [11.6.3] 포털 컴포넌트의 몿
닫기