장바구니 담기 close

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

객체지향 자바스크립트

객체지향 자바스크립트

  • 베드 안타니
  • |
  • 에이콘출판
  • |
  • 2017-10-24 출간
  • |
  • 688페이지
  • |
  • 188 X 235 X 33 mm
  • |
  • ISBN 9791161750637
판매가

40,000원

즉시할인가

36,000

카드할인

0원(즉시할인 0%)

적립금

2,000원 적립(5%적립)

배송비

무료배송

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

추가혜택

네이버페이 무조건 1%적립+ 추가 1%적립

수량
+ -
총주문금액
36,000

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

출판사서평

★ 이 책의 대상 독자 ★
자바스크립트를 배우기 시작한 사람이나 자바스크립트를 알고 있지만 객체지향에 익숙하지 않은 사람들을 대상으로 한다. ES5 기능에 이미 익숙한 사용자라면 유용한 ES6 입문서가 될 것이다.

★ 이 책의 구성 ★
1장, ‘객체지향 자바스크립트’에서는 자바스크립트의 역사, 현재와 미래에 대해 간략하게 설 명한 다음, 전반적인 객체지향 프로그래밍(OOP)의 기본을 알아본다. 그런 다음 책의 예제를 기본으로 사용해 본격적으로 언어를 탐구하기 위한 연습 환경(파이어버그) 설정 방법을 배운다.
2장, ‘원시 데이터 형식, 배열, 루프 및 조건’에서는 변수, 데이터 유형, 원시 데이터 유형, 배 열, 루프와 조건 같은 언어의 기본에 대해 설명한다.
3장, ‘함수’에서는 자바스크립트에서 사용하는 함수를 설명하고, 함수의 모든 것을 마스터한다. 또한 변수의 범위와 자바스크립트의 내장 함수에 대해서도 배운다. 흥미롭지만 종종 잘못 이해되는 언어의 특징인 클로저도 이 장의 마지막 부분에서 다룬다.
4장, ‘객체’에서는 객체에 대해 알아본다. 속성과 메소드로 작업하는 방법, 그리고 객체를 생성하는 다양한 방법을 설명한다. 이 장에서는 Array, Function, Boolean, Number, String 같은 내장 객체에 대해서도 설명한다.
5장, ‘ES6 이터레이터와 제너레이터’에서는 ES6에서 가장 기대되는 기능인 이터레이터와 제 너레이터를 소개한다. 이 지식을 바탕으로 향상된 컬렉션 구조를 자세히 살펴볼 것이다.
6장, ‘프로토타입’에서는 자바스크립트의 프로토타입에 대한 중요한 개념을 다룬다. 프로토 타입 체인이 동작하는 방식과 hasOwnProperty( ), 프로토타입의 이해에 대해서도 설명한다.
7장, ‘상속’에서는 상속이 어떻게 동작하는지 설명한다. 이 장에서는 다른 고전 언어에서처럼 하위 클래스를 상속하는 방법에 대해서도 알아본다.
8장, ‘클래스와 모듈’에서는 ES6에서 고전적인 객체지향 프로그래밍 구조를 쉽게 작성할 수 있게 해주는 중요한 구문적 기능을 소개한다. ES6 클래스 구문은 ES5의 다소 복잡한 구문을 래핑한다. 또한 ES6는 모듈에 대한 완전한 지원을 제공한다. 이 장에서는 ES6에 도입된 클래스와 모듈 구조를 자세히 설명한다.
9장, ‘프라미스와 프록시’에서는 자바스크립트가 비동기 프로그래밍을 강력하게 지원하는 언어임을 설명한다. ES5까지는 비동기 프로그램을 작성하려면 콜백에 의존해야 했기 때문에 때로는 콜백 지옥이 생겼다. ES6 프라미스는 자바스크립트 언어에서 기다려왔던 특징 중 하나다. 프라미스는 ES6에서 비동기 프로그램을 작성하는 훨씬 더 깔끔한 방법을 제공한다. 프록시는 기본 연산 중 일부에 사용자정의 동작을 정의하는 데 사용된다. 이 장에서는 ES6에서의 프라미스와 프록시의 실제 사용을 살펴본다.
10장, ‘브라우저 환경’에서는 브라우저에 전념한다. 이 장에서는 BOM(브라우저 객체 모델)과 DOM(W3C의 문서 객체 모델), 브라우저 이벤트, AJAX에 대해서도 다룬다.
11장, ‘코딩과 디자인 패턴’에서는 소프트웨어 디자인 패턴에서 가장 영향력 있는 GoF 책에서 자바스크립트로 전환된 몇 가지 언어독립적인 디자인 패턴과 함께 고유한 자바스크립트 코딩 패턴에 대해 설명한다. 이 장에서는 JSON에 대해서도 설명한다.
12장, ‘테스트와 디버깅’에서는 현재 자바스크립트에 테스트 주도 개발과 행동 주도 개발을 지원하는 도구의 사용 방법을 설명한다. 자스민은 현재 가장 많이 사용되는 도구 중 하나다. 이 장에서는 자스민을 프레임워크로 사용하는 TDD 및 BDD에 대해 알아본다.
13장, ‘리액티브 프로그래밍과 리액트’에서는 ES6의 등장으로 구체화되고 있는 여러 가지 혁신적인 아이디어에 대해 설명한다. 리액티브 프로그래밍은 데이터 흐름을 사용해 상태 변경을 관리하는 방법과 매우 다른 접근 방식을 취한다. 리액트는 MVC의 뷰에 중점을 둔 프레임워크다. 이 장에서는 이 두 가지 아이디어를 소개한다.
부록A, ‘예약어’에서는 자바스크립트의 예약어 목록을 정리했다.
부록B, ‘내장 함수’에서는 내장 자바스크립트 함수를 샘플과 함께 제공한다.
부록C, ‘내장 객체’는 자바스크립트에서 모든 내장 객체의 모든 메소드와 속성을 사용하는 방법에 대한 세부 정보와 예제를 제공하는 레퍼런스다.
부록D, ‘정규 표현식’은 정규 표현식 패턴의 레퍼런스다.
부록E, ‘연습문제 해답’에서는 각 장의 끝에서 제시한 연습문제의 해답을 제공한다.

