2장 어휘
구조 3장 데이터 타입과 값 4장 변수 5장 표현식과 연산자 6장 문장 7장 객체와 배열 8장 함수 9장
클래스, 생성자, 프로토타입 10장 모듈과 네임스페이스 11장 정규 표현식을 사용한 패턴 매칭
2부 클라이언트 측
자바스크립트
13장 웹 브라우저와 자바스크립트 14장 브라우저 창 스크립팅 15장 문서 스크립팅 16장
CSS와 DHTML 17장 이벤트와 이벤트 처리 18장 폼과 폼 엘리먼트 19장 쿠키와 클라이언트 측 지속성 20장
HTTP 스크립팅 21장 자바스크립트와 XML 22장 클라이언트 측 그림 스크립팅 23장 자바 애플릿과 플래시 무비
스크립팅
시리즈 : 인사이트 Programming Insight_Javascript 시리즈3ㅣ원제 : PRO JAVASCRIPT TECHNIQUES
저 : 존레식 ㅣ 역 : 송인철, 황인석, 이동기, 이유원 ㅣ 출판사 : 인사이트 ㅣ 발행일 : 2008년 08월14일
목 차
more..
1부 현대적인 자바스크립트 개요 1장
현대적인 자바스크립트 프로그램 1.1 객체지향 자바스크립트 1.2 코드 테스트 1.3 배포하기 위한 패키징 1.4
무간섭(Unobtrusive) DOM 스크립팅 1.5 Ajax 1.6 브라우저 지원 1.7 요약
2부 전문적인
자바스크립트 개발 2장 객체지향 자바스크립트 2.1 언어 기능 2.3 객체지향 기본 2.4 요약
3장
재사용 가능한 코드 작성하기 3.1 객체지향 코드의 표준화 3.2 패키징 3.3 배포 3.4 요약
4장
디버깅과 테스트를 위한 도구 4.1 디버깅 4.2 테스트 4.3 요약
3부 무간섭
자바스크립트 5장 문서 객체 모델 5.1 문서 객체 모델에 대한 소개 5.2 DOM 탐색하기 5.3 HTML
DOM이 로딩되기를 기다리기 5.4 HTML 문서에서 엘리먼트 찾기 5.5 엘리먼트의 내용 얻기 5.6 엘리먼트 어트리뷰트
다루기 5.7 DOM 변경하기 5.8 요약
6장 이벤트 6.1 자바스크립트 이벤트에 대한 소개 6.2 공통적인
이벤트 기능들 6.3 이벤트 리스너 연결하기 6.4 이벤트의 종류 6.5 무간섭 DOM 스크립팅 6.6
요약
7장 자바스크립트와 CSS 7.1 스타일 정보에 접근하기 7.2 동적인 엘리먼트 7.3 애니메이션 7.4
브라우저 7.5 드래그 앤 드롭 7.6 라이브러리 7.7 요약
8장 폼 기능 개선하기 8.1 폼
검증 8.2 에러 메시지 출력 8.3 사용성 개선 8.4 요약
9장 이미지 갤러리 만들기 9.1 갤러리의
예 9.2 갤러리 만들기 9.3 요약
4부 Ajax 10장 Ajax 소개 10.1 Ajax
사용하기 10.2 응답 데이터 처리하기 10.3 완전한 Ajax 패키지 10.4 다른 데이터의 사용 예 10.5
요약
11장 Ajax로 블로그 강화하기 11.1 끝이 없는 블로그 11.2 라이브 블로깅 11.3
요약
12장 자동 완성 검색 12.1 자동 완성 검색의 예 12.2 페이지 만들기 12.3 키 입력
감시하기 12.4 결과 받아오기 12.5 결과 목록 탐색하기 12.6 최종 결과 12.7 요약
13장
Ajax 위키 13.1 위키? 13.2 데이터베이스와 대화하기 13.3 Ajax 요청 13.4 서버 측
코드 13.5 JSON 응답 처리하기 13.6 또 다른 사례 연구 : 자바스크립트 블로그 13.7 애플리케이션
코드 13.8 요약
5부 자바스크립트의 미래 14장 자바스크립트는 어디로 가고 있나 14.1
자바스크립트 1.6과 1.7 14.2 웹 애플리케이션 1.0 14.3 Comet 14.4 요약
6부
부록 부록 A. DOM 레퍼런스 A.1 참고 자료 A.2 용어 A.3 전역 변수 A.4 DOM
탐색 A.5 노드 정보 A.6 어트리뷰트 A.7 DOM 변경
부록 B 이벤트 레퍼런스
B.1 참고
자료 B.2 용어 B.3 이벤트 객체 B.4 페이지 이벤트 B.5 UI 이벤트 B.6 마우스 이벤트 B.7
키보드 이벤트 B.8 폼 이벤트
자바스크립트는 현재 점점 빨라지고 있고 또한 강력해지고 있다. 특히 각종 모바일 디바이스가 보급되면서 모바일 웹에 대한 관심이 커졌고, 이에 따라 자바스크립트 엔진의 성능 역시 발전하고 있다. 팜프리는 이미 모든 애플리케이션을 자바스크립트를 사용해 만들 수 있도록 했고, 아이폰 및 안드로이드에서도 여러 가지 프레임워크를 통해 네이티브 애플리케이션과 같은 UI 및 성능을 보이는 웹 애플리케이션 개발이 가능해졌다. 하지만 이는 모드 클라이언트 사이트에서의 자바스크립트, 쉽게 얘기해서 브라우저에서 동작하는 자바 스크립트를 말한다.
jQuery.js 등의 스크립트 라이브러리를 요즘 많이 사용하고 있는데, node.js 는 서버사이드에서 강력한 성능을 발휘할 수 있는 서버사이드 자바스크립트 라이브러리라고 할 수 있다. 우리는 node.js 를 통해서 자바스크립트의 미래를 짐작해 볼수 있을 것이다.
기존에는 서버사이드에서 스크립트를 돌려서 모든 연산을 수행하고 그 결과값으로 HTML을 만들어서 클라이언트에게 전송했다. 클라이언트는 HTML을 랜더링해서 사용자에게 보여주는 역활을 했고, 자바스크립트는 클라이언트측에서 자잘한 UI기능을 수행하며 감초역활을 했는데, 현재는 서버와 클라이언트의 역활이 상당히 많이 달라졌다.
과거 서버에서의 역활들이 클라이언트로 만히 이동을했다. jQuery등을 사용해서 UI플로우 및 여러 인터렉션과 각종 로직의 상당 부분을 클라이언트 사이드에서 처리한다. 그리고, 요즘 흔히 오픈API라고 불리는 API를 제공하여 서버의 데이터에 대한 접관과 처리를 클라이언트가 제오할수 있도록 했다.
node.js는 구글이 개발해서 현재 크롬 브라우저에 탑재되어 있는 자바스크립트 엔진인 V8을 기반으로 만들어진 서버사이트 스크립트 이다. 오히려 V8의 기능을 자바스크립트를 통해 사용 할수 있도록 만들어진 wrapper라고 말하는 것이 더 정확한 표현일 것이다. node.js 는 V8이 내부적으로 특정 기능을 수행하는 과정에서 유저가 등록한 callback function 을 호출해 주도록 한다.
창시자 Ryan Dahl이 발표한 design goal을 정리하면, - Function은 직접 I/O에 연결되지 않는다. - 저수준(low-level)을 지향하며, 스트리밍으로 모든 것을 처리하되, 데이터 버퍼일을 강제하지 않는다. - TCP, DNS, HTTP 등의 중요한 프로토콜에 대해 빌트인 된 형대로 지원된다. - 다양한 HTTP 기능들을 지원한다. - 클라이언트 사이트 자바스크립트 프로그래밍과 비슷하며, 동시에 과거의 유닉스 시스템 프로그래밍과도 친숙하다.
function delEventPresentRow(buttonObj) { var tableBody = document.getElementById("targetBody"); var index = buttonObj.parentElement.parentElement.rowIndex; tableBody.removeChild(tableBody.childNodes[index]); }
function fnInputRemove(rowId) { var row = document.getElementById(rowId); //alert(rowId); row.parentNode.removeChild(row); }