자바스크립트 디자인 패턴 [안정적이고 유지보수 가능한 강력한 애플리케이션 개발]
- 원서명Mastering JavaScript Design Patterns (ISBN 9781783987986)
- 지은이사이먼 팀스(Simon Timms)
- 옮긴이류영선
- ISBN : 9788960778856
- 25,000원
- 2016년 07월 28일 펴냄 (절판)
- 페이퍼백 | 332쪽 | 188*235mm
- 시리즈 : acorn+PACKT
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/javascript-design-patterns)
요약
자바스크립트는 전 세계에서 가장 빨리 진화하고 있고 가장 인기 있는 언어 중 하나다. 자바스크립트는 더 이상 단순히 브라우저를 조작하기 위한 보조적 언어가 아니다. 자바스크립트 코드에 디자인 패턴을 적용하면 안정적이고 유지보수가 쉬운 코드를 작성할 수 있다. 이 책은 디자인 패턴의 바이블로 불리는 GoF(Gang of Four) 책에 소개된 생성 패턴과 구조 패턴, 행동 패턴 같은 전통적인 디자인 패턴부터 함수형 프로그래밍과 모델 뷰 패턴, 웹 패턴, 메시징 패턴 등 비교적 최근에 개발된 디자인 패턴까지 다룬다.
이 책에서 다루는 내용
■ 클래스와 모듈로 코드를 작성하는 방법
■ GoF 패턴에 대한 설명과 이를 자바스크립트에 적용하는 방법
■ 생성 패턴을 통한 애플리케이션의 커플링 감소와 코드 재사용성 증가
■ 함수형 패턴 사용을 통한 코드의 재고찰
■ 의존성 주입과 라이브 후처리와 같은 고급 자바스크립트 패턴 마스터
■ 모크 객체와 모킹 프레임워크, 몽키 패치를 통한 코드의 테스트 용이성 향상
■ 녹아웃JS, 앵귤러JS, 백본JS 같은 현대 자바스크립트 라이브러리의 기본 패턴
이 책의 대상 독자
어느 정도 자바스크립트를 다뤄본 개발자를 대상으로 하지만, 자바스크립트로 전체 애플리케이션을 작성해본 경험까지 요구하지는 않는다. 필요에 따라 성장하고 변화하며 유지보수가 쉬운 애플리케이션을 만드는 데 관심이 있다면 누구든 읽을 수 있다.
이 책의 구성
이 책은 2부로 구성되어 있다. 1부에서는 GoF 책에 소개된 전통적인 디자인 패턴을 다룬다. 2부에서는 GoF 책에서 다루지 않은 패턴이나 자바스크립트에 특화된 패턴을 다룬다.
1장, ‘재미와 이익을 주는 설계’에서는 디자인 패턴이 무엇인지, 왜 디자인 패턴에 관심을 가져야 하는지 소개한다. 또한 자바스크립트의 배경을 이해하기 위한 자바스크립트 역사도 소개한다.
2장, ‘코드 구성’에서는 코드를 구성하는 데 사용되는 고전적인 구조(네임스페이스나 모듈, 클래스)를 만드는 방법을 설명한다.
3장, ‘생성 패턴’에서는 GoF 책에 소개된 생성 패턴을 다룬다. 또한 GoF 책이 쓰여졌을 당시에는 생소한 언어였던 자바스크립트에 이 패턴들을 적용하는 방법을 알아본다.
4장, ‘구조 패턴’에서는 생성 패턴에 이어 GoF 책에 소개된 구조 패턴을 알아본다.
5장, ‘행동 패턴’에서는 GoF 책에서 소개한 패턴 중 마지막인 행동 패턴을 다룬다. 이 패턴은 클래스를 연결하는 데 다양한 방법으로 사용된다.
6장, ‘함수형 프로그래밍’에서는 함수형 프로그래밍 언어에서 찾을 수 있는 패턴을 설명한다. 자바스크립트에서 코드를 개선하는 데 이 패턴들을 어떻게 사용할 수 있는지 알아본다.
7장, ‘모델 뷰 패턴’에서는 단일 페이지 애플리케이션을 만들 수 있는 다양한 패턴을 살펴본다. 자신의 경량화된 프레임워크를 작성하거나 기존의 패턴을 사용하는 라이브러리 활용 방법에 대해 알아본다.
8장, ‘웹 패턴’에서는 웹 애플리케이션에 적용되는 특정한 패턴을 다룬다. 또한 브라우저와 같이 원격 런타임에 코드를 배치하는 몇 가지 패턴을 알아본다.
9장, ‘메시징 패턴’에서는 내부 통신뿐만 아니라 애플리케이션 간 통신에 사용하는 강력한 기술인 메시징을 설명한다. 메시징과 관련된 일반적인 구조를 살펴보고 메시징이 왜 유용한지 알아본다.
10장, ‘테스트를 위한 패턴’에서는 애플리케이션이 예상대로 잘 작동하는지 확인하는 테스트를 쉽게 해주는 몇 가지 패턴을 살펴본다.
11장, ‘고급 패턴’에서는 자바스크립트에는 잘 적용되진 않지만 관점 지향 프로그래밍 같은 진보된 몇 가지 패턴을 알아본다. 이런 패턴을 자바스크립트에 적용해야 하는지 논의하며, 어떻게 적용할 수 있는지 알아본다.
12장, ‘오늘날의 ES6 솔루션’에서는 자바스크립트의 차세대 기능들을 지금 당장 사용할 수 있게 도와주는 몇 가지 도구에 대해 설명한다. 트레서뿐만 아니라 마이크로소프트의 타이프스크립트에 대해서도 알아본다.
부록, ‘결론’에서는 이 책에서 배운 내용을 정리하고 패턴을 사용하는 목적을 다시 생각해본다.
목차
목차
- 1장. 재미와 이익을 주는 설계
- 자바스크립트의 역사
- 자바스크립트 에브리웨어(everywhere)
- 지메일 동작방식
- 초창기
- 휴식기
- 디자인 패턴이란 무엇인가
- 안티패턴
- 요약
- 자바스크립트의 역사
- 2장. 코드 구성
- 코드 청크
- 전역 범위의 문제
- 자바스크립트의 객체
- 프로토타입 구축
- 상속
- 모듈
- ECMAScript 6 클래스와 모듈
- 모범 사례 및 문제해결
- 요약
- 3장. 생성 패턴
- 추상 팩토리
- 구현
- 빌더
- 구현
- 팩토리 메서드
- 구현
- 단일체
- 구현
- 단점
- 프로토타입
- 구현
- 힌트와 팁
- 요약
- 추상 팩토리
- 4장. 구조 패턴
- 적응자
- 구현
- 가교
- 구현
- 복합체
- 구현
- 예제
- 장식자
- 구현
- 퍼사드
- 구현
- 플라이급
- 구현
- 프록시
- 구현
- 힌트와 팁
- 요약
- 적응자
- 5장. 행동 패턴
- 책임 연쇄
- 구현
- 명령
- 명령 메시지
- 수신자
- 호출자
- 해석자
- 구현
- 예제
- 반복자
- ECMAScript 6 반복자
- 구현
- 중재자
- 구현
- 메멘토
- 구현
- 감시자
- 구현
- 상태
- 구현
- 전략
- 구현
- 템플릿 메서드
- 구현
- 방문자
- 힌트와 팁
- 요약
- 책임 연쇄
- 6장. 함수형 프로그래밍
- 부작용이 없는 함수형 함수
- 함수 전달
- 구현
- 필터와 파이프
- 구현
- 어큐뮬레이터
- 구현
- 메모이제이션
- 구현
- 불변성
- 지연 인스턴스 생성
- 구현
- 힌트와 팁
- 요약
- 7장. 모델 뷰 패턴
- 간단한 역사
- MVC 패턴
- MVC 코드
- MVP 패턴
- MVP 코드
- MVVM 패턴
- MVVM 코드
- 모델과 뷰 사이의 변화를 전송하는 더 좋은 방법
- 뷰 변화 관찰
- 힌트와 팁
- 요약
- 8장. 웹 패턴
- 자바스크립트 전송
- 축소(Minification)
- 콘텐츠 전송 네트워크
- 파일 결합
- 플러그인
- d3
- 제이쿼리
- 한 번에 두 가지 일을 처리하기: 멀티스레드
- 서킷 브레이커 패턴
- 백 오프
- 성능 저하 애플리케이션 동작
- 프라미스 패턴
- 힌트와 팁
- 자바스크립트 전송
- 요약
- 9장. 메시징 패턴
- 메시지란 무엇인가
- 명령
- 이벤트
- 요청과 응답
- 발행과 구독
- 팬아웃과 팬인
- 데드 레터 큐
- 메시지 버전 관리
- 메시지 재생
- 파이프와 필터
- 힌트와 팁
- 요약
- 메시지란 무엇인가
- 10장. 테스트를 위한 패턴
- 테스트 피라미드
- 단위 테스트
- 준비-행동-확인
- 확인
- 가짜 객체
- 모크
- 스텁
- 테스트 스파이
- 몽키 패치
- 사용자 인터페이스 상호 작용
- DOM 조작
- 브라우저 테스트
- 조작의 포장
- 빌드 및 테스트 도구
- 힌트와 팁
- 요약
- 11장. 고급 패턴
- 의존성 주입
- 라이브 후처리
- 관점 지향 프로그래밍
- 매크로
- 힌트와 팁
- 요약
- 12장. 오늘날의 ES6 솔루션
- 타이프스크립트
- 모듈 구문
- 클래스 구문
- 타이핑
- 화살표 함수
- 트레이서
- 결론
- 기본 매개변수
- 렛으로 블록 바인딩하기
- 비동기
- 클래스
- 템플릿 리터럴
- 힌트와 팁
- 요약
- 타이프스크립트
- 부록. 결론