목차

1장. 객체지향 자바스크립트
__간단한 역사
____브라우저 전쟁과 르네상스
____현재
____미래
__ECMAScript 5
____ES6의 엄격 모드
__ECMAScript 6
____브라우저의 ES6 지원
____바벨
__객체지향 프로그래밍
____객체
____클래스
____캡슐화
____집합
____상속
____다형성
__OOP 요약
__연습 환경 설정
____웹킷의 웹 인스펙터
____맥의 JavaScriptCore
____기타 콘솔
__요약

2장. 원시 데이터 형식, 배열, 루프 및 조건
__변수
____변수는 대소문자를 구분한다
__연산자
__원시 데이터 유형
____값 형식 찾기 - typeof 연산자
____숫자
____문자열
____부울
____Undefined와 null
____심볼
__원시 데이터 유형 요약
__배열
____배열 요소 추가 / 업데이트
____요소 삭제
____배열의 배열
__조건과 루프
____코드 블록
____루프
__주석
__연습문제
__요약

3장. 함수
__함수란 무엇인가?
____함수 호출
____매개변수
__디폴트 매개변수
__나머지 매개변수
__스프레드 연산자
____사전 정의된 함수
__변수 범위
____변수 호이스팅
__블록 범위
__함수는 데이터다
____익명 함수
____콜백 함수
____즉시실행 함수
____내부(비공개) 함수
____함수를 반환하는 함수
____사용자정의 함수
__클로저
____범위 체인
____클로저로 체인 끊기
____루프의 클로저
____게터와 세터
____이터레이터
__IIFE 대 블록
__화살표 함수
__연습문제
__요약

