l Web 2.0 시대의 Ajax 애플리케이션 개발자, 설계자, 분석가를 위한 필독서 l 객체지향 Ajax 애플리케이션 구현 방법을 상세하게 제시 l prototype 프레임웍 소스 코드 완전 분석
Ajax는 그 자체는 물론이고 Web 2.0 실현의 초석이 된다. 이 책은 이런 시대적 흐름을 주도하고 미래 지향적인 개발자, 설계자, 분석가의 요구를 충족시키기 위해 쓰여졌다.
객체지향 방법으로 애플리케이션을 개발하는 것은 필요충분조건이다. 하지만 객체지향 방법은 서버 사이드 애플리케이션의 전유물이었고, 어긋난 개발 환경과 접근으로 인해 정작 중요한 클라이언트 사이드 애플리케이션은 보조 역할을 하였다. 하지만 Ajax는 이런 형태에 새로운 패러다임을 제시하였으며 prototype이 이를 증명하였다. 이 책은 prototype 프레임웍을 이용하여 객체지향 방법으로 Ajax 애플리케이션을 구현할 수 있는 방법을 밑바탕부터 제시한다.
prototype은 세계적으로 인정받는 Ajax 프레임웍이다. 이에 대해서는 이미 많은 전 세계 개발자들에 의해 검증이 끝난 상태이다. 그렇다면 어떤 점이 개발자들의 마음을 사로잡게 되었는지 속을 들여다보고 파헤쳐봐야 한다. 이 과정을 통해 자연스럽게 실력이 향상됨은 물론이고, Ajax 애플리케이션 구현의 새로운 세계도 접할 수 있다. 이 책은 prototype 소스 코드를 라인 단위로 분석하였다. 코드의 작성 목적 및 이유를 분석하였고 아울러 기술적인 밑바탕을 제시하였다.
『Ajax prototype: 프로토타입 완전분석』은 새로운 패러다임의 Ajax 애플리케이션 구현을 위해 빠르고 쉬운 지름길로 여러분을 안내할 것이다.
저자 및 역자 소개
저자 : 김영보
http://cafe.naver.com/requirements.cafe 1979년 코오롱 전산실에 입사한 후 28년 동안 소프트웨어를 개발해온 베테랑 개발자이며 분석가이다. 장인 정신을 추구하며 아직도 시스템 개발 현장에 있는 희귀한 사람이기도 하다. 현재는 시스템 개발, 개발자를 위한 기고, 강의/세미나 등을 하고 있으며, 네이버에서 “Ajax와 요구공학” 카페를 운영하고 있다. 저서로는『요구분석을 위한 Event Process 모델링』(2005.11 가메출판사), 『Ajax 활용』(2006.4 가메출판사)이 있다.
목차/책속으로
• 목차보기
1부 Ajax와 prototype js 개요
1 Ajax 개요 1.1 Ajax 구현 기술 1.2 Ajax와 MVC 패턴 1.3 Ajax 실행 속도 2 prototype js 개요 2.1 prototype js란? 2.2 Framework 선정 체크 포인트 2.3 prototype js 소스 파일 다운로드 2.4 prototype js 사용 유형 2.5 기술 관점에서의 prototype js 의미 2.6 prototype js 형태 3 Ajax 애플리케이션 개발 준비 3.1 Ajax 애플리케이션 실행 환경 3.2 Ajax 애플리케이션 개발 툴 3.3 HTML, CSS, Java****** 작성 기준 3.4 디버깅 3.4.1 디버깅을 하는 이유 3.4.2 Firebug로 디버깅하기
2부: 자바스크립트와 prototype js의 객체지향
4 자바스크립트와 객체지향 4.1 객체지향 언어 4.1.1 객체지향 언어의 중심 단어 4.1.2 책임 분할 4.1.3 클래스와 오브젝트 4.1.4 함수와 메서드 4.2 자바스크립트와 배열 4.2.1 Array 클래스 배열 4.2.2 Object 클래스 배열 4.2.3 프로퍼티 형태 배열 4.2.4 Hash 타입 배열 4.3 prototype 4.3.1 생성자 함수 4.3.2 prototype 프로퍼티 4.3.3 prototype 검색 방법 4.3.4 prototype js의 prototype 사용 형태 5 prototype js와 객체지향 5.1 메서드, 프로퍼티 목록 5.2 클래스 생성 5.2.1 자바스크립트와 아규먼트 5.2.2 Class.create 메서드 5.3 prototype js의 상속 구현 5.3.1 for (in) 루프 5.3.2 object.extend 메서드 5.3.3 다중 상속 5.3.4 오버라이딩 5.3.5 생성자 오버라이딩
8 Number 클래스 확장 8.1 메서드 목록 8.2 Number 클래스 확장 메서드 8.2.1 toColorPart 메서드 8.2.2 succ 메서드 8.2.3 times 메서드 9 Object 클래스 확장 9.1 메서드 목록 9.2 Object 클래스 확장 메서드 9.2.1 inspect 9.2.2 keys 9.2.3 values 9.2.4 clone 10 정규 표현 10.1 정규 표현이란? 10.2 정규 표현 패턴 10.2.1 텍스트 문자 패턴 10.2.2 특수 문자 패턴 10.3 정규 표현 사용 10.3.1 정규 표현 작성 방법 10.3.2 i, g, m 변경자 10.3.3 정규 표현 메서드 10.4 특수 문자 10.4.1 특수 문자 목록 10.4.2 매치 위치 10.4.3 수량자 10.4.4 선택, 이스케이프, 점 10.4.5 괄호, 클래스 10.4.6 역슬래시 특수문자-1 10.4.7 역슬래시 특수문자-2 10.4.8 역슬래시 특수문자-3 11 String 클래스 확장 11.1 메서드, 함수 목록 11.2 String 클래스 확장 메서드-1 11.2.1 strip 메서드 11.2.2 stripTags 메서드 11.2.3 strip******s 메서드 11.2.4 extract******s 메서드 11.2.5 eval******s 메서드 11.3 String 클래스 확장 메서드-2 11.3.1 escapeHTML 메서드 11.3.2 unescapeHTML 메서드 11.3.3 toQueryParams 메서드 11.3.4 toArray 메서드 11.3.5 camelize 메서드 11.3.6 inspect 메서드 11.3.7 truncate 메서드 11.3.8 succ 메서드 11.4 String 클래스 확장 메서드-3 11.4.1 gsub 메서드 11.4.2 sub 메서드 11.4.3 scan 메서드 11.4.4 capitalize 메서드 11.4.5 underscore 메서드 11.4.6 dasherize 메서드 11.4.7 prepareReplacement 함수 11.4.8 interpret 함수 12 Template 클래스 12.1 메서드, 프로퍼티 목록 12.2 Template 클래스 메서드 12.2.1 Pattern 프로퍼티 12.2.2 initialize 메서드 12.2.3 evaluate 메서드
5부: Array
13 ObjectRange 클래스 13.1 메서드, 함수 목록 13.2 ObjectRange 클래스 메서드 13.2.1 initialize 메서드 13.2.2 _each 메서드 13.2.3 include 메서드 13.3 $R() 함수 14 Enumerable 오브젝트 14.1 메서드 목록 14.2 Enumerable 오브젝트 메서드-1 14.2.1 each 메서드 14.2.2 all 메서드 14.2.3 any 메서드 14.2.4 collect 메서드 14.2.5 map 메서드 14.2.6 detect 메서드 14.2.7 find 메서드 14.3 Enumerable 오브젝트 메서드-2 14.3.1 findAll 메서드 14.3.2 select 메서드 14.3.3 reject 메서드 14.3.4 size 메서드 14.3.5 grep 메서드 14.3.6 include 메서드 14.3.7 member 메서드 14.3.8 inject 메서드 14.3.9 invoke 메서드 14.4 Enumerable 오브젝트 메서드-3 14.4.1 max 메서드 14.4.2 min 메서드 14.4.3 partition 메서드 14.4.4 pluck 메서드 14.4.5 sortBy 메서드 14.4.6 toArray 메서드 14.4.7 entries 메서드 14.4.8 inspect 메서드 14.4.9 zip 메서드 15 Array 클래스 확장 15.1 메서드 함수 목록 15.2 $A() 함수 15.3 Array 클래스 메서드-1 15.3.1 clear 메서드 15.3.2 first 메서드 15.3.3 last 메서드 15.3.4 compact 메서드 15.3.5 flatten 메서드 15.3.6 without 메서드 15.3.7 indexOf 메서드 15.4 Array 클래스 메서드-2 15.4.1 reverse 메서드 15.4.2 inspect 메서드 15.4.3 reduce 메서드 15.4.4 each 메서드 15.4.5 size 메서드 15.4.6 uniq 메서드 15.4.7 clone 메서드 15.4.8 toArray 메서드 16 Hash 오브젝트 16.1 메서드, 프로퍼티 목록 16.2 $H() 함수 16.3 Hash 오브젝트 메서드 16.3.1 keys 메서드 16.3.2 values 메서드 16.3.3 each 메서드 16.3.4 merge 메서드 16.3.5 remove 메서드 16.3.6 toQueryString 메서드 16.3.7 inspect 메서드 16.3.8 Hash.toQueryString 메서드 17 Prototype 오브젝트 17.1 메서드, 프로퍼티 목록 17.2 Prototype 오브젝트 메서드 17.2.1 Version 프로퍼티 17.2.2 BrowserFeatures.XPath 프로퍼티 17.2.3 ******Fragment 프로퍼티 17.2.4 emptyFunction 메서드 17.2.5 k 메서드
6부: DOM
18 Function 클래스 확장 18.1 메서드 목록 18.2 Function 클래스 메서드 18.2.1 bind 메서드의 필요성 18.2.2 bind 메서드 18.2.3 bindAsEventListener 메서드 19 Element 오브젝트 19.1 메서드, 프로퍼티 목록 19.2 $() 함수 19.2.1 $() 함수 19.2.2 $() 함수에 다수의 아규먼트 사용 19.3 Element.Methods 오브젝트 메서드-1 19.3.1 hide 메서드 19.3.2 show 메서드 19.3.3 visible 메서드 19.3.4 toggle 메서드 19.3.5 remove 메서드 19.3.6 update 메서드 19.4 Element.Methods 오브젝트 메서드-2 19.4.1 classNames 메서드 19.4.2 hasClassName 메서드 19.4.3 addClassName 메서드 19.4.4 removeClassName 메서드 19.4.5 getHeight 메서드 19.4.6 getStyle 메서드 19.4.7 setStyle 메서드 19.5 Element.Methods 오브젝트 메서드-3 19.5.1 makePositioned 메서드 19.5.2 undoPositioned 메서드 19.5.3 getDimensions 메서드 19.5.4 scrollTo 메서드 19.5.5 makeClipping 메서드 19.5.6 undoClipping 메서드 19.5.7 empty 메서드 19.5.8 cleanWhitespace 메서드 19.6 Element.ClassNames 클래스 19.6.1 set 메서드 19.6.2 add 메서드 19.6.3 remove 메서드 20 periodicalExecuter 클래스 20.1 메서드, 프로퍼티 목록 20.2 PeriodicalExecuter 클래스 시나리오 20.3 periodicalExecuter 클래스 메서드 20.3.1 initialize 메서드 20.3.2 registerCallback 메서드 20.3.3 onTimerEvent 메서드 20.3.4 stop 메서드 21 Abstract, Insertion 오브젝트 21.1 메서드, 프로퍼티 목록 21.2 Abstract 오브젝트 21.3 Abstract.Insertion 클래스 21.3.1 initialize 메서드 21.3.2 contentFromAnonymousTable 메서드 21.4 Insertion 오브젝트 21.5 Insertion.Before클래스 21.5.1 initializeRange 메서드 21.5.2 insertContent 메서드 21.6 Insertion.After클래스 21.6.1 initializeRange 메서드 21.6.2 insertContent 메서드 21.7 Insertion.Top클래스 21.7.1 initializeRange 메서드 21.7.2 insertContent 메서드 21.8 Insertion.Bottom클래스 21.8.1 initializeRange 메서드 21.8.2 insertContent 메서드 22 Position 오브젝트 22.1 메서드, 프로퍼티 목록 22.2 Position 오브젝트 메서드-1 22.2.1 realOffset 메서드 22.2.2 offsetParent 메서드 22.2.3 positionedOffset 메서드 22.2.4 cumulativeOffset 메서드 22.2.5 prepare 메서드 22.2.6 within 메서드 22.2.7 withinIncludingScrolloffsets 메서드 22.3 Position 오브젝트 메서드-2 22.3.1 overlap 메서드 22.3.2 page 메서드 22.3.3 clone 메서드 22.3.4 absolutize 메서드 22.3.5 relativize 메서드 23 Selector 클래스 23.1 메서드 목록 23.2 Selector 클래스 메서드 23.2.1 Selector 클래스 생성 23.2.2 initialize 메서드 23.2.3 parseExpression 메서드 23.2.4 compileMatcher 메서드 23.2.5 buildMatchExpression 메서드 23.2.6 태그, class 이름으로 엘리먼트 추출 23.2.7 속성값으로 엘리먼트 추출 23.2.8 findElements 메서드 23.3 $$() 함수 23.3.1 $$() 함수 기본 23.3.2 $$() 함수 기능
7부: Event
24 Event 오브젝트 24.1 Event 개요 24.1.1 이벤트와 근거 24.1.2 이벤트와 Ajax 24.1.3 이벤트 리스너 24.2 메서드 목록 24.3 Event 오브젝트 메서드-1 24.3.1 observe 메서드 24.3.2 element 메서드 24.3.3 Event 오브젝트 상수 24.3.4 stopObserving 메서드 24.3.5 isLeftClick 메서드 24.3.6 pointerX, pointerY 메서드 24.4 Event 오브젝트 메서드-2 24.4.1 findElement 메서드 24.4.2 Bubble과 Capture 24.4.3 stop 메서드 24.4.4 구조와 표현의 분리 24.4.5 웹 페이지 설계 가이드 24.4.6 unloadCache 메서드 24.4.7 객체지향 접근 방법 25 TimedObserver 클래스 25.1 메서드 목록 25.2 Abstract.TimedObserver 클래스 25.2.1 initialize 메서드 25.2.2 registerCallback 메서드 25.2.3 onTimerEvent 메서드 25.3 Form.Element.Observer 클래스 25.4 Form.Observer 클래스
8부: AJAX 통신
26 Ajax 오브젝트 26.1 AJAX 통신 개요 26.1.1 동기, 비동기 통신 26.1.2 XMLHttpRequest 흐름 26.1.3 XMLHttpRequest 메서드 26.1.4 XMLHttpRequest 프로퍼티 26.1.5 서버에서 데이터 파일 수신 26.2 메서드, 프로퍼티 목록 26.3 Ajax 오브젝트 메서드 26.3.1 getTransport 메서드 26.3.2 activeRequestCount 프로퍼티 26.4 Responders 오브젝트 26.4.1 responders 프로퍼티 26.4.2 register 메서드 26.4.3 unregister 메서드 26.4.4 dispatch 메서드 26.5 Base 클래스 26.5.1 options 오브젝트 26.5.2 callback 프로퍼티 26.5.3 setOptions 메서드 26.5.4 onComplete와 onSuccess 차이 27 Ajax 클래스 27.1 Request 클래스 27.1.1 Events 오브젝트 27.2 메서드 목록 27.3 Request 클래스 메서드-1 27.3.1 initialize 메서드 27.3.2 request 메서드 27.3.3 onStateChange 메서드 27.3.4 success 메서드 27.3.5 respondToReadyState 메서드 27.4 Request 클래스 메서드-2 27.4.1 setRequestHeaders 메서드 27.4.2 getHeader 메서드 27.4.3 evalJSON 메서드 27.4.4 evalResponse 메서드 27.4.5 dispatchException 메서드 27.5 Updater 클래스 27.5.1 container 오브젝트 27.5.2 initialize 메서드 27.5.3 updateContent 메서드 27.6 PeriodicalUpdater 클래스 27.6.1 PeriodicalUpdater 클래스 실행 27.6.2 initialize 메서드 27.6.3 frequency와 decay 프로퍼티 27.6.4 start 메서드 27.6.5 updateComplete 메서드 27.6.6 onTimerEvent 메서드 27.6.7 stop 메서드
찾아보기
• 책속으로
『Ajax prototype js: 프로토타입 완전분석』은 선택이 아니라 필수가 될 것이다. 이 책을 안보고 Ajax 애플리케이션을 논해서는 곤란하다. 자바스크립트가 객체지향 언어가 아니므로 객체지향을 구현할 수 없다고 한다면, 이 또한 곤란하다. 이런 말들은 이 책을 읽고 난 후에는 필요없는 말이 될 것이다. 필자는 이를 확신한다. 책을 다 읽고 난 후 필자가 왜 이렇게 강하게 주장했는가를 독자는 이해하게 될 것이다.
prototype js가 현존하는 Ajax 프레임웍 중에서 가장 좋다고 하는 것은 이미 전 세계 개발자들에 의해 검증이 끝났다. 이제 prototype js는 Ajax 애플리케이션을 개발할 때 없어서는 안될 존재가 되었다. prototype js는 자바스크립트로 만들어져 있지만, 그 동안 자바스크립트로 구현하기에 어려움이 있다고 생각했던 객체지향 방법을 제시하고 증명하였다.
이 책의 목적은 prototype js를 이해하는 것이며, 이를 통해 객체지향 방법으로 자바스크립트 코드를 작성하는 것이다. prototype js를 이해하기 위해서는 자바스크립트 코드를 분석해야 하며, 분석하기 위해서는 코드를 작성한 논리적 배경을 이해해야 한다. 이 책은 이러한 흐름으로 구성돼 있다.
prototype js의 클래스, 오브젝트, 메서드 등을 이해하기 위해서 사전 이해가 필요한 부분이 있다면 먼저 이를 설명하고 prototype js 소스 코드를 설명하였다. 또 prototype js 소스 코드를 설명한 후 이를 보충 설명하는 반대의 경우도 있다. 이러한 형태는 prototype js 소스 코드에 대해 보다 논리적이고 합리적으로 접근하기 위함이다.
자바스크립트에 대한 개념이 전혀 없는 초급자라면 자바스크립트에 대한 책을 먼저 본 후 이 책을 볼 것을 권한다. 왜냐하면 자바스크립트의 아주 기초적인 내용은 다루지 않기 때문이다.
창조는 모방으로부터 시작된다는 말이 있다. 유아기에 엄마의 말을 따라 하면서 자연스럽게 말을 배우듯이 객체지향 방법으로 작성된 prototype js 소스 코드를 분석하면서 자연스럽게 객체지향 방법으로 접근할 수 있으며, prototype js에서 제공하는 프레임웍을 이용하여 보다 유려한 Ajax 애플리케이션을 개발할 수 있다.
이 책은 크게 두 가지 관점에서 접근할 수 있다. prototype js에서 제공하는 클래스와 메서드를 사용하여 Ajax 애플리케이션을 개발하는 측면과 한발 더 나아가 prototype js 소스 코드를 내 것으로 만드는 측면이다. 전자는 즉시 Ajax 애플리케이션을 구현할 수 있는 반면, 다소 밑바탕이 약한 행보가 될 수 있다. 후자는 더욱 기반이 튼튼하고 유려한 Ajax 애플리케이션을 개발할 수 있는 반면 시간이 좀 더 필요하다. 이 책을 어떤 관점으로 읽을 것인가에 대한 판단은 독자의 몫이다.저자 머릿말
Would you like to be one of the first to receive exclusive information about the latest collections, offers and events from this online shop? Then just subscribe to our free newsletter now.