목차
이 책의 목적  ... xvii
당신이 알고 있어야 할 것  ... xix
이 책에서 사용되는 표기법  ... xxi
코드 예제 사용법  ... xxi
사파리(Safari) 사용 가능  ... xxii
연락처  ... xxii
감사의 말  ... xxii
독자 서비스  ... xxii
01장 시작하며  ... 1
  웹 애플리케이션의 정의  ... 1
  웹 애플리케이션의 개발  ... 3
  아키텍처의 정의  ... 4
  어떻게 시작해야 할까?  ... 5
02장 웹 애플리케이션 아키텍처  ... 9
  계층적 소프트웨어 아키텍처  ... 9
  계층 기반 기술들  ... 13
  소프트웨어 인터페이스 디자인  ... 15
  규모의 변화  ... 18
  소프트웨어/하드웨어 분리  ... 20
  하드웨어 플랫폼  ... 20
    공유 서버 호스팅  ... 23
    전용 서버 호스팅  ... 23
    콜로케이션  ... 23
    자체 호스팅  ... 24
  하드웨어 플랫폼의 성장  ... 25
    입수용이성 및 선행 시간  ... 25
    수입, 운송, 그리고 설치  ... 26
    공간  ... 26
    전력  ... 27
    네트워크 운영 센터  ... 27
    연결성  ... 28
  잉여 하드웨어  ... 28
  네트워킹  ... 29
  언어, 기술, 그리고 데이터베이스  ... 32
03장 개발 환경  ... 35
  세 가지 규칙  ... 35
  소스 컨트롤 사용  ... 36
    소스 컨트롤이란?  ... 36
    유틸리티 - 가지고 있으면 좋은 것  ... 42
    소스 컨트롤 제품들  ... 46
    소스 컨트롤에 넣어야 할 것들  ... 55
    소스 컨트롤에 넣지 말아야 할 것들  ... 57
  한 방 빌드  ... 57
    직접 수정하기  ... 58
    개발 환경 만들기  ... 59
    릴리스 절차  ... 61
    릴리스 관리  ... 64
    자동화하지 말아야 할 것들  ... 66
  이슈 관리  ... 68
    최소한의 기능들  ... 69
    이슈 관리 소프트웨어  ... 69
    관리할 것들  ... 73
    이슈 관리 전략  ... 74
    CADT  ... 76
  개발 모델의 확장  ... 77
  코딩 규범  ... 78
  테스트  ... 81
    회귀 테스트  ... 81
    수동 테스트  ... 82
04장 i18n, L10n 그리고 유니코드  ... 85
  국제화와 지역화  ... 86
    웹 애플리케이션의 국제화  ... 86
    웹 애플리케이션의 지역화  ... 88
  유니코드란?  ... 90
    유니코드 인코딩  ... 92
    바이트 순서 표기  ... 96
  UTF-8 인코딩  ... 97
  UTF-8 웹 애플리케이션  ... 98
    출력 관리  ... 98
    입력 관리  ... 100
  PHP에서의 UTF-8 사용  ... 100
  다른 언어에서의 UTF-8 사용  ... 102
  MySQL에서 UTF-8 사용  ... 102
  이메일에서의 UTF-8 사용  ... 104
  자바스크립트에서의 UTF-8 사용  ... 107
  API에서의 UTF-8 사용  ... 108
05장 데이터 무결성과 보안  ... 111
  데이터 무결성 정책  ... 112
  적합, 유효, 그리고 무효  ... 113
  UTF-8 필터링  ... 114
  제어 문자 필터링  ... 120
  HTML 필터링  ... 122
    HTML을 사용하는 이유  ... 122
    HTML 입력 필터링  ... 123
    블랙리스트와 화이트리스트  ... 124
    대조  ... 124
    HTML 다루기  ... 125
  크로스 사이트 스크립팅(XSS)  ... 126
    기본적인 결함  ... 126
    사용자 입력 결함  ... 128
    태그와 괄호 대조  ... 129
    프로토콜 필터링  ... 132
  SQL 주입 공격  ... 135
    SQL 주입 공격 완화  ... 136
    SQL 주입 공격 회피  ... 138
06장 이메일  ... 145
  이메일 받기  ... 145
  애플리케이션에서 이메일 수신하기  ... 148
    대안적인 접근법  ... 149
  MIME 형식  ... 150
  간단한 MIME 이메일 분석  ... 152
  UU 인코딩된 첨부 파일의 분석  ... 154
  TNEF 첨부 파일  ... 155
  무선통신사업자들은 당신을 싫어한다  ... 158
  문자 집합과 인코딩  ... 161
  사용자 인식  ... 163
  단위 테스트  ... 165