4장. 객체
__배열에서 객체로
____요소, 속성, 메소드 및 멤버
____해시와 연관 배열
____객체의 속성 접근
____객체의 메소드 호출
____속성/메소드 변경
____this 값 사용
____생성자 함수
____전역 객체
____생성자 속성
____instanceof 연산자
____객체를 반환하는 함수
____객체 전달
____객체 비교
____웹킷 콘솔의 객체
____ES6 객체 리터럴
__객체 속성과 어트리뷰트
__ES6 객체 메소드
__디스트럭처링
__내장 객체
____객체
____배열
__ES6 배열 메소드
____Array.from
____Array.of를 사용하여 배열 만들기
____Array.prototype 메소드
____함수
__화살표 함수에서의 어휘적 this
____객체 유형 추정
____부울
____숫자
____문자열
____Math
____Date
____RegExp
__연습문제
__요약

5장. ES6 이터레이터와 제너레이터
__For...of 루프
__이터레이터와 이터러블
____이터레이터
____이터러블
__제너레이터
____제너레이터 반복
__컬렉션
____맵
____세트
____WeakMap과 WeakSet
__요약

6장. 프로토타입
__프로토타입 속성
____프로토타입을 사용하여 메소드와 속성 추가하기
__프로토타입의 메소드와 속성 사용하기
____자체 속성 대 프로토타입 속성
____프로토타입 속성을 자체 속성으로 덮어쓰기
____isPrototypeOf( ) 메소드 사용하기
____secret _ _proto_ _ link
__내장 객체 보강
____내장 객체 보강 - 토론
____프로토타입 따라잡기
__연습문제
__요약

7장. 상속
__프로토타입 체인
____프로트타입 체인 예제
____공유 속성을 프로토타입으로 이동
__프로토타입만 상속
____임시 생성자 - new F( )
__Uber - 자식 객체에서 부모 접근하기
__상속 부분을 함수로 분리하기
__속성 복사
__참조로 복사할 때 문제
__객체에서 상속받은 객체
__깊은 복사
__object( ) 메소드 사용하기
__프로토타입 상속과 속성 복사의 혼합 사용
__다중 상속
____믹스인
__기생 상속
__생성자 빌리기
____생성자 빌리기와 프로토타입 복사하기
__사례 연구 - 도형 그리기
____분석
____구현
____테스트
__연습문제
__요약

8장. 클래스와 모듈
__클래스 정의
____생성자
____프로토타입 메소드
____정적 메소드
____정적 속성
____제너레이터 메소드
__서브클래싱
____믹스인
__모듈
____목록 내보내기
__요약

9장. 프라미스와 프록시
____비동기 프로그래밍 모델
__자바스크립트 호출 스택
____메시지 큐
____이벤트 루프
____타이머
__프라미스
____프라미스 생성
____메타 프로그래밍과 프록시
____프록시
____함수 가로채기
__요약

10장. 브라우저 환경
__HTML 페이지에 자바스크립트 포함하기
__BOM과 DOM 개요
__BOM
____window 객체 리뷰
____window.navigator 속성 사용하기
____콘솔은 치트 시트다
____window.location 속성 사용하기
____window.history 속성 사용하기
____window.frames 속성 사용하기
____window.screen 속성 사용하기
____window.open( )/close( ) 메소드
____window.moveTo( )와 window.resizeTo( ) 메소드
____window.alert( )와 window.prompt( ), window.confirm( ) 메소드
____window.setTimeout( )과 window.setInterval( ) 메소드 사용하기
____window.document 속성
__DOM
____코어 DOM과 HTML DOM
____DOM 노드 접근
____document 노드
____DOM 노드 수정
____새 노드 생성하기
____insertBefore( ) 메소드 사용하기
____노드 제거
____HTML - 전용 DOM 객체
__이벤트
____인라인 HTML 속성
____엘리먼트 속성
____DOM 이벤트 리스너
____캡처와 버블링
____전파 중단
____디폴트 동작 방지
____크로스 브라우저 이벤트 리스너
____이벤트 유형
__XMLHttpRequest
____요청 보내기
____응답 처리
____버전 7 이전의 IE에서 XMLHttpRequest 객체 만들기
____비동기의 A
____XML의 X
____예제
__연습문제
__요약

