자바스크립트 언락 [전문가의 통찰력을 통해 코드의 성능을 향상시키고 자바스크립트의 잠재력을 깨운다]
- 원서명Javascript Unlocked : Improve your code maintainability, performance, and security through practical expert insights and unlock the full potential of JavaScript (iSBN 9781785881572)
- 지은이드미트리 세이코(Dmitry Sheiko)
- 옮긴이류영선
- ISBN : 9791161750330
- 20,000원
- 2017년 08월 17일 펴냄 (절판)
- 페이퍼백 | 232쪽 | 188*235mm
- 시리즈 : acorn+PACKT
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
요약
오늘날 자바스크립트는 대규모 클라이언트 측 개발에서 서버 스크립팅, 데스크탑 애플리케이션, 네이티브 모바일 프로그래밍, 게임 개발, DB 쿼리, 하드웨어 제어, OS 자동화에 이르기까지 말 그대로 모든 영역에서 사용되고 있다. 이 책은 공통적인 프로그래밍 과제를 해결해주는 코드로 가득 차 있다. 고전적인 자바스크립트 ES5와 차세대 언어인 ES6 및 ES7 솔루션을 함께 제공해 독자들에게 자바스크립트의 현재뿐만 아니라 다가올 기술을 이해시키는 가이드 역할을 할 것이다.
이 책에서 다루는 내용
■ 자바스크립트 언어의 잠재력을 깨워 코드의 가독성 향상
■ 배열과 배열 같은 객체의 자바스크립트 컬렉션 이해
■ 자바스크립트를 융통성 있고 강력한 프로그래밍 언어로 발전시킬 수 있는 추상 데이터 타입 개발
■ 실시간 코드 예제 구현을 통한 자바스크립트의 장단점 이해
■ 데스크톱 및 모바일 애플리케이션 개발을 위해 서버 측 자바스크립트를 이용한 실시간 소규모 프로젝트 개발
■ 비동기 자바스크립트로 병렬 작업 처리
■ 자바스크립트로 코드의 유지보수와 가독성을 개선하고 애플리케이션 성능 향상
이 책의 대상 독자
자바스크립트에 익숙하고 언어를 최대한 활용해 자신의 능력을 한 단계 발전시키고자 하는 개발자를 위한 책이다. 실전 예제와 튜토리얼로 구성돼 있어 실전지향적이며, 따라 해보며 배우는 것을 선호하는 독자들에게 도움이 될 것이다.
이 책의 구성
1장, ‘자바스크립트 핵심 시작하기’에서는 코드의 표현력을 향상시키는 기술과 여러 줄의 문자열 및 템플릿을 마스터하고 배열과 배열과 같은 객체를 조작하는 방법에 관해 알아본다. 그리고 코드의 가독성을 해치지 않으면서 자바스크립트 프로토타입을 활용하는 방법을 설명한다. 또한 자바스크립트의 ‘매직 메서드’를 소개하고 실제 사용 예제를 제공한다.
2장, ‘자바스크립트 모듈러 프로그래밍’에서는 자바스크립트의 모듈화를 설명한다. 모듈의 정의와 모듈이 중요한 이유를 배우며, 모듈을 비동기적/동기적으로 로드하는 표준 방법과 ES6 모듈에 관해 설명한다. 그리고 서버 측 자바스크립트에서 커먼JS 모듈을 사용하는 방법과 브라우저에서 사용하기 위해 사전에 컴파일하는 방법을 배운다. 더 좋은 애플리케이션 성능을 달성하기 위해 동기와 비동기 방식을 조합하는 방법을 자세히 알아본다. 또한 바벨JS로 ES6 모듈의 폴리필(polyfill)을 작성하는 방법을 설명한다.
3장, ‘DOM 스크립팅과 AJAX’에서는 문서 객체 모델DOM을 소개하고, 브라우저 리플로를 최소화하는 모범 사례를 보여준다. 그리고 DOM으로 애플리케이션 성능을 향상시키는 방법을 알아본다. 또한 클라이언트 서버 간 통신 모델인 XHR과 Fetch API를 비교한다.
4장, ‘HTML5 API’에서는 웹 스토리지와 인덱스 DB, 파일 시스템과 같은 HTML API를 알아본다. 웹 컴포넌트를 소개하고, 사용자정의 컴포넌트 제작 방법을 알아본다. 또한 SSE와 웹 소켓과 같은 서버와 브라우저 간 통신 방법을 설명한다.
5장, ‘비동기 자바스크립트’에서는 자바스크립트의 비차단 특성을 설명하고, 이벤트 루프와 호출 스택을 자세히 설명한다. 비동기 호출 체인 및 오류를 처리하는 인기 있는 스타일을 알아본다. 또한 ES7의 async/await 기술을 소개하고, 프라미스 API(Promise API)와 Async.js 라이브러리를 사용해 작업을 병렬과 순차적으로 처리하는 예제를 제공한다. 스로틀링과 디바운싱 개념에 관해서도 설명한다.
6장, ‘대규모 자바스크립트 애플리케이션 아키텍처’에서는 코드의 유지보수와 아키텍처에 초점을 맞춘다. MVC 패러다임과 이의 파생인 MVP와 MVVM을 소개한다. 또한 백본JS(Backbone.js)와 앵귤러JS(AngularJS), 리액트JS(ReactJS)처럼 인기 있는 프레임워크로 관심사 분리를 어떻게 구현하는지 예제를 통해 설명한다.
7장, ‘자바스크립트, 브라우저를 넘어서’에서는 자바스크립트에서 커맨드라인 프로그램을 작성하는 방법과 Node.js로 웹 서버를 구축하는 방법을 설명한다. 또한 NW.js로 데스크톱 HTML5 애플리케이션을 만들고, 폰갭(PhoneGap)으로 네이티브 모바일 애플리케이션을 개발하는 방법을 소개한다.
8장, ‘디버깅 및 프로파일링’에서는 버그 탐지와 격리에 관해 설명한다. 데브툴(DevTools)의 능력과 자바스크립트 콘솔 API의 잘 알려지지 않은 기능을 알아본다.
목차
목차
- 1장. 자바스크립트 핵심 시작하기
- 코드의 가독성과 표현력 높이기
- 함수 인수의 디폴트 값
- 조건부 호출
- 화살표 함수
- 메서드 정의
- 나머지 연산자
- 펼침 연산자
- 자바스크립트의 멀티라인 문자열 마스터하기
- 연결 대 배열 조인
- 템플릿 리터럴
- 멀티라인 문자열 대 트랜스파일러
- ES5 방식의 배열 조작
- ES5의 배열 메서드
- ES6의 배열 메서드
- 우아하고 신뢰성 있는 안전하고 빠른 방법으로 객체 탐색하기
- 키-값 객체를 안전하고 빠르게 반복하기
- 배열 같은 객체의 열거
- ES6의 컬렉션
- 가장 효과적인 객체 선언 방법
- 고전적인 접근 방식
- 프라이빗 상태 접근 방식
- 프로토타입 체인 상속
- Object.create로 프로토타입 상속
- ExtendClass로 접근
- ES6의 클래스
- 자바스크립트의 매직 메서드
- ES6 클래스의 접근자
- 임의 속성에 대한 접근 제어
- 요약
- 코드의 가독성과 표현력 높이기
- 2장. 자바스크립트 모듈러 프로그래밍
- 모듈형 자바스크립트를 사용해 혼란을 해결하는 방법
- 모듈
- 모듈 패턴
- 증강
- 모듈 표준
- 브라우저에서의 비동기 모듈 사용 방법
- 장단점
- 서버에서의 동기 모듈 사용 방법
- 장단점
- UMD
- 자바스크립트 내장 모듈 시스템
- 명명된 익스포트
- 디폴트 익스포트
- 모듈 로더 API
- 결론
- 브라우저에서 사용할 수 있도록 CommonJS를 트랜스파일링하기
- 동기 로딩을 위한 ES6 모듈 번들링
- 요약
- 모듈형 자바스크립트를 사용해 혼란을 해결하는 방법
- 3장. DOM 스크립팅과 AJAX
- 고속 DOM 작업
- DOM 탐색
- DOM 변경
- DOM 스타일링
- 속성과 프로퍼티 사용
- DOM 이벤트 핸들링
- 서버와 통신
- XHR
- Fetch API
- 요약
- 고속 DOM 작업
- 4장. HTML5 API 117
- 웹 브라우저에서 데이터 저장하기
- 웹 스토리지 API
- 인덱스 DB
- 파일 시스템 API
- 자바스크립트 웹 워커로 성능 개선하기
- 첫 번째 웹 컴포넌트 제작하기
- 서버-브라우저 간 통신 채널 학습
- 서버 전송 이벤트
- 웹 소켓
- 요약
- 웹 브라우저에서 데이터 저장하기
- 5장. 비동기 자바스크립트
- 비차단 자바스크립트
- 오류-우선 콜백
- 계속-통과 스타일
- ES7에서의 비동기 함수 처리
- Async.js 라이브러리를 이용한 병렬 작업 및 일련 작업 처리
- 이벤트 처리 최적화
- 디바운싱
- 스로틀링
- 지연 시간에 민감한 이벤트에 영향을 주지 않는 콜백 작성
- 요약
- 6장. 대규모 자바스크립트 애플리케이션 아키텍처
- 자바스크립트 디자인 패턴
- 자바스크립트에서의 관심사항 분리의 이해
- MVVM
- 자바스크립트 MV* 프레임워크 사용하기
- 백본
- 앵귤러
- 리액트
- 요약
- 7장. 자바스크립트, 브라우저를 넘어서
- 자바스크립트 커맨드라인 프로그래밍 레벨업
- 자바스크립트로 웹 서버 구축
- 데스크톱 HTML5 애플리케이션 작성
- 프로젝트 설정
- HTML5 애플리케이션 추가
- 디버깅
- 패키징
- 폰갭으로 모바일 네이티브 애플리케이션 작성프로젝트 설정
- 프로젝트 작성
- 플러그인 추가
- 디버깅
- 요약
- 8장. 디버깅 및 프로파일링
- 디버깅
- 콘솔 API에서 최상의 결과 얻기
- 성능 조정