책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 웹 서비스/웹 프로그래밍
· ISBN : 9788992939454
· 쪽수 : 424쪽
· 출판일 : 2010-11-18
책 소개
목차
01장 시작하며
- 웹 애플리케이션의 정의
- 웹 애플리케이션의 개발
- 아키텍처의 정의
- 어떻게 시작해야 할까?
02장 웹 애플리케이션 아키텍처
- 계층적 소프트웨어 아키텍처
- 계층 기반 기술들
- 소프트웨어 인터페이스 디자인
- 규모의 변화
- 소프트웨어/하드웨어 분리
- 하드웨어 플랫폼
- 하드웨어 플랫폼의 성장
- 잉여 하드웨어
- 네트워킹
- 언어, 기술, 그리고 데이터베이스
03장 개발 환경
- 세 가지 규칙
- 소스 컨트롤 사용
- 한 방 빌드
- 이슈 관리
- 개발 모델의 확장
- 코딩 규범
- 테스트
04장 i18n, L10n 그리고 유니코드
- 국제화와 지역화
- 유니코드란?
- UTF-8 인코딩
- UTF-8 웹 애플리케이션
- PHP에서 UTF-8 사용
- 다른 언어에서 UTF-8 사용
- MySQL에서 UTF-8 사용
- 이메일에서 UTF-8 사용
- 자바스크립트에서 UTF-8 사용
- API에서 UTF-8 사용
05장 데이터 무결성과 보안
- 데이터 무결성 정책
- 적합, 유효, 그리고 무효
- UTF-8 필터링
- 제어 문자 필터링
- HTML 필터링
- 크로스 사이트 스크립팅 (XSS)
- SQL 주입 공격
06장 이메일
- 이메일 받기
- 애플리케이션에서 이메일 수신하기
- MIME 형식
- 간단한 MIME 이메일 분석
- UU 인코딩된 첨부 파일의 분석
- TNEF 첨부 파일
- 무선 통신 사업자들은 당신을 싫어한다
- 문자 집합과 인코딩
- 사용자 인식
- 유닛 테스트
07장 원격 서비스
- 원격 서비스 클럽
- 소켓
- HTTP 사용
- 원격 서비스 잉여성
- 비동기 시스템
- XML 교환
- 경량 프로토콜
08장 병목 현상
- 병목 지점 찾기
- CPU 사용량
- 입출력(I/O)
- 메모리와 스왑
- 외부 서비스와 블랙 박스
09장 웹 애플리케이션의 범위 가변성
- 범위 가변성에 대한 미신
- 네트워크 범위 가변성
- PHP 범위 가변성
- 부하 분산
- MySQL 범위 가변성
- MySQL 복제
- 데이터베이스 파티셔닝
- 대규모 데이터베이스 범위 가변성
- 저장소 범위 가변성
- 캐시
10장 통계, 감시, 경보
- 웹 통계 추적
- 애플리케이션 감시
- 경보
11장 API
- 데이터 피드
- 웹 서비스
- API 트랜스포트
- API 오용
- 인증
- 전망
책속에서
이 책은 웹 애플리케이션의 디자인, 즉 웹 애플리케이션의 소프트웨어와 하드웨어의 디자인에 초점을 맞추고 있다. 우리는 애플리케이션 아키텍처와 개발 기법 그리고 기술 동향과 유니코드 및 전반적인 기반 시설에 대해 살펴볼 것이다. 또한 중요한 점은 이 책은 웹 애플리케이션의 개발, 즉 하드웨어의 구축과 디자인한 소프트웨어 시스템의 구현에 관한 책이라는 것이다. 애플리케이션 디자인 이론도 중요하지만 (그리고 전체적인 작업에 있어서 필수적인 요소이지만) 대규모 애플리케이션 개발에 있어서 구현이 중요한 부분을 차지한다는 점을 인지하고 디자인 작업 시 항상 명심해야 한다. 구현할 수 없는 것을 디자인한다면 우리가 올바른 것을 디자인하고 있는지 알 수 없을 것이다.
이 책은 프로그래밍에 대한 책이 아니다. 적어도 그렇게 표방하지는 않는다. 코드 조각이나 함수 이름들을 설명하기보다 우리는 웹 애플리케이션 개발의 일반화된 기법과 방법을 살펴볼 것이다. 책 안에서 예제 코드 조각들을 보게 되겠지만 이것들은 말 그대로 예제일 뿐이다. 이 책의 대부분의 코드 예제는 대규모 애플리케이션이나 기반 환경의 상황에서만 사용이 가능할 것이다.
우리가 살펴볼 대부분의 내용은 애플리케이션 아키텍처를 디자인하고 애플리케이션 기반 시설을 구축하는 것과 관련이 있다. 웹 애플리케이션 분야에서는 기반 시설은 대개 하드웨어 플랫폼과 소프트웨어 플랫폼 그리고 관리 및 개발 기법의 조합을 의미한다. 우리는 이러한 요소를 조합하여 대규모 애플리케이션을 위한 매끈한 기반 시설을 구축하는 방법을 알아볼 것이다.
이 책에서 가장 많은 페이지를 차지하는 9장은 애플리케이션의 범위 가변성만을 다루고 있으며 범위 가변적인 디자인 방법과 기존 시스템의 확장을 도울 수 있는 기술과 기법을 설명할 것이다. 단 한 장만으로 이 분야의 모든 것을 담을 수는 없지만 (그리고 기본적인 것만을 다루기에도 이 책 전체로도 모자라지만) 일반적으로 애플리케이션들에 가장 유용할만한 방법 두 가지를 소개할 것이다. 하지만 이것이 범위 가변성의 모든 것을 망라하는 가이드가 아니라는 점과 그 외에도 배워야 할 것이 많이 있음을 알아두기 바란다. 범위 가변적인 기반 시설에 대한 개괄적인 내용은 "Performance by Design: Computer Capacity Planning by Example"을 읽어보기 바란다.
이 책의 마지막에 가면 (10장 및 11장) 이벤트 감시과 수용성 계획을 위한 장기적인 통계 추적을 통해 웹 애플리케이션을 지속적으로 운영하는 기법들을 살펴볼 것이다. 감시와 경보는 애플리케이션을 개발하고 이후 장시간 관리하고자 한다면 꼭 필요한 핵심 기술이다. 자체적인 컴포넌트를 가졌거나 아니면 그저 컴포넌트의 개수가 많은 애플리케이션을 감시하고 추적하는 도구를 디자인하고 만드는 작업은 대개 애플리케이션 디자이너에게 맡겨진다. 왜냐하면 애플리케이션의 디자이너야말로 감시해야 할 대상과 경보를 발송할만한 상태가 어떤 것인지를 가장 잘 아는 사람이기 때문이다. 우리는 시스템의 모든 컴포넌트가 동작하고 있고 올바로 동작하고 있음을 확인하는 방법을 고안해야 할 것이다.
가장 마지막 장에서는 데이터를 공유하고 데이터 피드 및 읽고 쓰는 API를 통해 다른 애플리케이션이 우리의 애플리케이션과 통합할 수 있는 방법을 제공하는 것을 살펴볼 것이다. 이 책 전반에 걸쳐 컴포넌트 API를 디자인하는 방법을 살펴볼 것이지만 마지막 장은 이러한 인터페이스를 외부로 안전하게 그리고 접근 가능한 방식으로 제공하는 방법을 다룰 것이다. 또한 우리는 데이터의 내보내기와 상호작용과 관련하여 다양하게 발전해온 표준을 살펴보고 우리의 애플리케이션에서 이것들을 제공하는 방법을 알아볼 것이다.