| 000 | 00000cam c2200205 c 4500 | |
| 001 | 000045921071 | |
| 005 | 20251111130239 | |
| 007 | ta | |
| 008 | 171116s2017 ulka 001c kor | |
| 020 | ▼a 9791161750637 ▼g 94000 | |
| 020 | 1 | ▼a 9788960772106 (Set) |
| 035 | ▼a (KERIS)BIB000014629388 | |
| 040 | ▼a 211048 ▼c 211048 ▼d 211009 | |
| 041 | 1 | ▼a kor ▼h eng |
| 082 | 0 4 | ▼a 005.133 ▼2 23 |
| 085 | ▼a 005.133 ▼2 DDCK | |
| 090 | ▼a 005.133 ▼b J41 2017z7 | |
| 100 | 1 | ▼a Antani, Bed |
| 245 | 1 0 | ▼a 객체지향 자바스크립트 : ▼b 객체지향 프로그래밍의 기초부터 함수, 객체, 프로토타입까지 / ▼d 베드 안타니, ▼e 스토얀 스테파노프 지음 ; ▼e 류영선 옮김 |
| 246 | 1 9 | ▼a Object-oriented JavaScript. ▼g (3rd ed.) |
| 246 | 3 0 | ▼a 자바스크립트 |
| 260 | ▼a 서울 : ▼b 에이콘, ▼c 2017 | |
| 300 | ▼a 686 p. : ▼b 삽화 ; ▼c 24 cm | |
| 440 | 0 0 | ▼a acorn+PACKT Technical Book |
| 500 | ▼a 부록: A. 예약어, B. 내장 함수, C. 내장 객체 외 | |
| 500 | ▼a 색인수록 | |
| 700 | 1 | ▼a Stefanov, Stoyan, ▼e 저 ▼0 AUTH(211009)175393 |
| 700 | 1 | ▼a 류영선, ▼e 역 ▼0 AUTH(211009)141688 |
| 900 | 1 0 | ▼a 안타니, 베드, ▼e 저 |
| 900 | 1 0 | ▼a 스테파노프, 스토얀, ▼e 저 |
| 945 | ▼a KLPA |
소장정보
| No. | 소장처 | 청구기호 | 등록번호 | 도서상태 | 반납예정일 | 예약 | 서비스 |
|---|---|---|---|---|---|---|---|
| No. 1 | 소장처 과학도서관/Sci-Info(1층서고)/ | 청구기호 005.133 J41 2017z7 | 등록번호 121242380 (6회 대출) | 도서상태 대출가능 | 반납예정일 | 예약 | 서비스 |
컨텐츠정보
책소개
자바스크립트를 배우기 시작한 사람이나 자바스크립트를 알고는 있지만 객체지향에 익숙하지 않은 사람들을 대상으로 한 책. 이미 ES5 기능에 익숙한 사용자라면 유용한 ES6 입문서가 된다. 책을 끝마칠 때쯤이면, 객체지향 프로그래밍 기법을 활용해 전문적인 자바스크립트 애플리케이션을 작성하는 방법을 마스터하게 된다.
ES6는 프라미스와 클래스, 화살표 함수 등 아주 중요한 언어 구조를 도입했는데 여기서 이런 언어 구조와 실제 사용을 대해 자세히 살펴본다. 자바스크립트에 대한 사전 지식을 필요로 하지 않으며, 기초부터 시작해 언어에 대한 철저한 이해를 돕는다.
자바스크립트는 웹 사이트 개발에 사용되는 객체지향 프로그래밍 언어다. 오늘날 작성되는 웹 페이지는 콘텐츠(HTML)와 프레젠테이션(CSS), 동작(자바스크립트)의 세 부분으로 구성되는 패러다임을 따른다. 자바스크립트는 이 패러다임의 중요한 기둥 중 하나인 웹 페이지의 실행을 담당한다. 이 책은 자바스크립트를 배우기 시작한 사람이나 자바스크립트를 알고는 있지만 객체지향에 익숙하지 않은 사람들을 대상으로 한다. 이미 ES5 기능에 익숙한 사용자라면 유용한 ES6 입문서가 될 것이다. 이 책을 끝마칠 때쯤이면, 객체지향 프로그래밍 기법을 활용해 전문적인 자바스크립트 애플리케이션을 작성하는 방법을 마스터하게 될 것이다.
이 책의 대상 독자
자바스크립트를 배우기 시작한 사람이나 자바스크립트를 알고 있지만 객체지향에 익숙하지 않은 사람들을 대상으로 한다. 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, '연습문제 해답'에서는 각 장의 끝에서 제시한 연습문제의 해답을 제공한다.
정보제공 :
저자소개
스토얀 스테파노프(지은이)
페이스북 엔지니어며 저자 및 연사로 활동하고 있다. 컨퍼런스와 그의 블로그 (www.phpied.com)에서 웹 개발을 주제로 정기적으로 발표하고 있다. 또한 자바스크립트 패턴을 연구하는 JSPatterns.com을 비롯한 여러 사이트를 운영하고 있다. 야후에서 근무할 때 YSlow 2.0을 설계했으며 이미지 최적화 도구인 Smush.it의 창시자이기도 하다. 불가리아에서 태어나 자랐지만, 캐나다 시민권자이며 현재 캘리포니아주 로스엔젤레스에 거주하고 있다. 오프라인 때는 기타를 연주하거나 비행 수업을 즐기며 가족과 함께 산타 모니카 해변에서 시간을 보내고 있다.
베드 안타니(지은이)
2005년부터 자바스크립트와 GO, 자바를 사용해 확장 가능한 서버와 모바일 플랫폼을 구축해 왔다. 민트라의 부사장이며 일렉트로닉아츠와 오라클에서 근무했다. 다양한 주제에 대한 저자이자 열렬한 독자이기도 하다. 컴퓨터과학을 전공했으며 인도 방갈로(Bangalore)에 거주하고 있다. 클래식 음악에 열정적이며 아들과 함께 시간을 보내는 것을 좋아한다.
류영선(옮긴이)
소프트웨어 엔지니어로서 오랫동안 웹 브라우저와 웹 서버를 개발했다. 그 경험을 바탕으로 현재는 W3C를 비롯한 여러 국제 표준화 단체에서 웹과 관련된 표준화 업무를 담당하고 있다. 최근에는 PC에서 벗어나 모바일 환경이나 DTV, 디지털 사이니지(Digital Signage), 웨어러블(Wearable), 오토모티브(Automotive) 등의 다양한 IoT 장치에 웹 기술을 접목하는 오픈 웹 플랫폼에 관심을 갖고 관련 기술을 연구 중이다. 아울러 워크숍, 세미나 강연, 학술 기고를 통해 오픈 웹 플랫폼과 웹 기술을 전파하는 데 힘쓰고 있다. 옮긴 책으로는 에이콘출판사에서 펴낸 『반응형 웹 디자인』(2012), 『HTML5 웹소켓 프로그래밍』(2014), 『WebRTC 프로그래밍』(2015), 『자바스크립트 디자인 패턴』(2016), 『자바스크립트 언락』(2017), 『객체지향 자바스크립트 3/e』(2017), 『사물인터넷 자바스크립트 프로그래밍』(2018), 『모던 C++ 프로그래밍 쿡북』(2019), 『산업인터넷 애플리케이션 개발』(2020) 등 다수가 있다.
목차
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장. 상속 ____연습문제