11장. 코딩과 디자인 패턴
__코딩 패턴
____동작 분리
____네임스페이스
____네임스페이스 생성자
____초기화 시간 분기
____지연 정의
____구성 객체
____비공개 속성과 메소드
____권한 있는 메소드
____공개 메소드로서의 비공개 함수
____즉시 실행 함수
____모듈
____체이닝
____JSON
____고차원 함수
__디자인 패턴
____단일체 패턴
____단일체2 패턴
____팩토리 패턴
____장식자 패턴
____감시자 패턴
__요약

12장. 테스트와 디버깅
__단위 테스트
____테스트 주도 개발
____행동 주도 개발
____모카와 차이, 시논
__자바스크립트 디버깅
____구문 오류
____런타임 예외
__요약

13장. 리액티브 프로그래밍과 리액트
__리액티브 프로그래밍
____왜 리액티브 프로그래밍을 고려하는가?
__리액트
__가상 DOM
__리액트 설치와 실행
____구성요소와 props
____상태
____라이프 사이클 이벤트
__요약

부록 A. 예약어
__키워드
__ES6 예약어
____미래의 예약어
__이전의 예약어

부록 B. 내장 함수
부록 C. 내장 객체
__객체
____Object 생성자의 멤버
____Object.prototype 멤버
____객체에 대한 ECMAScript 5 추가사항
__객체에 대한 ES6 추가사항
____약식 속성
____계산된 속성 이름
____Object.assign
__배열
____Array.prototype 멤버
____배열에 대한 ECMAScript 5 추가사항
____배열에 대한 ES6 추가사항
__함수
Function.prototype 멤버
____Function에 대한 ECMAScript 5 추가사항
____Function에 대한 ECMAScript 6 추가사항
__Boolean
__Number
____Number 생성자의 멤버
____Number.prototype 멤버
__String
____String 생성자의 멤버
____String.prototype 멤버
____String에 대한 ECMAScript 5 추가사항
____String에 대한 ECMAScript 6 추가사항
__Date
____Date 생성자의 멤버
____Date.prototype 멤버
____Date에 대한 ECMAScript 5 추가사항
__Math
____Math 객체의 멤버
__RegExp
____RegExp.prototype 멤버
__Error 객체
____Error.prototype 멤버
__JSON
____JSON 객체의 멤버

부록 D. 정규 표현식
부록 E. 연습문제 해답
__2장. 원시 데이터 형식, 배열, 루프 및 조건
____연습문제
__3장. 함수
__4장. 객체
____연습문제
__5장. ES6 이터레이터와 제너레이터
____연습문제
__6장. 프로토타입
____연습문제
__7장. 상속
____연습문제

저자소개

저자 베드 안타니(Ved Antani)는 2005년부터 자바스크립트와 GO, 자바를 사용해 확장 가능한 서버와 모바일 플랫폼을 구축해 왔다. 민트라의 부사장이며 일렉트로닉아츠와 오라클에서 근무했다. 다양한 주제에 대한 저자이자 열렬한 독자이기도 하다. 컴퓨터과학을 전공했으며 인도 방갈로(Bangalore)에 거주하고 있다. 클래식 음악에 열정적이며 아들과 함께 시간을 보내는 것을 좋아한다.

도서소개

자바스크립트는 웹 사이트 개발에 사용되는 객체지향 프로그래밍 언어다. 오늘날 작성되는 웹 페이지는 콘텐츠(HTML)와 프레젠테이션(CSS), 동작(자바스크립트)의 세 부분으로 구성되는 패러다임을 따른다. 자바스크립트는 이 패러다임의 중요한 기둥 중 하나인 웹 페이지의 실행을 담당한다. 이 책은 자바스크립트를 배우기 시작한 사람이나 자바스크립트를 알고는 있지만 객체지향에 익숙하지 않은 사람들을 대상으로 한다. 이미 ES5 기능에 익숙한 사용자라면 유용한 ES6 입문서가 될 것이다. 이 책을 끝마칠 때쯤이면, 객체지향 프로그래밍 기법을 활용해 전문적인 자바스크립트 애플리케이션을 작성하는 방법을 마스터하게 될 것이다.

교환 및 환불안내

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