타입스크립트 디자인 패턴 [차세대 자바스크립트 표준으로 배우는 핵심 소프트웨어 아키텍처]
- 원서명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장, ‘엔터프라이즈 애플리케이션으로 가는 길’에서는 테스트와 지속적인 통합을 포함하여 확장 준비가 된 애플리케이션의 전체 워크플로우를 구축하도록 안내한다.
목차
목차
- 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 연결
- 배포 자동화
- 깃 서버 측 훅을 기반으로 한 수동형 배포
- 타이머나 알림을 기반으로 한 능동형 배포
- 요약
- 애플리케이션 생성