Ajax prototype.js 프로토타입 완전분석

책소개

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 생성자 오버라이딩

3부: Form, Form.Element 오브젝트

6 Form.Element 오브젝트
6.1 메서드, 함수 목록
6.2 Form.Element 오브젝트
6.2.1 focus 메서드
6.2.2 select 메서드
6.3 Form.Element.Methods 오브젝트
6.3.1 present 메서드
6.3.2 clear 메서드
6.3.3 activate 메서드
6.3.4 disable 메서드
6.3.5 enable 메서드
6.3.6 getValue 메서드
6.3.7 serialize 메서드
6.4 $F() 함수
6.5 Form.Element.Serializers 오브젝트
6.5.1 input 메서드
6.5.2 inputSelector 메서드
6.5.3 textarea 메서드
6.5.4 select 메서드
6.5.5 selectOne 메서드
6.5.6 optionValue 메서드
6.5.7 selectMany 메서드
7 Form 오브젝트
7.1 메서드 목록
7.2 Form.Methods 오브젝트
7.2.1 이터레이터
7.2.2 getElements 메서드
7.2.3 disable 메서드
7.2.4 enable 메서드
7.2.5 findFirstElement 메서드
7.2.6 focusFirstElement 메서드
7.2.7 getInputs 메서드
7.2.8 serialize 메서드
7.3 Form 오브젝트
7.3.1 reset 메서드
7.3.2 serializeElements 메서드

4부: Number, Object, String 클래스 확장

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 애플리케이션을 개발할 수 있는 반면 시간이 좀 더 필요하다. 이 책을 어떤 관점으로 읽을 것인가에 대한 판단은 독자의 몫이다.저자 머릿말




다운로드
의견 0 신규등록      목록