Ajax 인 액션
- 원서명Ajax in Action (ISBN 1932394613)
- 지은이Dave Crane
- 옮긴이강철구
- ISBN : 8989975883
- 28,000원
- 2006년 05월 30일 펴냄 (절판)
- 페이퍼백 | 816쪽 | 190*255mm
- 시리즈 : acorn classics, 웹 프로페셔널
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
▶▷2006 아마존 컴퓨터 인터넷 부문 베스트셀러 1위!!
전 세계에서 가장 많이 팔린 Ajax No.1 베스트셀러!
아마존 독자가 열광하고 전 세계 전문가들이 극찬한 최고의 Ajax 책
기초부터 고급 기법까지 Ajax의 모든 것을 상세하게 소개한다
사이트에 바로 응용할 수 있는 5가지 실전 프로젝트 수록
웹 사이트에 접속하는 사용자들은 전통적인 웹 사이트 구성 방법에 이미 식상해 있다. 웹 페이지를 보다 보면 스크롤 위치가 자꾸 바뀌는 통에 짜증이 나고, 페이지를 새로 받아오는 동안 멍하니 기다리기도 하며, 새로 받아온 페이지에 눈을 적응시키느라 스트레스를 받는다. 불편한 점이 이만저만이 아니다. 자바스크립트와 XML을 사용해 비동기적으로 통신하는 방법, 즉 Ajax라고 알려진 방법을 적용하면 웹 사이트에 접속하는 사용자에게 훨씬 훌륭한 기능과 인터페이스를 제공할 수 있다. 일단 한번 Ajax 인터페이스에 맛을 들인 사용자는 입맛을 바꾸기가 쉽지 않다. Ajax는 웹상에서 물 흐르듯 직관적인 인터페이스를 사용자에게 제공할 수 있는 새로운 개념이다.
Ajax 인 액션은 이렇듯 새로운 개념을 직접 구현하는 데 꼭 필요한 내용을 담고 있다. 애플리케이션 프로그램의 전체적인 기능을 그대로 유지하면서 서버와 클라이언트 부분으로 어떻게 분리하는지를 설명한다. 또한 유연하고 유지보수가 용이한 상태로 애플리케이션을 관리하는 방법도 알려주며, 프로그램을 적절하게 잘 설계해 브라우저 호환성 등의 문제에도 얼마나 잘 대응할 수 있는지를 설명한다. 이 책을 읽기 전에 전통적인 웹 사이트에서 주로 사용하던 낡은 프로그래밍 기법은 버려야 한다. 독자는 프로그램 실행 코드의 상당 부분을 웹 브라우저로 옮겼을 때 어떤 장점이 있는지를 몸소 체험할 수 있다. 이 책은 지금 웹 사이트를 개발하거나 개발해 본 경험이 있는 웹 개발자의 필독서이다.
[ 이 책에서 다루는 주요 내용 ]
■ Ajax의 기본 개념
■ Ajax에서 디자인 패턴이 중요한 이유
■ Ajax를 사용할 때 실수하기 쉬운 부분
■ Ajax를 활용하는 실전 프로젝트: 검색어 자동완성 기능, XSLT를 활용한 실시간 검색 등
■ Prototype, Scriptaculous, x, Rico 등의 Ajax 라이브러리를 활용한 예제
■ Ajax 유저빌리티와 보안, 성능 문제
[ 이 책의 특징 ]
Ajax는 이미 단단한 기반을 확보하고 있는 여러가지 웹 관련 기술을 한데 모아 새롭고 재미있는 방법으로 활용하는 방법이다. 완전히 새로운 기술을 처음으로 접해 공부해야 한다면 백지부터 시작하기 때문에 오히려 간단할 수도 있다. 하지만 Ajax는 다르다. 이전에 사용하던 상당수의 방법과 개념을 버려야 한다. 이런 특성 때문에 Ajax 인 액션은 다른 출판사의Ajax 책이나 인 액션(In Action) 시리즈가 늘 해왔던 것과는 약간 다른 방법으로 구성되어 있다. 책을 읽다보면 다른 점을 느낄 수 있을지도 모르겠지만, 이런 방법이 Ajax를 설명하기에 가장 적합한 방법이라고 생각한다.
또한 Ajax는 그 자체로 대부분 클라이언트측에 치우쳐 있는 기술이라고 볼 수 있는데, 클라이언트 프로그램이 완전히 바뀌기 때문에 서버측 프로그램도 모두 바꿔야 할 필요가 있다. 이 책은 주로 클라이언트측의 프로그램을 중심으로 하고 있고, 대부분의 프로그램 예제도 자바스크립트로 작성되어 있다. Ajax를 사용하면 몇 가지 기본 원칙을 통해 서버와 클라이언트를 자연스럽게 분리시킬 수 있고, 완전히 분리되어 있기 때문에 어떤 종류의 서버측 언어라도 사용할 수 있다. 그러다 보니 다양한 언어를 사용하는 개발자를 배려할 필요가 있었고, 예제 프로그램에서 서버 부분에 PHP, 자바, C#, 비주얼베이직.NET 등 다양한 종류의 프로그래밍 언어를 활용했다. 더 중요한 점은 서버측 프로그램을 최대한 간결하고 특이한 방법을 사용하지 않는 방향으로 구성했기 때문에, 필요하다면 직접 다른 언어와 환경에 맞춰 쉽게 포팅할 수 있도록 했다. 특정 부분에서 언어적인 특성을 활용하는 경우가 있다면 해당 언어에 익숙하지 않은 독자라도 쉽게 이해할 수 있도록 상세한 내용을 최대한 설명하려고 노력했다.
[ 이 책의 구성 ]
1부는 Ajax가 무엇인지, 소프트웨어 개발 시 활용하면 어떤 면에서 유용한지를 설명하고, 개발 결과물의 품질을 높일 수 있는 몇 가지 도구도 살펴본다. 2부는 Ajax 애플리케이션이 실제로 동작하게 만드는 데 필요한 핵심 기법을 살펴보고, 3부는 2부에서 살펴봤던 것처럼 여러 기법을 사용해 개발 개념을 확인하는 수준에서 제품 수준까지 품질을 끌어 올릴 수 있는 방법을 알아본다. 4부는 좀 더 실무적인 관점으로 5개의 Ajax 프로젝트를 단계별로 설명하면서 진행하고, 끝으로 각 프로젝트의 결과물을 리팩토링해 독자들이 직접 자신의 웹 애플리케이션에서 활용할 수 있는 컴포넌트로 탈바꿈시킨다.
[ 이 책의 대상 ]
모두 Ajax에 직접적인 관심을 가진 사람들을 대상으로 해서 이런 독자들에게 꼭 필요한 내용을 최대한 책에 담으려 노력했다. 웹 브라우저를 단순한 터미널 형태의 개념으로 생각하고 서버측 프로그램을 개발하던 개발자가 방향을 잡는 데 도움이 될 수 있도록 지침을 마련했다. 적당히 돌아가는 정도로만 프로그램을 작성하며 디자인 작업을 주로 하던 디자이너에게도 소프트웨어 설계와 배경에 대한 지식을 전달할 수 있도록 구성했다. 원래 어떤 일을 했던 간에 Ajax는 여러 분야를 함께 활용해야 하는 기술이기 때문에 익숙치 않은 작업을 해야 할 경우가 많다. 독자의 관심 분야를 약간 넓은 범위로 확장한 다음 새로운 기술을 배울 수 있도록 신경을 기울였다.
[ 부록 CD 소개 ]
본문에서 예로 들었던 예제 프로그램의 소스코드는 모두 부록 CD에 들어있으며, http://www.manning.com/crane 페이지에서 다운로드 받을 수도 있다.
닷넷 서버나 J2EE 애플리케이션 서버, 리눅스 장비, 아파치 서버, MySQL 데이터베이스, PHP/파이썬/펄(LAMP) 등의 환경을 각자 사용하기 편한 위치에 갖고 있지 않은 경우가 상당수 있을 것이라고 판단되며, Ajax에서 중점적으로 다루는 부분은 역시 클라이언트측의 프로그램이다. 따라서 가능한 경우에는 아파치, 톰캣, IIS 등의 웹 서버에서 간단하게 활용할 수 있도록 가상(mock) 서버 프로그램을 최대한 마련해 고정적이고 의미 없는 내용이지만 예제를 작동시켜 볼 수 있도록 준비했다. 이런 가상 프로그램은 실제로 동작하는 원본 프로그램과는 별개로 만들어져 있고, 데이터베이스나 웹 서버를 잘 다루는 사람이라면 실제 동작하는 예제를 사용해 보는 것도 좋다. 부록 CD 안에 설정하는 방법을 간단하게 설명한 readme.txt 파일이 있으니 참고하자.
[ 온라인 서비스 ]
매닝 출판사의 사설 웹 포럼에 접속해 책에 대한 의견을 나눌 수 있고, 기술적인 질문을 올리거나 저자나 다른 사용자로부터 도움을 얻을 수 있는 http://www.manning.com/crane 페이지에 접속해보자.
또한 한국어판 출간에 즈음해 옮긴이가 『Ajax 인 액션』의 독자들에게 도움이 될 수 있는 내용을 모아 Ajax 관련 커뮤니티(www.ajaxinaction.net)를 오픈할 예정이다. 커뮤니티에는 질문과 답변, 관련 업계 소식, 자료실, 자유게시판, 오탈자 신고 등의 내용을 준비하고 있다. 『Ajax 인 액션』을 읽으면서 궁금했던 점, 짬짬이 만들었던 Ajax 프로그램, 새로운 웹을 이끌어가는 개발자의 지식과 정보 등을 함께 공유할 수 있는 장을 마련하고자 한다.
전 세계에서 가장 많이 팔린 Ajax No.1 베스트셀러!
아마존 독자가 열광하고 전 세계 전문가들이 극찬한 최고의 Ajax 책
기초부터 고급 기법까지 Ajax의 모든 것을 상세하게 소개한다
사이트에 바로 응용할 수 있는 5가지 실전 프로젝트 수록
웹 사이트에 접속하는 사용자들은 전통적인 웹 사이트 구성 방법에 이미 식상해 있다. 웹 페이지를 보다 보면 스크롤 위치가 자꾸 바뀌는 통에 짜증이 나고, 페이지를 새로 받아오는 동안 멍하니 기다리기도 하며, 새로 받아온 페이지에 눈을 적응시키느라 스트레스를 받는다. 불편한 점이 이만저만이 아니다. 자바스크립트와 XML을 사용해 비동기적으로 통신하는 방법, 즉 Ajax라고 알려진 방법을 적용하면 웹 사이트에 접속하는 사용자에게 훨씬 훌륭한 기능과 인터페이스를 제공할 수 있다. 일단 한번 Ajax 인터페이스에 맛을 들인 사용자는 입맛을 바꾸기가 쉽지 않다. Ajax는 웹상에서 물 흐르듯 직관적인 인터페이스를 사용자에게 제공할 수 있는 새로운 개념이다.
Ajax 인 액션은 이렇듯 새로운 개념을 직접 구현하는 데 꼭 필요한 내용을 담고 있다. 애플리케이션 프로그램의 전체적인 기능을 그대로 유지하면서 서버와 클라이언트 부분으로 어떻게 분리하는지를 설명한다. 또한 유연하고 유지보수가 용이한 상태로 애플리케이션을 관리하는 방법도 알려주며, 프로그램을 적절하게 잘 설계해 브라우저 호환성 등의 문제에도 얼마나 잘 대응할 수 있는지를 설명한다. 이 책을 읽기 전에 전통적인 웹 사이트에서 주로 사용하던 낡은 프로그래밍 기법은 버려야 한다. 독자는 프로그램 실행 코드의 상당 부분을 웹 브라우저로 옮겼을 때 어떤 장점이 있는지를 몸소 체험할 수 있다. 이 책은 지금 웹 사이트를 개발하거나 개발해 본 경험이 있는 웹 개발자의 필독서이다.
[ 이 책에서 다루는 주요 내용 ]
■ Ajax의 기본 개념
■ Ajax에서 디자인 패턴이 중요한 이유
■ Ajax를 사용할 때 실수하기 쉬운 부분
■ Ajax를 활용하는 실전 프로젝트: 검색어 자동완성 기능, XSLT를 활용한 실시간 검색 등
■ Prototype, Scriptaculous, x, Rico 등의 Ajax 라이브러리를 활용한 예제
■ Ajax 유저빌리티와 보안, 성능 문제
[ 이 책의 특징 ]
Ajax는 이미 단단한 기반을 확보하고 있는 여러가지 웹 관련 기술을 한데 모아 새롭고 재미있는 방법으로 활용하는 방법이다. 완전히 새로운 기술을 처음으로 접해 공부해야 한다면 백지부터 시작하기 때문에 오히려 간단할 수도 있다. 하지만 Ajax는 다르다. 이전에 사용하던 상당수의 방법과 개념을 버려야 한다. 이런 특성 때문에 Ajax 인 액션은 다른 출판사의Ajax 책이나 인 액션(In Action) 시리즈가 늘 해왔던 것과는 약간 다른 방법으로 구성되어 있다. 책을 읽다보면 다른 점을 느낄 수 있을지도 모르겠지만, 이런 방법이 Ajax를 설명하기에 가장 적합한 방법이라고 생각한다.
또한 Ajax는 그 자체로 대부분 클라이언트측에 치우쳐 있는 기술이라고 볼 수 있는데, 클라이언트 프로그램이 완전히 바뀌기 때문에 서버측 프로그램도 모두 바꿔야 할 필요가 있다. 이 책은 주로 클라이언트측의 프로그램을 중심으로 하고 있고, 대부분의 프로그램 예제도 자바스크립트로 작성되어 있다. Ajax를 사용하면 몇 가지 기본 원칙을 통해 서버와 클라이언트를 자연스럽게 분리시킬 수 있고, 완전히 분리되어 있기 때문에 어떤 종류의 서버측 언어라도 사용할 수 있다. 그러다 보니 다양한 언어를 사용하는 개발자를 배려할 필요가 있었고, 예제 프로그램에서 서버 부분에 PHP, 자바, C#, 비주얼베이직.NET 등 다양한 종류의 프로그래밍 언어를 활용했다. 더 중요한 점은 서버측 프로그램을 최대한 간결하고 특이한 방법을 사용하지 않는 방향으로 구성했기 때문에, 필요하다면 직접 다른 언어와 환경에 맞춰 쉽게 포팅할 수 있도록 했다. 특정 부분에서 언어적인 특성을 활용하는 경우가 있다면 해당 언어에 익숙하지 않은 독자라도 쉽게 이해할 수 있도록 상세한 내용을 최대한 설명하려고 노력했다.
[ 이 책의 구성 ]
1부는 Ajax가 무엇인지, 소프트웨어 개발 시 활용하면 어떤 면에서 유용한지를 설명하고, 개발 결과물의 품질을 높일 수 있는 몇 가지 도구도 살펴본다. 2부는 Ajax 애플리케이션이 실제로 동작하게 만드는 데 필요한 핵심 기법을 살펴보고, 3부는 2부에서 살펴봤던 것처럼 여러 기법을 사용해 개발 개념을 확인하는 수준에서 제품 수준까지 품질을 끌어 올릴 수 있는 방법을 알아본다. 4부는 좀 더 실무적인 관점으로 5개의 Ajax 프로젝트를 단계별로 설명하면서 진행하고, 끝으로 각 프로젝트의 결과물을 리팩토링해 독자들이 직접 자신의 웹 애플리케이션에서 활용할 수 있는 컴포넌트로 탈바꿈시킨다.
[ 이 책의 대상 ]
모두 Ajax에 직접적인 관심을 가진 사람들을 대상으로 해서 이런 독자들에게 꼭 필요한 내용을 최대한 책에 담으려 노력했다. 웹 브라우저를 단순한 터미널 형태의 개념으로 생각하고 서버측 프로그램을 개발하던 개발자가 방향을 잡는 데 도움이 될 수 있도록 지침을 마련했다. 적당히 돌아가는 정도로만 프로그램을 작성하며 디자인 작업을 주로 하던 디자이너에게도 소프트웨어 설계와 배경에 대한 지식을 전달할 수 있도록 구성했다. 원래 어떤 일을 했던 간에 Ajax는 여러 분야를 함께 활용해야 하는 기술이기 때문에 익숙치 않은 작업을 해야 할 경우가 많다. 독자의 관심 분야를 약간 넓은 범위로 확장한 다음 새로운 기술을 배울 수 있도록 신경을 기울였다.
[ 부록 CD 소개 ]
본문에서 예로 들었던 예제 프로그램의 소스코드는 모두 부록 CD에 들어있으며, http://www.manning.com/crane 페이지에서 다운로드 받을 수도 있다.
닷넷 서버나 J2EE 애플리케이션 서버, 리눅스 장비, 아파치 서버, MySQL 데이터베이스, PHP/파이썬/펄(LAMP) 등의 환경을 각자 사용하기 편한 위치에 갖고 있지 않은 경우가 상당수 있을 것이라고 판단되며, Ajax에서 중점적으로 다루는 부분은 역시 클라이언트측의 프로그램이다. 따라서 가능한 경우에는 아파치, 톰캣, IIS 등의 웹 서버에서 간단하게 활용할 수 있도록 가상(mock) 서버 프로그램을 최대한 마련해 고정적이고 의미 없는 내용이지만 예제를 작동시켜 볼 수 있도록 준비했다. 이런 가상 프로그램은 실제로 동작하는 원본 프로그램과는 별개로 만들어져 있고, 데이터베이스나 웹 서버를 잘 다루는 사람이라면 실제 동작하는 예제를 사용해 보는 것도 좋다. 부록 CD 안에 설정하는 방법을 간단하게 설명한 readme.txt 파일이 있으니 참고하자.
[ 온라인 서비스 ]
매닝 출판사의 사설 웹 포럼에 접속해 책에 대한 의견을 나눌 수 있고, 기술적인 질문을 올리거나 저자나 다른 사용자로부터 도움을 얻을 수 있는 http://www.manning.com/crane 페이지에 접속해보자.
또한 한국어판 출간에 즈음해 옮긴이가 『Ajax 인 액션』의 독자들에게 도움이 될 수 있는 내용을 모아 Ajax 관련 커뮤니티(www.ajaxinaction.net)를 오픈할 예정이다. 커뮤니티에는 질문과 답변, 관련 업계 소식, 자료실, 자유게시판, 오탈자 신고 등의 내용을 준비하고 있다. 『Ajax 인 액션』을 읽으면서 궁금했던 점, 짬짬이 만들었던 Ajax 프로그램, 새로운 웹을 이끌어가는 개발자의 지식과 정보 등을 함께 공유할 수 있는 장을 마련하고자 한다.
목차
목차
- 1부 웹 애플리케이션의 새로운 물결
- 1장 웹의 새로운 패러다임
- 1.1 Ajax가 각광받는 이유
- 1.1.1 사용자 인터페이스 측면
- 1.1.2 네트웍 지연 현상
- 1.1.3 비동기 상호작용
- 1.1.4 애플리케이션의 활용 패턴
- 1.1.5 고정관념에서 벗어나자
- 1.2 Ajax를 이루는 4가지 원리
- 1.2.1 애플리케이션을 담는 틀, 브라우저
- 1.2.2 데이터를 제공하는 서버
- 1.2.3 지속적이고 원활한 사용자 인터페이스
- 1.2.4 이제는 웹사이트도 코딩하는 시대
- 1.3 대표적인 Ajax 클라이언트 사례
- 1.3.1 업계 현황
- 1.3.2 구글 맵
- 1.4 유사 기술
- 1.4.1 매크로미디어 플래시
- 1.4.2 자바 웹 스타트
- 1.5 요약
- 1.6 참고자료
- 2장 Ajax 첫걸음
- 2.1 Ajax의 기본 구성 요소
- 2.2 자바스크립트로 만드는 새로운 사용자 인터페이스
- 2.3 CSS로 화면 모양 만들기
- 2.3.1 CSS 셀렉터
- 2.3.2 CSS 스타일 속성
- 2.3.3 간단한 CSS 예제
- 2.4 DOM 기반 화면 구성
- 2.4.1 자바스크립트로 DOM 다루는 법
- 2.4.2 DOM 노드 찾기
- 2.4.3 DOM 노드 생성
- 2.4.4 스타일 적용
- 2.4.5 innerHTML 속성 활용
- 2.5 XML 데이터를 비동기적으로 읽어오기
- 2.5.1 IFrame
- 2.5.2 XmlDocument와 XMLHttpRequest
- 2.5.3 서버에 요청 보내기
- 2.5.4 요청 결과를 받기 위한 콜백 함수
- 2.5.5 전체 과정
- 2.6 Ajax가 돋보이는 이유
- 2.7 요약
- 2.8 참고자료
- 3장 Ajax 개발 순서
- 3.1 혼돈 속의 한 줄기 빛
- 3.1.1 디자인 패턴
- 3.1.2 리팩토링과 Ajax
- 3.1.3 적절한 적용범위 잡기
- 3.1.4 리팩토링 적용 방법
- 3.2 리팩토링 사례
- 3.2.1 퍼사드와 어댑터 패턴을 이용한 브라우저 호환성
- 3.2.2 옵저버 패턴을 이용한 이벤트 처리
- 3.2.3 커맨드 패턴을 이용한 사용자 액션
- 3.2.4 싱글톤 패턴을 이용한 효율적인 자원 관리
- 3.3 모델 뷰 컨트롤러
- 3.4 웹 서버 측면의 MVC
- 3.4.1 패턴을 사용하지 않은 사례
- 3.4.2 모델 리팩토링
- 3.4.3 내용과 표현 방법 분리
- 3.5 참고할만한 라이브러리와 프레임웍
- 3.5.1 브라우저 호환 문제를 처리하는 라이브러리
- 3.5.2 위젯 라이브러리
- 3.5.3 애플리케이션 프레임웍
- 3.6 요약
- 3.7 참고자료
- 2부 Ajax 핵심 기법
- 4장 애플리케이션으로 다시 태어난 웹페이지
- 4.1 새로운 차원의 MVC
- 4.1.1 규모를 넓히자
- 4.1.2 웹 브라우저와 MVC
- 4.2 Ajax에서의 뷰
- 4.2.1 뷰에서 로직 분리해내기
- 4.2.2 로직에서 뷰 분리해내기
- 4.3 Ajax에서의 컨트롤러
- 4.3.1 전통적인 이벤트 처리 방법
- 4.3.2 W3C 이벤트 처리 모델
- 4.3.3 유연한 이벤트 모델 구현
- 4.4 Ajax에서의 모델
- 4.4.1 자바스크립트를 이용한 객체 모델링
- 4.4.2 서버와 연동
- 4.5 모델에서 뷰 생성
- 4.5.1 자바스크립트 리플렉션
- 4.5.2 배열과 객체
- 4.5.3 컨트롤러 추가
- 4.6 요약
- 4.7 참고자료
- 5장 서버의 역할
- 5.1 서버 작업
- 5.2 서버 프로그램 구현
- 5.2.1 많이 쓰이는 프로그래밍 언어
- 5.2.2 N 티어 구조
- 5.2.3 클라이언트측과 서버측의 모델
- 5.3 일반적인 서버 구성 방법
- 5.3.1 프레임웍을 적용하지 않은 웹 서버
- 5.3.2 모델2 프레임웍
- 5.3.3 컴포넌트 기반의 프레임웍
- 5.3.4 SOA 적용
- 5.4 데이터 통신 유형
- 5.4.1 클라이언트 전용 방식
- 5.4.2 행성 탐색기 예제
- 5.4.3 내용 중심 : 웹페이지 관점
- 5.4.4 스크립트 중심 : 플러그인 관점
- 5.4.5 데이터 중심 : 애플리케이션 관점
- 5.5 서버에 데이터 전송
- 5.5.1 HTML 폼
- 5.5.2 XMLHttpRequest
- 5.5.3 사용자의 변경 사항 관리
- 5.6 요약
- 5.7 참고자료
- 3부 Ajax 고급 기법
- 6장 편의성을 고려한 인터페이스
- 6.1 고품질 애플리케이션의 요건
- 6.1.1 반응성
- 6.1.2 안정성
- 6.1.3 일관성
- 6.1.4 간결성
- 6.1.5 실전 적용
- 6.2 메시지 전달 방법
- 6.2.1 요청에 대한 응답 처리
- 6.2.2 다른 사용자의 변경 내용 처리
- 6.3 Ajax 메시지 프레임웍
- 6.3.1 메시지 설계
- 6.3.2 사용자 인터페이스 요구사항
- 6.4 메시지 프레임웍 구현
- 6.4.1 상태표시줄과 아이콘
- 6.4.2 메시지 세부 내용
- 6.4.3 기능 통합
- 6.5 네트웍 전송 모듈에 메시지 프레임웍 활용
- 6.6 최신 데이터 표시
- 6.6.1 하일라이팅 방법 구상
- 6.6.2 Scriptaculous 라이브러리의 Effect 객체
- 6.7 요약
- 6.8 참고자료
- 7장 Ajax와 보안
- 7.1 자바스크립트와 브라우저 보안
- 7.1.1 원천 서버 정책
- 7.1.2 Ajax에서 고려해야 할 점
- 7.1.3 하위 도메인 문제
- 7.1.4 브라우저별 보안 기능
- 7.2 원격 서비스와 통신하는 방법
- 7.2.1 원격 서비스 프록시
- 7.2.2 웹 서비스 활용
- 7.3 비밀 데이터 보호
- 7.3.1 중간자 공격
- 7.3.2 보안 HTTP 연결
- 7.3.3 자바스크립트로 하는 데이터 암호화
- 7.4 Ajax 데이터 전송 정책
- 7.4.1 안정적인 웹 서버 설계
- 7.4.2 웹 데이터 접근 제한
- 7.5 요약
- 7.6 참고자료
- 8장 성능
- 8.1 성능이란?
- 8.2 자바스크립트 실행 속도
- 8.2.1 원시적인 실행 시간 측정 방법
- 8.2.2 벵크만 프로파일러
- 8.2.3 Ajax 실행 속도 최적화
- 8.3 자바스크립트 메모리 관리
- 8.3.1 메모리 누수 방지
- 8.3.2 Ajax에서 고려해야 할 점
- 8.4 성능을 높이는 설계 방법
- 8.4.1 메모리 사용량 측정
- 8.4.2 간단한 예제
- 8.4.3 메모리 사용량을 줄이는 방법
- 8.5 요약
- 8.6 참고자료
- 4부 Ajax 실전 프로젝트
- 9장 동적으로 연동하는 콤보 박스
- 9.1 더블 콤보 자바스크립트
- 9.1.1 클라이언트 중심 개발의 제약사항
- 9.1.2 서버 중심 개발의 제약사항
- 9.1.3 Ajax로 해결하자
- 9.2 클라이언트측 구성 방안
- 9.2.1 HTML 폼 설계
- 9.2.2 클라이언트와 서버 간의 통신
- 9.3 서버측 프로그램 : VB.NET
- 9.3.1 XML 결과 문서 정의
- 9.3.2 서버측 코드 작성
- 9.4 결과 표시
- 9.4.1 XML 문서 들여다보기
- 9.4.2 CSS 적용
- 9.5 고급 기능
- 9.5.1 다중 항목 선택
- 9.5.2 트리플 콤보
- 9.6 리팩토링
- 9.6.1 업그레이드된 ContentLoader
- 9.6.2 더블 콤보 모듈 구현
- 9.7 요약
- 10장 검색어 자동완성 기능 만들기
- 10.1 사전 조사
- 10.1.1 일반적인 동작 방식
- 10.1.2 구글 서제스트 사례
- 10.1.3 Ajax로 만드는 검색어 자동완성
- 10.2 서버측 프레임웍 : C#
- 10.2.1 서버와 데이터베이스
- 10.2.2 서버측 프로그램 테스트 요령
- 10.3 클라이언트측 프레임웍
- 10.3.1 HTML
- 10.3.2 자바스크립트
- 10.3.3 서버에 요청 전송
- 10.4 기능 추가 : 다중 엘리먼트 지원
- 10.5 리팩토링
- 10.5.1 첫 날 : TextSuggest 컴포넌트 개발 계획
- 10.5.2 둘째 날 : TextSuggest 코딩 - 깔끔하고 설정하기 쉬운 컴포넌트
- 10.5.3 셋째 날 : Ajax 적용
- 10.5.4 넷째 날 : 이벤트 처리
- 10.5.5 마지막 날 : 추천단어 목록 화면 구성
- 10.5.6 리팩토링 결과 보고
- 10.6 요약
- 11장 Ajax로 만드는 포털 사이트
- 11.1 진화하는 포털
- 11.1.1 전통적인 포털
- 11.1.2 풍부한 기능의 인터페이스
- 11.2 자바 기반의 Ajax 포털 구성
- 11.3 Ajax 로그인 기능
- 11.3.1 사용자 테이블
- 11.3.2 서버측 로그인 프로그램
- 11.3.3 클라이언트측 로그인 프로그램
- 11.4 DHTML 윈도우 구현
- 11.4.1 윈도우 데이터베이스
- 11.4.2 윈도우 정보를 전달하는 서버측 프로그램
- 11.4.3 외부 자바스크립트 라이브러리
- 11.5 Ajax 자동 저장 기능 구현
- 11.5.1 윈도우 라이브러리 수정
- 11.5.2 윈도우 정보 자동 저장
- 11.6 리팩토링
- 11.6.1 생성 메소드 구현
- 11.6.2 AjaxWindow.js 라이브러리 호출
- 11.6.3 포털 컴포넌트의 명령 정의
- 11.6.4 Ajax 활용
- 11.6.5 리팩토링 결과 보고
- 11.7 요약
- 12장 XSLT를 활용한 실시간 검색
- 12.1 검색의 기술적인 측면
- 12.1.1 전통적인 검색 방법
- 12.1.2 프레임과 팝업 윈도우를 사용할 때의 문제
- 12.1.3 Ajax와 XSLT를 이용한 실시간 검색 구상
- 12.1.4 클라이언트로 결과 전송
- 12.2 클라이언트 프로그램
- 12.2.1 클라이언트 구성
- 12.2.2 작업 초기화
- 12.3 서버측 프로그램 : PHP
- 12.3.1 XML 문서 만들기
- 12.3.2 XSLT 준비
- 12.4 XML과 XSLT 활용
- 12.4.1 인터넷 익스플로러
- 12.4.2 모질라
- 12.5 마무리
- 12.5.1 CSS 적용
- 12.5.2 기타 개선 사항
- 12.5.3 XSLT 도입을 위한 고려사항가 적절한 방법인가?
- 12.5.4 즐겨찾기 문제 해결 방안
- 12.6 리팩토링
- 12.6.1 XSLTHelper
- 12.6.2 컴포넌트로 재구성
- 12.6.3 리팩토링 결과 보고
- 12.7 요약
- 13장 Ajax 애플리케이션 만들기
- 13.1 인터넷상의 정보 수집
- 13.1.1 XML 피드 받기
- 13.1.2 RSS 표준의 구조
- 13.2 사용자 인터페이스 구현
- 13.2.1 작업 흐름
- 13.2.2 테이블을 사용하지 않은 HTML 프레임웍
- 13.2.3 CSS 스타일 적용
- 13.3 RSS 피드 받기
- 13.3.1 전역 변수
- 13.3.2 피드 미리 읽어두기
- 13.4 화면 전환 효과
- 13.4.1 브라우저별 투명도 설정 방법
- 13.4.2 나타나고 사라지는 효과
- 13.4.3 자바스크립트 타이머
- 13.5 추가 기능
- 13.5.1 XML 피드 추가
- 13.5.2 화면 이동 기능
- 13.6 제약 사항 해결
- 13.6.1 모질라 보안 문제 해결
- 13.6.2 애플리케이션 활용 범위 확장
- 13.7 리팩토링
- 13.7.1 RSS 리더 모델
- 13.7.2 RSS 리더 뷰
- 13.7.3 RSS 리더 컨트롤러
- 13.7.4 리팩토링 결과 보고
- 13.8 요약
- 부록 A. Ajax 개발자의 필수 도구
- 부록 B. 자바스크립트와 객체 지향 프로그래밍
관련 블로그 글
Ajax? 에이잭스? 정답은 없지만...
(가까운 역자 몇 분께는 해드린 이야기지만) 어느 날 작은 서점에서 걸려온 전화를 한 통 받았습니다.
"에이콘이죠? 아직 인 액션 책 있어요?"
"네? 아직이요?"
"책 제목이 아직 인 액션인데, 없어요?"
"아, Ajax 인 액션이요..."
서점 관계자 분의 영어 실력이나 발음을 무시해서 드린 말씀은 절대 아닙니다. 지금은 "에이잭스"라는 발음으로 어느 정도 통일이 된 듯 보입니다만, 불과 2, 3년전만 해도 Ajax는 각종 웹 관련 컨퍼런스에 가도 "아작스, 에이잭스, 아약스..." 등 다양한 이름으로 불리웠습니다. 게다가 표기에까지 이르면 애이젝스, 애이잭스, 경우의 수는 배로 늘어나겠죠. 여기에는 네덜란드 축구팀 아약스도 한몫을 했을 겁니다. (Ajax 작명과 관련한 자세한 일화는 어제 방문한 M모 역자분이 Ajax 보안 책인 줄 알고 샀다가 버럭했다는--;; "방탄 Ajax" 책 앞 부분에 자세히 나와있습니다.)
기술전문서를 다루는 저희 에이콘같은 출판사에서는 책 제목을 지을 때 특히 새로 부상하는 개념이나 용어라든가 다른 곳에서 출간된 적이 없는 분야라든가 하면 제목을 지을 때 여간 고민스러운 게 아닙니다. 저희 에이콘의 편집방침은 일단 될 수 있는 한 (1) 반드시 한글로 표기할 것(단, 영문 두문자를 딴 약어는 예외) (2) 가능한 한 우리말로 번역할 것 (3) 그러나 무리한 한글화는 피할 것..입니다. 입말과 글말이 나뉜 우리 말글세상에서 책은 어찌 됐든 눈으로 읽어내야 함이기 때문에 한글 표기는 필수불가결합니다. 저희 책의 최신 도서 목록, 혹은 초난감 기업의 조건 본문이나 최근 나온 acornLoft 시리즈 책들을 보시면 아시겠지만 될 수 있으면 한글로 표기하기 위해 애를 씁니다. 물론 최근엔 그냥 영어를 음차로 표기한 책 제목도 있어서 좀더 책내용을 잘 설명한 멋진 책 제목을 지어내지 못한 데는 죄스러운 생각이 들고, 목록을 막상 펼쳐보니 그다지 그러하지도 않은 듯도 합니다만.
루씬 인 액션이라는 책을 낼 때의 얘기입니다. 오픈소스 자바 검색엔진 Lucene을 다룬 이 책을 처음 낼 때만해도 이 루씬을 제대로 발음하거나 표기하는 분이 없었습니다. 루슨트 테크놀로지(Lucent Technology)에 낯이 익었던지라, 루슨? 루센? 어떻게 읽어야 할지 난감해했죠. 한편에서는 그냥 Lucene이라고 쓰자는 분도 있었지만, 한글 표기의 제1원칙을 저버릴 수 없었기에 역자 강철구님이 저자에게 메일을 보냈습니다. 그리고 결국 Lucene이 루씬 창시자 더그 커팅 부인의 미들네임이고, [lusi:n]으로 발음한다는 사실을 알아냈죠. 야후, 멋진 남편입니다. bliss 인 액션, 뭐 그런 셈이죠? :)
지금 돌이켜 생각하면 저희 출판사에서 책을 낼 때 그냥 무성의하게 LUCENE! 이렇게 냈다면 아직도 왕왕 루쎈이니 루쓴이니 루씬이니 많은 용어가 난무하지 않았을까 싶은 생각이 듭니다. 물론 지금은 루씬이라는 단어를 보면 촌스럽다거나 낯설다는 생각이 전혀 들지 않지만(이건 물론 맨날 회사에서 책을 접하는 제 입장일 수도 있습니다^^) 처음 책을 낼 땐 저조차도 참으로 '메롱'한 제목 같다는 느낌을 지울 수 없었던 게 사실입니다. 하지만 전 언어란 바로 이렇듯 관습이거나 사회적인 무언의 약속과도 같은 특성을 지녔다고 생각합니다. 물론 아직도 유명한 저자이자 교수인 도날드 크누스(Knuth)에 대해서는 K가 묵음이 아니란 것까지는 모두 동의했지만, 늘 커누스니 크누스니에 대해서 역자분들의 논쟁이 이어지기도 합니다만, 흠. 여하튼 여기까지.
이 경우는 발음을 전혀 짐작할 수 없는 용어에 대한 조금 극단적인 예였구요, 영문표기냐 한글표기냐의 갈림길에서 고민을 하는 경우도 많아서, 대부분 필자분들을 잘 설득(!)해서 일반인에게 쉽게 다가갈 수 있는 방향으로 서로 절충을 합니다. 영문표기를 우선하시는 저자나 역자분들이 하시는 말씀도 옳은 게, 이미 개발자는 영문 표기에 친숙하다. 혹은 등록상표이기 때문에 한글로 표기하는 건 어불성설이다.라는 말씀을 많이 하시죠. 하지만 결국 번역서라는 것도 한 나라의 글과 말을 다른 나라의 언어로 옮겨 표현하는 작업이라고 생각해본다면 IT 기술분야라는 족쇄로 애써 자신을 꽁꽁 얽어맬 필요는 없다고 생각합니다. 지금은 친숙해진 와이어샤크를 활용한 실전 패킷 분석이라는 책을 낼 때도 Wireshark를 와이어샤크로 표기함에 있어서, 이제는 유명 베스트셀러가 되어버린 (개정판) 예제로 배우는 Adobe 플렉스: UX와 성능이 향상된 RIA 제작의 첫걸음: 플렉스 3 & 어도비 에어를 낼 때도 플렉스냐, FLEX냐, 에어냐 AIR냐를 갖고 적지 않은 이야기를 했던 걸 생각하면 참 아주 간단한 문제인 듯하면서도 결정하기 어려운 것 같기도 합니다.
지금은 아주 폭발적으로 많은 책이 출간된 Ajax 분야는 그런 면에서 볼 때 아쉬움이 많이 남는 작업이었습니다. Ajax 인 액션을 출간하던 당시 모출판사 책에 국내 첫 Ajax 책 자리를 내주고 두번째로 내는 거였던지라 왜 그랬는지 모르지만 약간 소심한 마음에 그냥 Ajax라는 표기를 따랐었습닏다. 과감히 그때 "에이잭스 인 액션"이라고 책 제목을 지었더라면 어땠을까요? 지금 보면 너무 낯설지만 그래도 뭔가 용어 통일을 주도해나가지 않았을까 하는 생각도 들거든요.
맞아요. 어디든 정답은 없습니다. 전부를 만족시킬 수 있는 것도 없구요. 저희가 하고 있는 일련의 작업들이 전부 맞다고도 볼 수는 없지만 뭔가 노력과 시도를 해보는 건 필요하겠죠. 얼마 전 개봉한 영화 존레논 컨피덴셜 상영 후 이어진 시네토크에서 김작가는 그런 말을 했다죠. 좋은 음악을 만드는 사람이 훌륭한 음악가라면, 세상을 바꾸는 음악을 만드는 사람은 "위대한 음악가"라구요. 저희는 "위대한"은커녕 아직 "훌륭한" 출판사의 반열에 이르기도 턱없이 부족하지만, 그래도 언젠가는 세상을 바꾸는 책을 만들어내보겠다는 작은 꿈 하나씩만은 가슴 속에 품고 살고 있지 않나 하는 생각은 듭니다.
저희 출판사에서 나온 "조엘 온 소프트웨어"가 모든 개발자들의 가슴에 불을 지르고 첫 씨앗을 뿌리기 시작한 "웹 표준 연작"이 웹 세상을 조금씩 바꾸고 "게임회사 이야기"가 날이면 날마다 지속되는 야근 속 배달 피자의 열망을 지피웠다면 말이죠. :)
* 참고로 저희 출판사에서는 외래어 표기시 될 수 있으면 개발자분들이 쓰는 용어, 하지만 발음이 틀린 경우라면 우선은 발음 기호를 최우선합니다. 어플리케이션보다는 애플리케이션. 에이잭스같은 경우에서도 보듯이 될 수 있으면 "ㅔ" 발음과 "ㅐ" 발음은 구분해주는 편이 좋죠. 외래어표기법을 지키고는 싶지만, 현실과 너무 동떨어진 경우에는 따르기가 쉽지 않더군요. -0-
크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
『Ajax 인 액션』 1위.. ^^*
전 세계에서 가장 많이 팔린 Ajax No.1 베스트셀러!지난 5월 중순, 위와 같은 문구를 내걸고 판매를 시작한 『Ajax 인 액션』이 오늘 강컴 베스트셀러 1위에 올랐습니다. 할인 행사나 이벤트 도서가 아닌 다음에, 이렇듯 꾸준한 기세로 성원을 얻어내어 1위에 오르는 경우는 흔치 않았었는데요.
아마존 독자가 열광하고 전 세계 전문가들이 극찬한 최고의 Ajax 책
독자들의 사랑에 힘입어 소개 문구에 한 줄을 더 추가해야 할 것 같습니다.
Ajax 관련 국내 책을 모두 석권한 최고의 베스트셀러!물론 한낱(!) 순위에 연연하는 것은 아니지만, 그래도 기분 좋습니다. ^_^
좋은 책을 발굴해서 아주 훌륭히 번역해준 강철구 역자님께 감사드립니다. 황금돼지띠 해에 태어날 2세를 가지셨다는 기쁜 소식도 들었는데, 든든한 에이콘 가족으로 늘 함께 해주셔서 감사합니다. 그리고 무엇보다도 좋은 책을 골라 읽어 주시는 독자여러분께도 감사의 말씀 전할게요.
(음.. 저희야.... 역자분과 독자분들이 잘 차려주신 밥상에서 그저 맛있게 먹기만 했을 뿐... ㅡ.ㅡ ㅎㅎ)
크리에이티브 커먼즈 라이센스 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
도서 오류 신고
정오표
pxxxiv 마지막 문단 삭제
Ajax 커뮤니티(www.ajaxinaction.net)는 현재 운영되지 않고 있습니다.
p41 아래에서 8행 코드 부분
h1 div { color: red } → div h1 { color: red }
p150 2행
내장된 String.substring 함수를 → 내장된 String.split() 함수를
p168 예제 4.10 11행, 14행
Garment.prototype.addColor(color){
→Garment.prototype.addColor=function(color){
Garment.prototype.addSize(size){
→Garment.prototype.addSize=function(size){
Ajax 커뮤니티(www.ajaxinaction.net)는 현재 운영되지 않고 있습니다.
p41 아래에서 8행 코드 부분
h1 div { color: red } → div h1 { color: red }
p150 2행
내장된 String.substring 함수를 → 내장된 String.split() 함수를
p168 예제 4.10 11행, 14행
Garment.prototype.addColor(color){
→Garment.prototype.addColor=function(color){
Garment.prototype.addSize(size){
→Garment.prototype.addSize=function(size){