타입스크립트는 마이크로소프트에서 대규모 자바스크립트 개발을 위해 만든 언어로, 자바스크립트를 만들어내는 컴파일러다. 자바스크립트를 생성하기 때문에 기존 자바스크립트 라이브러리나 프레임워크를 사용하면서도 강타입을 사용한 객체지향 언어처럼 개발할 수 있다. 이 책은 타입스크립트의 기본 자료형부터 인터페이스나 클래스 같은 객체지향 기능과 데코레이터, 제네릭 같은 고급 기능까지 설명한다. 기존 자바스크립트 라이브러리를 사용하기 위한 선언 파일을 만드는 방법과 유명 라이브러리를 사용하는 데 필요한 선언 파일 사용법을 살펴보고, 앵귤러, 리액트 같은 웹 애플리케이션 프레임워크를 사용하는 다양한 예제를 살펴본다.
★ 이 책에서 다루는 내용 ★
■ 타입스크립트의 핵심과 고급 언어 기능에 대한 이해
■ 선언 파일로 기존 자바스크립트 라이브러리와 외부 프레임워크 통합
■ 제이쿼리, 백본, 앵귤러, 오렐리아, 리액트, 노드, 익스프레스 같은 유명 자바스크립트 프레임워크
■ 자스민, 프로트랙터, 셀레늄으로 만드는 애플리케이션 대규모 테스트 스위트
■ 모듈, AMD 로더, Requre, SystemJs로 애플리케이션 코드 구성
■ 의존성 주입을 비롯한 고급 객체지향 디자인 원칙
■ 오렐리아, 앵귤러, 리액트, 백본의 다양한 MVC 구현 이해와 비교
■ CSS 애니메이션을 포함해 사용자 경험을 향상한 완전한 단일 페이지 애플리케이션 제작
★ 이 책의 대상 독자 ★
타입스크립트를 배우고 싶은 자바스크립트 개발자나 기술을 향상하고 싶은 타입스크립트 경력자를 위한 책이다. 타입스크립트 언어와 컴파일러를 최대한 활용해 언어 구조, 테스트 주도 개발, 객체지향 기법을 기초부터 고급까지 배운다. 이 책은 자바스크립트 애플리케이션에 강타입, 객체지향, 디자인 모범 사례를 어떻게 도입하는지 보여준다.
★ 이 책의 구성 ★
1장, ‘타입스크립트 - 도구와 프레임워크 옵션’에서는 타입스크립트 개발 시작에 앞선 준비 과정을 다룬다. 타입스크립트 언어와 컴파일러를 사용할 때의 장점과 몇몇 유명한 IDE로 완전한 개발 환경을 설정하는 방법을 살펴본다.
2장, ‘타입, 변수, 함수 기법’에서는 기본 타입과 타입 어노테이션에서 시작해 변수, 함수, 고급 언어 기능으로 논의를 옮겨가며 타입스크립트 언어를 소개한다.
3장, ‘인터페이스, 클래스, 상속’에서는 2장에서 작업한 내용을 바탕으로 객체지향 개념과 인터페이스 기능, 클래스, 상속을 소개한다. 팩토리 디자인 패턴을 통해 개념을 보여준다.
4장, ‘데커레이터, 제네릭, 비동기 기능’에서는 데커레이터, 제네릭과 같은 고급 기능을 살펴보고 비동기 프로그래밍 개념을 살펴본다. 타입스크립트가 프라미스와 async, await 구조로 비동기 기능을 지원하는 방법을 살펴본다.
5장, ‘선언 파일 작성과 사용’에서는 단계별로 기존 자바스크립트 코드에서 선언 파일을 만드는 과정을 살펴보고 선언 파일을 작성할 때 흔히 쓰는 구문의 목록을 나열해본다. 목록의 구문은 선언 파일 구문에 대해 바로 훑어볼 수 있는 참조 가이드가 되도록 구성했다.
6장, ‘외부 라이브러리’에서는 개발 환경에서 DefinitelyTyped 저장소를 통해 선언 파일을 사용하는 방법을 살펴본다. 이어서 유명 자바스크립트 프레임워크인 백본, 앵귤러 1, ExtJs에 호환되는 타입스크립트 코드 작성 방법을 살펴본다.
7장, ‘타입스크립트 호환 프레임워크’에서는 타입스크립트와 전체 병합 가능한 유명 프레임워크를 살펴본다. MVC 개념을 살펴본 후 백본, 오렐리아, 앵귤러 2, 리액트에서 이 디자인 패턴을 어떻게 구현했는지 비교해본다.
8장, ‘테스트 주도 개발’에서는 테스트 주도 개발이 무엇인지 살펴보고 다양한 단위 테스트를 만드는 과정을 통해 안내한다. 자스민 라이브러리를 사용해 데이터 주도 테스트와 비동기 로직 테스트 방법을 보여준다. 테스트 러너, 테스트 보고 지속 통합 빌드 서버에 대해 살펴본다.
9장, ‘타입스크립트 호환 프레임워크 테스트’에서는 타입스크립트 호환 프레임워크별로 예제 애플리케이션을 만들어 단위 테스트, 통합 테스트, 인수 테스트 과정을 살펴본다. 테스트 가능성의 개념 및 애플리케이션 설계와 구현의 미묘한 변화가 애플리케이션 테스트 범위를 더 넓게 제공할 수 있음을 살펴본다.
10장, ‘모듈화’에서는 모듈이 무엇인지, 어떻게 사용하는지와 타입스크립트가 지원하는 모듈 생성 방식인 CommonJs와 AMD를 살펴본다. 이어서 Require와 SystemJs를 포함한 모듈 로더에서 모듈을 사용하는 방법을 보여준다. 노드에서 모듈 사용법을 자세히 살펴보고 예제 익스프레스 애플리케이션을 만들면서 마무리한다.
11장, ‘객체지향 프로그래밍’에서는 객체지향 프로그래밍 개념에 대해 살펴보고 객체지향 원칙에 맞게 애플리케이션 컴포넌트를 정리하는 방법을 보여준다. 복잡한 UI 상호작용을 상태 패턴과 중재자 패턴으로 구현하는 객체지향 모범 사례도 자세히 살펴본다.
12장, ‘의존성 주입’에서는 서비스 로케이션과 의존성 주입 개념 그리고 어떻게 일반적인 애플리케이션 설계 문제를 해결하는지 살펴본다. 데커레이터로 간단한 의존성 주입 프레임워크를 구현하는 방법을 보여준다.
13장, ‘애플리케이션 만들기’에서는 노드와 익스프레스에서 생성한 HTML, REST 목적지 작성 및 사용, 데이터 연동을 포함한 웹 애플리케이션 개발의 핵심 부품을 만든다. 오렐리아, 앵귤러 2, 리액트에 익스프레스 서버, REST 목적지, 데이터 연동을 통합하는 방법을 보여준다.
14장, ‘손에 흙 묻히기’에서는 책 전체를 통해 익힌 개념과 만들었던 컴포넌트를 조합해 앵귤러 2와 익스프레스 단일 페이지 애플리케이션을 만든다. 애플리케이션에는 테스트 주도개발, 상태 패턴과 중재자 패턴, 익스프레스 REST 목적지, 객체지향 원칙, 모듈화, CSS 애니메이션 개념이 포함된다.