Top

자바스크립트 디자인 패턴 [안정적이고 유지보수 가능한 강력한 애플리케이션 개발]

  • 원서명Mastering JavaScript Design Patterns (ISBN 9781783987986)
  • 지은이사이먼 팀스(Simon Timms)
  • 옮긴이류영선
  • ISBN : 9788960778856
  • 25,000원
  • 2016년 07월 28일 펴냄
  • 페이퍼백 | 332쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

요약

자바스크립트는 전 세계에서 가장 빨리 진화하고 있고 가장 인기 있는 언어 중 하나다. 자바스크립트는 더 이상 단순히 브라우저를 조작하기 위한 보조적 언어가 아니다. 자바스크립트 코드에 디자인 패턴을 적용하면 안정적이고 유지보수가 쉬운 코드를 작성할 수 있다. 이 책은 디자인 패턴의 바이블로 불리는 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부에서는 디자인 패턴에 대한 소개를 시작으로 코드를 구성하는 데 사용되는 고전적인 구조 생성에 대해 알아본 다음 생성 패턴과 구조 패턴, 행동 패턴에 대해 살펴본다. 이 책의 2부에서는 함수형 프로그래밍과 모델 뷰 패턴, 웹 패턴, 메시징 패턴에 대해 알아본다. 또한 의존성 주입과 라이브 후처리 같은 고급 자바스크립트 패턴도 다룬다.
마지막으로 패턴으로 코드의 가독성과 유지보수성을 향상 시키는 방법을 알아본다.

지은이 소개

사이먼 팀스(Simon Timms)

코드 작성을 사랑하는 개발자다. 여러 도구를 사용해 다양한 언어로 코드를 작성하지만 대부분의 경우 .NET 백엔드로 웹 애플리케이션을 개발하고 있다. 시각화와 클라우드 컴퓨팅(cloud computing)에 관심이 많으며 빌드와 시스템 관리에 대한 배경지식을 갖췄고 데브옵스(DevOps)에 능하다.

팩트출판사에서 출간한 『Social Data Visualization with HTML5 and JavaScript』(2013)을 저술했다. 블로그(http://blog.simontimms.com)를 운영 중이며, 주기적으로 캐나다 개발자 연결(Canadian Developer Connection)에 ASP.NET 애플리케이션의 진화에 관한 최신 연구결과를 기고하고 있다.

캘거리 .NET 사용자 그룹의 멤버이자 의장이다. 데브옵스부터 전화 시스템 동작 방식까지 다양한 주제에 대해 강연한다.

현재 시추 회사인 페이서터 디렉셔널 드릴링(Pacesetter Directional Drilling)에서 웹 개발자로 일하고 있다.

옮긴이의 말

자바스크립트는 전 세계에서 가장 빨리 진화하고 있는 가장 인기 있는 언어 중 하나다. 자바스크립트는 더 이상 단순히 브라우저를 조작하기 위한 보조적 언어가 아니다. 모바일을 비롯한 클라이언트 측 애플리케이션은 물론, Node.js의 등장으로 서버 측 애플리케이션 작성도 가능하게 되었다. 나아가 빌드 도구나 편집기, 심지어 마이크로 컨트롤러 제어에도 자바스크립트가 사용되고 있다.

하지만 이런 인기에 비해 태생의 역사적 배경 때문인지 개발자들이 자바스크립트에 디자인 패턴의 적용을 크게 고려하지 않는 듯한 경향이 있다. 하지만 자바스크립트 코드에 디자인 패턴을 적용하면 안정적이고 유지보수가 쉬운 코드를 작성하는 데 많은 도움이 된다. 이 책은 디자인 패턴의 바이블로 불리는 GoF 책에 소개된 생성 패턴과 구조 패턴, 행동 패턴 같은 전통적인 디자인 패턴부터 함수형 프로그래밍과 모델 뷰 패턴, 웹 패턴, 메시징 패턴에 이르는 비교적 최근에 개발된 디자인 패턴까지 다루고 있다. 이 책에서 소개하는 다양한 패턴들을 자바스크립트 애플리케이션 개발에 적용해 보기 바란다.

옮긴이 소개

류영선

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

목차

목차
  • 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 솔루션
    • 타이프스크립트
      • 모듈 구문
      • 클래스 구문
      • 타이핑
      • 화살표 함수
    • 트레이서
      • 결론
      • 기본 매개변수
      • 렛으로 블록 바인딩하기
      • 비동기
      • 클래스
      • 템플릿 리터럴
    • 힌트와 팁
    • 요약

  • 부록. 결론

도서 오류 신고

도서 오류 신고

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

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

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