Top

타입스크립트 디자인 패턴 [차세대 자바스크립트 표준으로 배우는 핵심 소프트웨어 아키텍처]

  • 원서명TypeScript Design Patterns (ISBN 9781785280832)
  • 지은이빌릭 베인(Vilic Vane)
  • 옮긴이홍영표
  • ISBN : 9788960779914
  • 25,000원
  • 2017년 04월 26일 펴냄
  • 페이퍼백 | 308쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

요약

타입스크립트는 마이크로소프트에서 개발한 자바스크립트의 상위집합(superset)으로 자바스크립트와 완벽한 호환을 보장하며 대규모 애플리케이션 개발에도 적합하다. 따라서 체계적이고 효율적인 개발은 타입스크립트에서도 중요한 문제가 아닐 수 없다. 그러므로 최적의 소프트웨어 개발에 필요한 지혜의 집합체라 할 수 있는 디자인 패턴을 타입스크립트로 설명한 이 책은 이론을 넘어 타입스크립트를 실무에 적용하고자 하는 이들에게 매우 유용할 것이다. 따라서 이 책은 단순한 개념 설명뿐만 아니라 타입스크립트 측면에서 개발에 필요한 설치부터 배포까지 전반적인 워크플로우와 프로세스에 대한 설명도 함께 포함돼 있다. 타입스크립트 개발과 관련된 핵심 요소와 유용한 디자인 패턴을 통합적으로 이해하고 싶다면 이 책이 좋은 길라잡이가 될 것이다.

이 책에서 다루는 내용

■ 엔터프라이즈 애플리케이션 개발의 문제점과 결과 이해
■ 애플리케이션 개발 시 필요한 도구의 설치와 구성
■ 애플리케이션 개발 시 문제점 파악
■ 테스트 접근 방식을 사용한 애플리케이션에 GoF 패턴 적용
■ 타입스크립트나 자바스크립트 애플리케이션 개발 과정에서 디자인 패턴의 사용과 활용
■ SOLID 원칙 참조
■ 타입스크립트 애플리케이션에 다양한 원칙 적용
■ 코드 품질과 개발 속도 향상

이 책의 대상 독자

타입스크립트 개발자라면 이 책이 많은 도움이 될 것이다. 그리고 디자인 패턴에 대한 지식이 없어도 이 책을 읽는 데 큰 지장은 없다.

이 책의 구성

1장, ‘도구와 프레임워크’에서는 타입스크립트 컴파일러 설치, 편집기 준비, 기본적인 워크플로우를 포함해 이 책에서 사용할 도구와 프레임워크에 대해 간략히 소개한다.
2장, ‘복잡성 증가에 대한 도전’에서는 간단한 서버와 클라이언트간의 동기화 구현으로 시작한다. 그런 다음 해당 기능을 확장하고 어떠한 것이 바람직하지 않은 복잡성을 가져올 수 있는지 알아보고 복잡성을 줄일 수 있는 방안에 대해서 고민해본다.
3장, ‘생성 디자인 패턴’에서는 팩토리 메서드, 추상 팩토리, 빌더, 프로토타입, 싱글톤 패턴과 같은 5가지 공통적인 생성 디자인 패턴에 대해 살펴본다.
4장, ‘구조 디자인 패턴’에서는 컴포지트, 데코레이터, 어댑터, 브릿지, 퍼사드, 플라이웨이트, 프록시 패턴과 같은 7가지 공통적인 구조 디자인 패턴에 대해 살펴본다.
5장, ‘행동 디자인 패턴: 1부’에서는 책임 연쇄, 명령, 메멘토, 반복자, 중재자 패턴과 같은 5가지 공통적인 행동 디자인 패턴에 대해 살펴본다.
6장, ‘행동 디자인 패턴: 2부’에서는 전략, 상태, 템플릿 메서드, 관찰자, 방문자 패턴과 같은 5가지 공통적인 행동 디자인 패턴을 추가적으로 살펴본다.
7장, ‘자바스크립트 및 타입스크립트의 패턴과 아키텍처’에서는 비동기 프로그래밍, 모듈 구성, 에러 처리, 권한 추상화 등을 포함하여 자바스크립트나 타입스크립트 같은 언어 및 해당 애플리케이션과 밀접하게 관련된 패턴과 아키텍처에 대해 살펴본다.
8장, ‘SOLID 원칙’에서는 잘 알려진 SOLID 원칙과 이 원칙들이 프로젝트에 어떻게 도움이 되는지 그리고 오랜 기간 프로젝트를 안정적으로 유지하는 방법을 설명한다.
9장, ‘엔터프라이즈 애플리케이션으로 가는 길’에서는 테스트와 지속적인 통합을 포함하여 확장 준비가 된 애플리케이션의 전체 워크플로우를 구축하도록 안내한다.

저자/역자 소개

지은이의 말

