인사이드 자바스크립트 - 핵심 개념과 원리를 정확하게. jQuery, Node.js, 클로저의 개념까지
이 책이 제시하는 핵심 내용
자바스크립트의 핵심 원리, 언어적 특성을 정확하고 알기 쉽게 설명한다.
이 책의 특징과 장점
-. 자바스크립트 언어의 핵심 개념을 제대로 전달한다. 국내 개발환경, 입문/초급 개발자 수준에 맞춰 그림과 rule을 통해 이해하기 쉽게 설명한다.
-. jQuery 1.0 소스 분석을 통해서 실제 프로젝트에서 사용된 각종 자바스크립트의 핵심 개념을 설명한다. 이는 실용성을 높여준다.
어떤 독자를 위한 책인가?
-. 자바스크립트/ Node.js 입문자, 초급자
-. 자바스크립트의 경험을 가지고 있으나, 핵심 개념에 대한 이해도가 적은 개발자
-. 자바스크립트 주요 라이브러리(jQuery등)의 내부를 분석하고, 라이브러리나 프레임워크를 개발하고 싶어하는 개발자
-. 『더글라스 크락포드의 자바스크립트 핵심 가이드』(한빛미디어, 2008)를 어렵게 느끼는 개발자
도서 특징(책 표지 글)
정말로 중요한 것은 자바스크립트의 핵심 원리를 정확하게 이해하는 것이다
모든 학문 분야가 마찬가지겠지만, 특히 IT 분야에서 새로운 지식을 습득할 때 가장 중요한 것은 바로 그 분야의 핵심 원리를 정확히 이해하는 것이다. 이러한 원리를 정확히 이해하지 않은 지식으로 프로젝트를 진행했다가는 초기에는 빠른 성과를 낼 수 있을지 모르지만, 결국에는 대충 넘어갔던 부분이 발목을 잡을 것이며 이는 프로젝트 지연으로 이어질 수 있다.
자바스크립트가 굉장히 쉬운 언어이며, 무조건 코드를 가져다 쓰면 쉽게 개발할 수 있는 것으로 생각하는 개발자가 의외로 많다. 물론 프로젝트 초기에는 이런 식으로 결과물을 만들어 낼 수 있다. 그러나 프로젝트 범위가 점점 늘어나면 자바스크립트 특성에 대해서 제대로 이해하지 않고 넘어갔던 사소한 부분들이 문제를 발생시키고 급기야 자바스크립트 언어를 통해 서버 기반 프로그래밍을 할 수 있게끔 해주는 Node.js 프로그래밍까지 진행한다면 그 어려움은 이루 말할 수 없을 만큼 커진다. Node.js 개발 경험이 있는 개발자들은 아마 이해할 수 있을 것이다. 자바스크립트 언어의 특성을 제대로 이해하는 것이 얼마나 중요한 것인지를.
이 책의 목적은 자바스크립트의 핵심 원리, 언어적 특성을 정확하고 알기 쉽게 설명하는 것이다. 물론 이 책이 자바스크립트의 모든 것을 다룬 바이블은 아니다. 그러나 자바스크립트를 제대로 공부하고자 하는 개발자에게 여러 자바스크립트 응용 기술들을 소화할 수 있는 기초 체력을 기를 수 있게 도와주는 좋은 가이드가 될 것이다.
삼성전자를 거쳐 현재는 SKT 네트워크 기술원 Device Tech.랩에서 디바이스 기반 서비스 플랫폼 개발 업무를 진행 중이다. 특히 안드로이드와 같은 모바일 소프트웨어 플랫폼의 설계 및 동작 원리에 관심이 많으며, 최근 들어서는 JavaScript나 Node.js와 같은 웹 기술의 매력을 알아 가고 있는 중이다. 틈틈이 쌓은 개발 관련 지식을 정리하고, 이를 책으로 엮어서 여러 개발자들과 공유하는 것에 소소한 재미를 느끼는 평범한 개발자이다.
저서로는 『인사이드 안드로이드』(위키북스, 2009)가 있다
CHAPTER 1 자바스크립트 기본 개요
__1.1 소개
__1.2 자바스크립트 활용 범위
____1.2.1 웹 개발
____1.2.2 서버 개발
____1.2.3 애플리케이션 개발
__1.3 자바스크립트의 핵심 개념
____1.3.1 객체
____1.3.2 함수
____1.3.3 프로토타입
____1.3.4 실행 컨텍스트와 클로저
__1.4 자바스크립트와 객체지향 프로그래밍
__1.5 자바스크립트와 함수형 프로그래밍
__1.6 자바스크립트의 단점
CHAPTER 2 자바스크립트 개발 환경
__2.1 웹스톰 설치 및 실행
__2.2 프로젝트 생성 및 프로그래밍
__2.3 테스트 및 디버깅
____2.3.1 테스트
____2.3.2 디버깅
CHAPTER 3 자바스크립트 데이터 타입과 연산자
__3.1 자바스크립트 기본 타입
____3.1.1 숫자
____3.1.2 문자열
____3.1.3 불린값
____3.1.4 null과 undefined
__3.2 자바스크립트 참조 타입(객체 타입
____3.2.1 객체 생성
____3.2.2 객체 프로퍼티 읽기/쓰기/갱신
____3.2.3 for in 문과 객체 프로퍼티 출력
____3.2.4 객체 프로퍼티 삭제
__3.3 참조 타입의 특성
____3.3.1 객체 비교
____3.3.2 참조에 의한 함수 호출 방식
__3.4 프로토타입
__3.5 배열
____3.5.1 배열 리터럴
____3.5.2 배열의 요소 생성
____3.5.3 배열의 length 프로퍼티
____3.5.4 배열과 객체
____3.5.5 배열의 프로퍼티 동적 생성
____3.5.6 배열의 프로퍼티 열거
____3.5.7 배열 요소 삭제
____3.5.8 Array() 생성자 함수
____3.5.9 유사 배열 객체
__3.6 기본 타입과 표준 메서드
__3.7 연산자
____3.7.1 + 연산자
____3.7.2 typeof 연산자
__3.7.3 == (동등) 연산자와 === (일치) 연산자
__3.7.4 !! 연산자
CHAPTER 4 함수와 프로토타입 체이닝
__4.1 함수 정의
____4.1.1 함수 리터럴
____4.1.2 함수 선언문 방식으로 함수 생성하기
____4.1.3 함수 표현식 방식으로 함수 생성하기
____4.1.4 Function() 생성자 함수를 통한 함수 생성하기
____4.1.5 함수 호이스팅
__4.2 함수 객체: 함수도 객체다
____4.2.1 자바스크립트에서는 함수도 객체다
____4.2.2 자바스크립트에서 함수는 값으로 취급된다
____4.2.3 함수 객체의 기본 프로퍼티
__4.3 함수의 다양한 형태
____4.3.1 콜백 함수
____4.3.2 즉시 실행 함수
____4.3.3 내부 함수
____4.3.4 함수를 리턴하는 함수
__4.4 함수 호출과 this
____4.4.1 arguments 객체
____4.4.2 호출 패턴과 this 바인딩
____4.4.3 함수 리턴
__4.5 프로토타입 체이닝
____4.5.1 프로토타입의 두 가지 의미
____4.5.2 객체 리터럴 방식으로 생성된 객체의 프로토타입 체이닝
____4.5.3 생성자 함수로 생성된 객체의 프로토타입 체이닝
____4.5.4 프로토타입 체이닝의 종점
____4.5.5 기본 데이터 타입 확장
____4.5.6 프로토타입도 자바스크립트 객체다
____4.5.7 프로토타입 메서드와 this 바인딩
____4.5.8 디폴트 프로토타입은 다른 객체로 변경이 가능하다
____4.5.9 객체의 프로퍼티 읽기나 메서드를 실행할 때만 프로토타입 체이닝이 동작한다
CHAPTER 5 실행 컨텍스트와 클로저
__5.1 실행 컨텍스트 개념
__5.2 실행 컨텍스트 생성 과정
____5.2.1 활성 객체 생성
____5.2.2 arguments 객체 생성
____5.2.3 스코프 정보 생성
____5.2.4 변수 생성
____5.2.5 this 바인딩
____5.2.6 코드 실행
__5.3 스코프 체인
____5.3.1 전역 실행 컨텍스트의 스코프 체인
____5.3.2 함수를 호출한 경우 생성되는 실행 컨텍스트의 스코프 체인
__5.4 클로저
____5.4.1 클로저의 개념
____5.4.2 클로저의 활용
____5.4.3 클로저를 활용할 때 주의사항
CHAPTER 6 객체지향 프로그래밍
__6.1 클래스, 생성자, 메서드
__6.2 상속
____6.2.1 프로토타입을 이용한 상속
____6.2.2 클래스 기반의 상속
__6.3 캡슐화
__6.4 객체지향 프로그래밍 응용 예제
____6.4.1 클래스의 기능을 가진 subClass 함수
____6.4.2 subClass 함수와 모듈 패턴을 이용한 객체지향 프로그래밍
CHAPTER 7 함수형 프로그래밍
__7.1 함수형 프로그래밍의 개념
__7.2 자바스크립트에서의 함수형 프로그래밍
____7.2.1 배열의 각 원소 총합 구하기
____7.2.2 팩토리얼
____7.2.3 피보나치 수열
__7.3 자바스크립트에서의 함수형 프로그래밍을 활용한 주요 함수
____7.3.1 함수 적용
____7.3.2 커링
____7.3.3 bind
____7.3.4 래퍼
____7.3.5 반복 함수
CHAPTER 8 jQuery 소스 코드 분석
__8.1 jQuery 1.0 소스 코드 구조
____8.1.1 jQuery 함수 객체
____8.1.2 변수 $를 jQuery() 함수로 매핑
____8.1.3 jQuery.prototype 객체 변경
____8.1.4 객체 확장 - extend() 메서드
____8.1.5 jQuery 소스 코드의 기본 구성 요소
__8.2 jQuery의 id 셀렉터 동작 분석
____8.2.1 $(\"#myDiv\") 살펴보기
____8.2.2 $(\"#myDiv\").text() 살펴보기
__8.3 jQuery 이벤트 핸들러 분석
____8.3.1 jQuery 이벤트 처리 예제
____8.3.2 .click() 메서드 정의
____8.3.3 $(\'#clickDiv\').click() 호출 코드 분석
____8.3.4 $(\'#clickDiv\').bind() 메서드 분석
____8.3.5 Click 이벤트 핸들러 실행 과정
____8.3.6 jQuery 이벤트 핸들러 특징