장바구니 담기 close

장바구니에 상품을 담았습니다.

인사이드 자바스크립트

인사이드 자바스크립트

  • 송형주
  • |
  • 한빛미디어
  • |
  • 2014-01-02 출간
  • |
  • 284페이지
  • |
  • 183 X 237 X 20 mm /564g
  • |
  • ISBN 9788968480652
★★★★★ 평점(10/10) | 리뷰(1)
판매가

18,000원

즉시할인가

16,200

배송비

2,300원

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
16,200

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

이 책이 제시하는 핵심 내용
자바스크립트의 핵심 원리, 언어적 특성을 정확하고 알기 쉽게 설명한다.

이 책의 특징과 장점
-. 자바스크립트 언어의 핵심 개념을 제대로 전달한다. 국내 개발환경, 입문/초급 개발자 수준에 맞춰 그림과 rule을 통해 이해하기 쉽게 설명한다.
-. jQuery 1.0 소스 분석을 통해서 실제 프로젝트에서 사용된 각종 자바스크립트의 핵심 개념을 설명한다. 이는 실용성을 높여준다.

어떤 독자를 위한 책인가?
-. 자바스크립트/ Node.js 입문자, 초급자
-. 자바스크립트의 경험을 가지고 있으나, 핵심 개념에 대한 이해도가 적은 개발자
-. 자바스크립트 주요 라이브러리(jQuery등)의 내부를 분석하고, 라이브러리나 프레임워크를 개발하고 싶어하는 개발자
-. 『더글라스 크락포드의 자바스크립트 핵심 가이드』(한빛미디어, 2008)를 어렵게 느끼는 개발자

도서 특징(책 표지 글)

정말로 중요한 것은 자바스크립트의 핵심 원리를 정확하게 이해하는 것이다

모든 학문 분야가 마찬가지겠지만, 특히 IT 분야에서 새로운 지식을 습득할 때 가장 중요한 것은 바로 그 분야의 핵심 원리를 정확히 이해하는 것이다. 이러한 원리를 정확히 이해하지 않은 지식으로 프로젝트를 진행했다가는 초기에는 빠른 성과를 낼 수 있을지 모르지만, 결국에는 대충 넘어갔던 부분이 발목을 잡을 것이며 이는 프로젝트 지연으로 이어질 수 있다.
자바스크립트가 굉장히 쉬운 언어이며, 무조건 코드를 가져다 쓰면 쉽게 개발할 수 있는 것으로 생각하는 개발자가 의외로 많다. 물론 프로젝트 초기에는 이런 식으로 결과물을 만들어 낼 수 있다. 그러나 프로젝트 범위가 점점 늘어나면 자바스크립트 특성에 대해서 제대로 이해하지 않고 넘어갔던 사소한 부분들이 문제를 발생시키고 급기야 자바스크립트 언어를 통해 서버 기반 프로그래밍을 할 수 있게끔 해주는 Node.js 프로그래밍까지 진행한다면 그 어려움은 이루 말할 수 없을 만큼 커진다. Node.js 개발 경험이 있는 개발자들은 아마 이해할 수 있을 것이다. 자바스크립트 언어의 특성을 제대로 이해하는 것이 얼마나 중요한 것인지를.
이 책의 목적은 자바스크립트의 핵심 원리, 언어적 특성을 정확하고 알기 쉽게 설명하는 것이다. 물론 이 책이 자바스크립트의 모든 것을 다룬 바이블은 아니다. 그러나 자바스크립트를 제대로 공부하고자 하는 개발자에게 여러 자바스크립트 응용 기술들을 소화할 수 있는 기초 체력을 기를 수 있게 도와주는 좋은 가이드가 될 것이다.