타입스크립트는 자바스크립트를 위한 훌륭한 도구임에 틀림없다. 허나 실제로 안정적이고 유지보수를 할 수 있고 재사용 가능한 코드를 작성하기 위해서는 개발자의 지적 탐구가 필요하다. 하지만 이러한 지적 탐구 부분이야말로 우리가 하는 일의 진정한 가치이지 않겠는가?
우리 모두는 이해할 수 없는 버그에 대한 단서를 찾는 데 어려움을 겪었거나 기존 코드 기반에 새로운 기능을 추가하는 방법을 심각하게 고심한 적이 있을 것이다. 일부 사람들은 몇 년간 구축한 경험과 직관력으로 나쁘지 않은 디자인을 직접 내놓을 수 있다. 하지만 이 경우 오랜 기간을 거쳐 잘 정리하고 분류한 공통적인 디자인 패턴 지식은 많은 도움이 된다. 또한 다른 사람들과 소프트웨어 디자인에 대해 논의할 때도 깊이 있는 이해가 가능하다. 경험이 많지 않을 경우 공통적인 디자인 패턴에 대한 학습은 훌륭하게 설계된 코드를 작성하는 가장 빠른 방법일 수 있다.

지은이 소개

빌릭 베인(Vilic Vane)

8년 이상의 웹 개발 경력을 보유한 자바스크립트 엔지니어다. 타입스크립트가 출시된 이후 타입스크립트 프로젝트를 시작했으며, 프로젝트의 컨트리뷰터(contributor)기도 하다. 현재 임베디드 기기에서 자바스크립트를 실행하도록 IoT 플랫폼을 구축하는 스타트업 러프(Ruff)에서 근무하고 있다.

옮긴이의 말

자바스크립트는 더 이상 스크립트라는 단어가 어울리지 않을 정도로 단순한 웹 스크립트 언어를 넘어 프론트엔드부터 백엔드까지 넘나드는 전천후 언어가 된 지 오래다. 따라서 문제는 자바스크립트를 어떻게 더 효율적이고 유연하게 활용할 수 있느냐에 달렸다. 타입스크립트는 이러한 시대적 요구와 필요에 의해 탄생했다. 타입스크립트를 통해 언어 춘추 전국 시대에 언어 종속성을 넘어 개발의 자유로움 제공하며 새롭고 혁신적인 기능을 유연하게 추가할 수도 있다. 여기에 더해 타입스크립트는 자바스크립트와 완벽하게 호환되므로 기존 개발자들의 진입 장벽도 높지 않다. 또한 타입스크립트를 지원하는 다양한 IDE나 편집기가 존재하므로 높은 개발 생산성도 유지할 수 있다. 이미 앵귤러(Angular) 2는 메인 코드로 타입스크립트를 채택했으며 향후 타입스크립트를 채택한 프레임워크가 지속적으로 증가할 것으로 예상된다.
디자인 패턴은 안정적이고 효율적인 프로그래밍을 원한다면 반드시 알아야 할 소프트웨어 공학의 핵심 요소로 그 이유는 부차적인 설명이 필요하지 않을 듯하다. GoF가 C++로 디자인 패턴을 설명한 이래로 자바를 비롯한 다양한 언어로 디자인 패턴의 개념을 설명한 수많은 자료나 책이 존재하고 있다. 이처럼 디자인 패턴은 그야말로 시대와 언어를 뛰어넘는 프로그래밍 분야의 지혜의 산물이라 할 수 있다.
이처럼 타입스크립트와 디자인 패턴은 언어 자체와 설계 방식이라는 측면에서 각각 가장 효과적이고 범용적인 해법에 대한 고민 끝에 탄생했다는 점에서 그 목적이 서로 맞닿아 있다. 그리고 이 책에서는 차세대 타입스크립트와 전설적인 디자인 패턴의 만남을 통해 타입스크립트에 대한 이해와 더불어 최적의 설계 방식도 함께 고려하도록 한다. 따라서 책 내용에는 타입스크립트와 관련된 설치부터 배포까지 전반적인 워크플로우와 개발 프로세스에 대한 설명도 함께 포함돼 있다.
이 책의 독자는 분명 새로운 세계에 대한 호기심과 열정으로 가득 차 있음에 틀림없을 것이다. 그렇지 않다면 타입스크립트라는 새로운 언어와 디자인 패턴이라는 지혜를 배우려고 하지 않았을 테니까 말이다. 아무쪼록 그 호기심과 열정에 이 책이 마중물이 되기 바라며, 이 책의 모든 독자 분들이 자바스크립트 세상에서 과거와 현재 그리고 미래를 연결하는 주역이 되길 바란다.
우리 모두 자바스크립트의 미래, 타입스크립트에서 만나자!

옮긴이 소개

홍영표