07장 원격 서비스  ... 169
  원격 서비스 클럽  ... 170
  소켓  ... 170
  HTTP 사용  ... 174
    HTTP 요청/응답 주기  ... 174
    HTTP 인증  ... 177
    HTTP 요청 만들기  ... 178
  원격 서비스 잉여성  ... 180
  비동기 시스템  ... 184
  XML 교환  ... 188
    XML 파싱  ... 189
    REST  ... 191
    XML-RPC  ... 192
    SOAP  ... 193
  경량 프로토콜  ... 194
    메모리 사용  ... 194
    네트워크 속도  ... 195
    분석 속도  ... 195
    쓰기 속도  ... 196
    문제점  ... 196
    만들기  ... 197
08장 병목 현상  ... 201
  병목 지점 찾기  ... 202
    소프트웨어 컴포넌트별 애플리케이션 영역  ... 204
    하드웨어 컴포넌트별 애플리케이션 영역  ... 206
  CPU 사용량  ... 208
    코드 프로파일링  ... 210
    Opcode 캐싱  ... 212
    템플릿 속도 향상  ... 214
    일반적인 해결책  ... 215
  입출력(I/O)  ... 216
    디스크 입출력  ... 216
    네트워크 입출력  ... 221
    메모리 입출력  ... 226
  메모리와 스왑  ... 227
  외부 서비스와 블랙 박스  ... 231
    데이터베이스  ... 231
    쿼리 현장 검사  ... 232
    쿼리 프로파일  ... 235
    쿼리 및 인덱스 최적화  ... 236
    캐시  ... 241
    비정규화  ... 244
09장 웹 애플리케이션의 범위 가변성  ... 249
  범위 가변성에 대한 미신  ... 250
    범위 가변성이란?  ... 250
    하드웨어 범위 가변성  ... 251
    수직적 범위 가변성  ... 252
    수평적 범위 가변성  ... 253
    지속적인 작업  ... 256
    잉여성  ... 256
  네트워크 범위 가변성  ... 261
  PHP 범위 가변성  ... 262
  부하 분산  ... 264
    하드웨어를 통한 부하 분산  ... 266
    소프트웨어를 통한 부하 분산  ... 267
    4계층(L4)  ... 269
    7계층(L7)  ... 270
    대규모 분산  ... 273
    비 HTTP 트래픽의 분산  ... 277
  MySQL 범위 가변성  ... 280
    저장소 뒷단  ... 280
    MyISAM  ... 282
    InnoDB  ... 283
    BDB  ... 284
    Heap  ... 285
  MySQL 복제  ... 285
    마스터-슬레이브 복제  ... 286
    트리 복제  ... 288
    마스터-마스터 복제  ... 290
    복제 장애  ... 292
    복제 지연  ... 293
  데이터베이스 파티셔닝  ... 295
    클러스터링  ... 295
    연합  ... 297
  대규모 데이터베이스 범위 가변성  ... 299
  저장소 범위 가변성  ... 301
    파일시스템  ... 302
    프로토콜  ... 302
    RAID  ... 304
    연합  ... 307
  캐시  ... 309
    데이터 캐시  ... 310
    HTTP 요청 캐시  ... 311
10장 통계, 감시, 경보  ... 315
  웹 통계 추적  ... 316
    서버 로그 파일  ... 317
    분석  ... 318
    비컨의 사용  ... 319
    분산  ... 322
    부하 분산기  ... 324
    사용자 계측 추적  ... 325
  애플리케이션 감시  ... 327
    대역폭 감시  ... 328
    장기적 시스템 통계  ... 329
    사용자 정의 시각화  ... 345
  경보  ... 347
    업타임 검사  ... 348
    자원 수위 감시  ... 348
    한계값 검사  ... 348
    저수위 검사  ... 349
11장 API  ... 351
  데이터 피드  ... 351
    RSS  ... 352
    RDF  ... 355
    Atom  ... 357
    기타 피드 형식  ... 358
    피드 자동 탐지  ... 359
    피드 템플릿  ... 359
    OPML  ... 361
    피드 인증  ... 362
    모바일  ... 365
    WAP  ... 366
    XHTML 모바일 프로필  ... 367
  웹 서비스  ... 370
  API 전송  ... 373
    REST  ... 373
    XML-RPC  ... 374
    SOAP  ... 377
    전송 방식 추상화  ... 381
  API 오용  ... 383
    API 키를 통한 감시  ... 383
    조절  ... 384
    캐시  ... 385
  인증  ... 386
    무인증  ... 387
    일반 텍스트  ... 387
    MAC  ... 388
    토큰 기반 시스템  ... 388
  전망  ... 390
찾아보기  ... 391
닫기