Top

자바스크립트 언락 [전문가의 통찰력을 통해 코드의 성능을 향상시키고 자바스크립트의 잠재력을 깨운다]

  • 원서명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의 잘 알려지지 않은 기능을 알아본다.

저자/역자 소개

지은이의 말

이 책은 독자들에게 자바스크립트의 현재와 다가올 기술을 이해시키는 가이드 역할을 한다. 그리고 공통적인 프로그래밍 과제를 해결해주는 코드들로 가득 차 있다. 고전적인 자바스크립트인 ES5뿐만 아니라 차세대 언어인 ES6과 ES7 솔루션을 함께 제공한다. 이 책은 브라우저뿐만 아니라 데스크톱 애플리케이션이나 서버 측 소프트웨어, 네이티브 모듈 애플리케이션을 위한 효율적인 자바스크립트 작성 방법도 함께 제공한다. 이 책의 목표는 언어에 대한 설명 외에도 독자들이 더 나은 유지보수와 가독성 및 성능을 위해 코드를 향상할 수 있도록 돕는 데 있다.

지은이 소개

드미트리 세이코(Dmitry Sheiko)

열정적인 블로거이자 『Instant Testing with QUnit』(Packt, 2013)의 저자다. 1980년대 후반 컴퓨터 프로그래밍에 빠져든 후 지난 18년 동안 웹 개발을 해왔다. 처음으로 기여한 오픈소스는 2004년 XSLT 기반의 CMS 프로젝트였으며, 그 이후로 FOSS에 많은 기여를 하고 있다. https://github.com/dsheiko에서 최신 작업을 살펴볼 수 있다. 지금은 프랑크푸르트 암마인(Frankfurt am Main)에 있는 크라이텍(Crytek)에서 웹 개발자로 일한다.

옮긴이의 말

한때 웹 페이지를 동적으로 만드는 데 사용하는 스크립트 언어 정도로만 여겨졌던 자바스크립트가 웹 애플리케이션의 발전과 함께 이제는 주류 프로그래밍 언어로 확실하게 자리 잡은 듯하다. 이미 우리에게 익숙한 ES5 이후 ES6와 ES7으로 이어지는 몇 번의 개정 작업과 함께 개발자 커뮤니티의 요구사항을 적극적으로 받아들여 커피스크립트(CoffeeScript)나 타입스크립트(TypeScript) 같은 여러 다른 스크립트 언어들의 우수한 장점들을 흡수함으로써 오늘날에는 OOP나 객체 상속, 이벤트 기반 프로그래밍, 비차단 I/O 등 여러 확장된 기능을 제공하게 됐다.
그러나 자바스크립트의 진정한 힘을 제대로 끌어내기 위해서는 기능적 특징을 배우는 것도 중요하지만 언어의 단점을 해결하거나 개발 과정 중 생기는 문제를 해결할 수 있는 트릭에 관련된 이해도 필요하다. 이 책은 단순히 자바스크립트의 프로그래밍 방법을 나열한 설명서가 아니라 원서의 제목인 ‘JavaScript Unlock’이라는 말 그대로 언어의 밑바닥에 자리 잡고 있는 비밀을 하나씩 풀어내고 있다.
이 책은 자바스크립트라는 언어의 장단점을 분석하고 실제 프로젝트 진행 과정에서 만날 수 있는 문제점 및 이를 해결할 수 있는 솔루션을 ES5 및 ES6, ES7 방법으로 소개하고 있으므로 코드를 쉽게 유지보수하고 성능을 향상하는 데 도움이 되는 실질적인 가이드가 될 수 있을 것이다.
꽤 많은 노력을 기울여 번역했지만, 저자의 의도를 충분히 전달하지 못하거나 잘못 번역된 부분이 있을 수 있다. 잘못된 부분이나 책의 내용과 관련된 어떤 의견이라도 보내주면 소중히 다루도록 하겠다.

옮긴이 소개

류영선

소프트웨어 엔지니어로 오랫동안 웹 브라우저와 웹 서버를 개발했다. 그 경험을 바탕으로 현재는 W3C 및 다양한 국제 표준화 단체에서 웹과 관련된 표준화 업무를 담당하고 있다. 최근에는 PC에서 벗어나 모바일이나 DTV, 디지털 사이니지(Digital Signage), 웨어러블(Wearable), 오토모티브(Automotive) 등 다양한 IoT 디바이스에 접목하는 오픈 웹 플랫폼(Open Web Platform)에 관심을 갖고 관련 기술을 연구 중이다. 아울러 워크숍이나 세미나 강연 및 학술 기고를 통해 오픈 웹 플랫폼과 웹 기술의 전파에 힘쓰고 있다. 에이콘출판사에서 출간한 『반응형 웹 디자인』(2012)과 『실전 예제로 배우는 반응형 웹 디자인』(2014), 『HTML5 웹소켓 프로그래밍』(2014), 『WebRTC 프로그래밍』(2015), 『Three.js로 3D 그래픽 만들기 2/e』(2016), 『자바스크립트 디자인 패턴』(2016), 『자바스크립트 JSON 쿡북』(2017) 등을 번역했다.

목차

목차
  • 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
    • 요약

  • 4장. HTML5 API 117
    • 웹 브라우저에서 데이터 저장하기
      • 웹 스토리지 API
      • 인덱스 DB
      • 파일 시스템 API
    • 자바스크립트 웹 워커로 성능 개선하기
    • 첫 번째 웹 컴포넌트 제작하기
    • 서버-브라우저 간 통신 채널 학습
      • 서버 전송 이벤트
      • 웹 소켓
    • 요약

  • 5장. 비동기 자바스크립트
    • 비차단 자바스크립트
    • 오류-우선 콜백
    • 계속-통과 스타일
    • ES7에서의 비동기 함수 처리
    • Async.js 라이브러리를 이용한 병렬 작업 및 일련 작업 처리
    • 이벤트 처리 최적화
      • 디바운싱
      • 스로틀링
      • 지연 시간에 민감한 이벤트에 영향을 주지 않는 콜백 작성
    • 요약

  • 6장. 대규모 자바스크립트 애플리케이션 아키텍처
    • 자바스크립트 디자인 패턴
    • 자바스크립트에서의 관심사항 분리의 이해
      • MVVM
    • 자바스크립트 MV* 프레임워크 사용하기
      • 백본
      • 앵귤러
      • 리액트
    • 요약

  • 7장. 자바스크립트, 브라우저를 넘어서
    • 자바스크립트 커맨드라인 프로그래밍 레벨업
    • 자바스크립트로 웹 서버 구축
    • 데스크톱 HTML5 애플리케이션 작성
      • 프로젝트 설정
      • HTML5 애플리케이션 추가
      • 디버깅
      • 패키징
    • 폰갭으로 모바일 네이티브 애플리케이션 작성프로젝트 설정
      • 프로젝트 작성
      • 플러그인 추가
      • 디버깅
    • 요약

  • 8장. 디버깅 및 프로파일링
    • 디버깅
    • 콘솔 API에서 최상의 결과 얻기
    • 성능 조정

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안