저자 서문
모든 학문 분야가 마찬가지겠지만, 특히 IT 분야에서 새로운 지식을 습득할 때 가장 중요한 것은 바로 그 분야의 핵심 원리를 정확히 이해하는 것이다. 이러한 원리를 정확히 이해하지 않은 개발 관련 지식으로 프로젝트를 진행했다가는 초기에는 빠른 성과를 낼 수 있을지 모르지만, 결국에는 안다고 대충 넘어갔던 부분이 개발자의 발목을 잡을 것이며 이는 프로젝트 지연으로 이어질 수 있다.
필자가 처음에 자바스크립트 관련 공부를 처음 시작했을 때도 바로 이와 같은 실수를 범했었다. 자바스크립트를 배우기 전까지만 해도 필자의 주요 언어는 C, Java였다. 자바스크립트를 제대로 배우지 않은 여느 개발자처럼 필자는 자바스크립트가 굉장히 쉬운 언어이며, 무조건 코드를 가져다 쓰면 쉽게 개발할 수 있는 것으로 생각했었다. 처음에는 이런 식으로 결과물을 만들어 낼 수 있었지만, 점점 프로젝트 범위가 늘어나면서 자바스크립트 특성에 대해서 제대로 이해하지 않고 넘어갔던 사소한 부분들이 문제를 일으켰으며, 이 때문에 많은 고생을 했던 기억이 아직도 생생하다.
급기야 자바스크립트 언어를 통해 서버 기반 프로그래밍을 할 수 있게끔 해주는 Node.js 프로그래밍을 진행했을 때 필자는 결국 두 손을 들고 말았다. Node.js 개발 경험이 있는 개발자들은 아마 이해할 수 있을 것이다. 자바스크립트 언어의 특성을 제대로 이해하는 것이 얼마나 중요한 것인지를.
아무튼 그 결과 필자는 다시 자바스크립트 기본 문법부터 제대로 이해하며 공부를 시작했다. 역시나 필자가 안다고 넘어갔던 많은 자바스크립트의 문법들이 자세히 살펴보니 실제로는 정확히 아는 것이 아니었던 것이다. 학습법에 대해서 얘기할 때 가장 중요한 것이 바로 자신이 무엇을 모르는지를 정확히 파악해야 한다는 것이다. 그래야 무엇을 집중해서 공부해야 하는지를 정확히 파악할 수 있기 때문이다. 이후 필자는 자바스크립트 책을 정독하며 자바스크립트의 언어적 특성을 이해하기 위해 노력했다.
이 책은 필자의 이러한 노력의 산물이다. 요즘도 마찬가지이지만, 집필 당시에도 많은 자바스크립트 관련 서적이 출간되고 있었고 다양한 예제 및 설명을 다루고 있었지만, 자바스크립트의 문법과 언어적인 특성을 국내 개발자들의 입맛에 맞게 다룬 서적을 찾기 힘들었다. 그래서 필자는 이 책의 공저자인 고현준님과 함께 자바스크립트 입문자나 중급 개발자를 위해 자바스크립트 핵심을 가장 잘 설명한 국내 서적을 집필을 하기로 마음 먹게 됐고, 그 결과물이 바로 이 책이 된 것이다.
물론 이 책은 자바스크립트의 모든 것을 다룬 바이블은 아니다. 그러나 자바스크립트를 제대로 공부하고자 하는 독자들에게 여러 자바스크립트 응용 기술들을 소화할 수 있는 기초 체력을 기를 수 있게 도와주는 좋은 가이드가 될 것이라 믿어 의심치 않는다.
끝으로 이 책이 나오게 끔 항상 응원과 격려를 아끼지 않았던 나의 사랑하는 아내 현정이와 사랑스런 아들 승민에게 고마움을 전한다.
저자_ 송형주

필자가 처음으로 웹 개발이라는 것을 해 본 것은 십여 년 전이다. 그 때 필자는 대학교 초년생의 컴퓨터공학도였고, 당시 인기 있던 perl을 제치고 서버사이드 웹프로그래밍 언어로서 PHP와 ASP가 부상하고 있을 때였다. 당시에도 필자는 자바스크립트를 사용했던 기억이 있다. 로그인 확인 혹은 에러를 알리기 위한 팝업을 띄우기 위해 자바스크립트를 사용했던 것이다. window.open이라는 내장함수를 이용하였던 것으로 기억한다. 그때만 해도 자바스크립트는 이런 단순 기능을 지원하기 위해 존재하는 간단한 스크립트라고 생각했었다. 당연히 그때는, 십 년이 흐른 후에 필자가 다시 이 자바스크립트를 제대로 공부하기 시작하리라곤 상상도 못했다.
약 10년이 지나고 필자는 회사에서 우연히 파이어폭스 관련 프로젝트에 들어가서 업무를 보게 되었다. 당시에 파이어폭스 익스텐션을 만들기 위해 자바스크립트 기반의 XUL이라는 것을 알아야 했다. 그때도 이정도 스크립트 언어는 금방 익힐 수 있을 것이라고 생각했던 것 같다. 하지만 자바스크립트는 생각보다 단순한 것이 아니었다. 이 후에 jQuery라는 라이브러리를 알게 되고, 이 jQuery 소스를 열어보고 나서야, 자바스크립트를 제대로 익히기 위해서는 많은 시간이 필요하다는 것을 깨달았다.

function object(o) {
function F() {}
F.prototype = o;
return new F();
}