카이스트 경영대학에서 정보경영 석사과정을 졸업했다(최우등 졸업). 현재 금융 회사에서 IT 전략기획과 아키텍처 업무를 담당하고 있다. 저서로는 『기술, 경영을 만나다: 기술의 가치를 높이는 경영의 정석』(에이콘, 2016)이 있으며, 옮긴 책으로는 에이콘출판사에서 출간한 『아이폰&아이패드 인 액션』(2011), 『Professional iPhone and iPad Database Application Programming 한국어판』(2012), 『HTML5+CSS3+자바스크립트의 정석』(2012), 『HTML & CSS』(2012), 『The Modern Web』(2014)과 『스프링 인 액션 제3판』(제이펍, 2012), 『제이콥 닐슨의 모바일 사용성 컨설팅 보고서』(제이펍, 2013) 등이 있다.

목차

목차
  • 1장. 도구와 프레임워크
    • 사전 설치사항
      • Node.js 설치
      • 타입스크립트 컴파일러 설치
    • 유용한 편집기 선정
      • Visual Studio Code(이하 VSC)
      • 서브라임 텍스트 + 타입스크립트 플러그인
      • 다른 편집기와 IDE 선택
    • 워크플로우 작업
      • 타입스크립트 프로젝트 구성
      • typings를 이용한 선언 다운로드
      • 선언 파일 다운로드
      • 모카와 이스탄불을 이용한 테스트
      • 카르마를 이용한 실제 브라우저에서의 테스트
      • npm을 이용한 명령 통합
      • 기타 유용한 빌드 도구에 관해
    • 요약

  • 2장. 복잡성 증가에 대한 도전
    • 기본사항 구현
      • 코드 기반 생성
      • 동기화 할 데이터의 초기 구조 정의
      • 타임스탬프를 비교하여 데이터 가져오기
      • 양방향 동기화
      • 기본 구현 과정에서 잘못된 점
    • 기능 추가
      • 여러 항목 동기화
      • 여러 타입의 데이터 동기화
      • 증분 데이터를 이용한 멀티 클라이언트 지원
      • 더 많은 충돌 병합 지원
      • 전체 구현 과정에서 잘못된 점
    • 문제 해결
      • 추상화 찾기
      • 전략 구현
      • 저장소 래핑
    • 요약

  • 3장. 생성 디자인 패턴
    • 팩토리 메서드
    • 추상 팩토리
    • 빌더
    • 프로토타입
    • 싱글톤
      • 기본 구현
      • 조건부 싱글톤
    • 요약

  • 4장. 구조 디자인 패턴
    • 컴포지트 패턴
    • 데코레이터 패턴
    • 어댑터 패턴
    • 브릿지 패턴
    • 퍼사드 패턴
    • 플라이웨이트 패턴
    • 프록시 패턴
    • 요약

  • 5장. 행동 디자인 패턴: 1부
    • 책임 연쇄 패턴
    • 명령 패턴
    • 메멘토 패턴
    • 반복자 패턴
    • 중재자 패턴
    • 요약

  • 6장. 행동 디자인 패턴: 2부
    • 전략 패턴
    • 상태 패턴
    • 템플릿 메서드 패턴
    • 관찰자 패턴
    • 방문자 패턴
    • 요약

  • 7장. 자바스크립트 및 타입스크립트의 패턴과 아키텍처
    • 프라미스 기반 웹 아키텍쳐
      • 기존 모듈이나 라이브러리에 프라미스 적용하기
      • 익스프레스에서의 뷰와 컨트롤러
      • 응답의 추상화
      • 권한의 추상화
      • 예상되는 에러
    • 프로젝트 모듈화
    • 비동기 패턴
      • 예측 가능한 코드 작성
      • 비동기 생성 패턴
      • 비동기 미들웨어와 훅
      • 이벤트 기반 스트림 파서
    • 요약

  • 8장. SOLID 원칙
    • 단일 책임 원칙
      • 예제
      • 축 선택
    • 개방 폐쇄 원칙
      • 예제
      • 자바스크립트와 타입스크립트에서의 추상화
      • 선제적 리팩토링
    • 리스코프 치환 원칙
      • 예제
      • 치환의 제약조건
    • 인터페이스 분리 원칙
      • 예제
      • 알맞은 세분화
    • 의존 관계 역전 원칙
      • 예제
      • 계층 분리
    • 요약

  • 9장. 엔터프라이즈 애플리케이션으로 가는 길
    • 애플리케이션 생성
      • SPA와 ‘일반’ 웹 애플리케이션 사이의 결정
      • 팀 협업 고려하기
    • 프로젝트 구축과 테스트
      • 웹팩을 이용한 정적 자산 패키징
      • 프로젝트에 TSLint 추가
      • npm 스크립트로 webpack과 tslint 명령 통합
    • 버전 제어
      • 깃 플로우
      • PR 기반 코드 검토
      • 커밋 전 테스트
    • 지속적인 통합
      • 깃허브 리파지토리와 트래비스 CI 연결
    • 배포 자동화
      • 깃 서버 측 훅을 기반으로 한 수동형 배포
      • 타이머나 알림을 기반으로 한 능동형 배포
    • 요약

도서 오류 신고

도서 오류 신고

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

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

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