자바스크립트를 본격적으로 공부해 보고자 마음먹고, 인터넷에서 관련된 자료를 찾아보던 시절에 발견한 더글라스 크락포드의 코드이다. 글에 적혀 있는 설명으로는 객체를 상속받는 새로운 객체를 반환하는 함수라는데, 그때만 해도 필자는 이 세 줄짜리 코드가 도대체 무엇을 의미하는지 알 수가 없었고, 상당한 좌절을 겪어야 했다(참고로 이 코드는 책에 당연히(?) 설명이 되어 있다). 여러 가지 자료들을 인터넷에서 모아서 이 책을 같이 쓴 송형주 저자와 이 생경한 언어를 공부하기 시작했다. 공부를 하면서 하나씩 하나씩 의문이 풀릴 때 느꼈던 희열이 지금까지 기억에 남아 있는 걸 보면 자바스크립트가 어렵긴 어려웠었나 보다. 이 시기에 도움이 되었던 자료들은 모두 영어로 되어 있는 외국인이 쓴 자료들이 대부분이었고, 참고할 만한 서적 역시 많지 않았다. 이마저도 모두 외국의 유명저자가 쓴 번역서들이었다. 그때 이해하기 쉽게 잘 쓰여진 한국어 서적이 한 권만 있었더라도 우리는 훨씬 수월하게 자바스크립트를 익힐 수 있었을 것이다.
이에 자바스크립트의 핵심개념을 간과하지 않으면서 보다 이해하기 쉬운 책을 써 보자는 데 의견을 모았고, 여러 가지 어려움 끝에 이제서야 그간의 노력들이 빛을 보기 직전의 순간에 와 있다. 지금까지 함께 고생한 필자의 친구이자 형님인 송형주 저자와 한빛미디어 송성근 차장님께 감사의 말씀을 드린다. 그리고 결혼 직전에 원고 작업 때문에 큰 신경을 쓰지 못해 못내 미안했었는데, 진심으로 필자를 밀어준 아내에게도 고맙다는 말을 전하고 싶다.
부디 이 책을 읽은 독자들이 자바스크립트 언어의 이해에 작게나마 도움이 되길 바라며, 서문을 마친다.
저자_ 고현준

베타리더의 말

“시중에 나와있는 많은 자바스크립트 관련 서적과 비교하여 가장 기본적인 원리와 내부 구조에 대해 상세하게 설명되어 있다. jQuery나 Node.js처럼 대중적으로 많이 사용되는 자바스크립트 기술들을 이해하고 활용하는 데 필수로 알아야 되는 내용들이 담겨있으며, 특히 중고급 개발자들이 꼭 알아야 할 함수형 언어(Functional Language)와 클로저 개념에 대해 상세히 기술되어 있다.”
- 정해권(삼성전자 선임연구원)

“C++, Java, C# 같은 클래스 기반의 객체지향 언어에 익숙한 개발자가 자바스크립트를 처음 접하면 굉장히 많은 불만을 토로합니다. 이는 자바스크립트를 클래스 기반의 객체지향 언어로 바라보기 때문입니다. 자바스크립트라는 프로토타입 기반의 객체지향 언어가 클래스 기반의 객체지향 언어와 무엇이 다른지를 쉽게 알 수 있게 해주는 책입니다.”
- 윤인성(한빛미디어에서 『모던 웹 디자인을 위한 HTML5+CSS3 입문』 등 다수의 책을 집필한 저자)

목차

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 이벤트 핸들러 특징

저자소개

저자 송형주는 삼성전자를 거쳐 현재는 SKT 네트워크 기술원 Device Tech.랩에서 디바이스 기반 서비스 플랫폼 개발 업무를 진행 중이다. 특히 안드로이드와 같은 모바일 소프트웨어 플랫폼의 설계 및 동작 원리에 관심이 많으며, 최근 들어서는 JavaScript나 Node.js와 같은 웹 기술의 매력을 알아 가고 있는 중이다. 틈틈이 쌓은 개발 관련 지식을 정리하고, 이를 책으로 엮어서 여러 개발자들과 공유하는 것에 소소한 재미를 느끼는 평범한 개발자이다. 저서로는 『인사이드 안드로이드』(위키북스, 2009)가 있다

도서소개

이 책의 목적은 자바스크립트의 핵심 원리, 언어적 특성을 정확하고 알기 쉽게 설명하는 것이다. 물론 이 책이 자바스크립트의 모든 것을 다룬 바이블은 아니다. 그러나 자바스크립트를 제대로 공부하고자 하는 개발자에게 여러 자바스크립트 응용 기술들을 소화할 수 있는 기초 체력을 기를 수 있게 도와주는 좋은 가이드가 될 것이다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.