타입스크립트 퀵스타트
도서명:타입스크립트 퀵스타트
저자/출판사:정진욱/루비페이퍼
쪽수:606쪽
출판일:2018-04-16
ISBN:9791186710302
목차
1장 타입스크립트 소개
1.1. ECMA스크립트와 타입스크립트
1.1.1. ECMA스크립트의 역사
1.1.2. ECMA스크립트를 지원하는 타입스크립트
1.2. 타입스크립트 개요
1.2.1. 타입스크립트의 특징
1.2.2. 타입스크립트의 도구 지원
1.2.3. 타입스크립트의 역사
1.2.4. 타입스크립트의 아키텍처
1.2.5. 타입스크립트 컴파일러
1.2.6. 타입스크립트와 다른 언어 간 비교
1.2.7. 타입 시스템 간 비교
1.3. 타입스크립트의 생태계
1.3.1. 타입스크립트의 인기
1.3.2. 타입스크립트 기반 프레임워크
2장 개발 환경 구축
2.1. 타입스크립트 설치
2.1.1. Node.js 소개와 설치
2.1.2. NPM의 이해
2.1.3. NPM을 이용한 타입스크립트 설치와 업데이트
2.2. 타입스크립트 실행과 프로젝트 구성
2.2.1. Hello TypeScript! 출력
2.2.2. tsc 명령어와 컴파일 옵션
2.2.3. tsconfig.json 파일을 이용한 컴파일
2.2.4. ts-node 모듈을 이용한 컴파일과 실행
2.3. 타입스크립트의 개발 도구
2.3.1. VSCode 소개
2.3.2. VSCode의 설치
2.3.3. VSCode의 사용자 인터페이스
2.3.4. 태스크러너 설정
2.3.5. 타입스크립트의 확장 기능
3장 변수 선언과 기본 타입
3.1. 변수 선언
3.1.1. var 선언자의 특징
3.1.2. let 선언자의 특징
3.1.3. 상수 선언
3.2. 타입 검사와 타입 선언
3.2.1. 점진적 타입 검사
3.2.2. 자바스크립트의 동적 타이핑
3.2.3. 타입 계층도
3.2.4. 변수에 타입 지정
3.3. 자바스크립트의 타입
3.3.1. 자바스크립트의 내장 타입
3.3.2. symbol 타입
3.3.3. enum 타입
3.4. 타입스크립트의 내장 타입
3.4.1. any 타입
3.4.2. 배열 타입과 제네릭 배열 타입
3.4.3. 튜플 타입
3.4.4. void, null, undefined
4장 제어문
4.1. 조건문의 타입 제약과 폴스루
4.1.1. if 문 사용 시 타입 제약
4.1.2. switch 문과 폴스루
4.2. 반복문의 다양한 사용법
4.2.1. for 문과 이터러블 객체
4.2.2. while 문과 do-while 문
5장 연산자
5.1. 기본 연산자
5.1.1. 산술 연산자
5.1.2. 비교, 논리, 조건 연산자
5.2. 디스트럭처링
5.2.1. 객체 디스트럭처링
5.2.2. 배열 디스트럭처링
5.3. 전개 연산자
5.3.1. 전개 연산자를 이용한 배열 요소 확장
5.3.2. 전개 연산자를 이용한 객체 요소 확장
6장 함수
6.1. 타입스크립트 함수 사용
6.1.1. 자바스크립트 함수
6.1.2. 타입 안전성을 갖춘 타입스크립트 함수
6.2. 매개변수의 활용
6.2.1. 기본 초기화 매개변수
6.2.2. 나머지 매개변수
6.2.3. 선택 매개변수
6.2.4. 함수 오버로드
6.3. 익명 함수의 이해와 활용
6.3.1. 익명 함수와 화살표 함수
6.3.2. 익명 함수의 함수 타입
6.3.3. 콜백 함수의 타입 선언과 활용
7장 클래스와 인터페이스
7.1. 객체지향 프로그래밍과 클래스 기초
7.1.1. 타입스크립트의 객체지향 프로그래밍 지원
7.1.2. 클래스 선언과 객체 생성
7.1.3. 상속 관계와 포함 관계
7.1.4. 접근 제한자의 사용법
7.1.5. 추상 클래스를 이용한 공통 기능 정의
7.2. 인터페이스에 대한 이해
7.2.1. 인터페이스 소개
7.2.2. 인터페이스의 역할과 컴파일 결과 분석
7.2.3. 클래스를 배열 요소 타입으로 지정함
7.2.4. 인터페이스를 배열 타입으로 지정함
7.2.5. 인터페이스에 함수 타입을 정의하기
7.3. 클래스와 인터페이스의 활용
7.3.1. 오버라이딩으로 메서드를 재정의하기
7.3.2. 오버로딩을 구현하는 여러 방법
7.3.3. 클래스와 인터페이스 기반의 다형성 구현하기
7.3.4. 클래스에서 getter와 setter
7.3.5. 정적 변수와 정적 메서드
7.3.6. readonly 제한자의 활용
8장 모듈
8.1. 모듈에 대한 이해
8.1.1. 모듈에 대한 이해와 필요성
8.1.2. 내부 모듈과 외부 모듈
8.2. 네임스페이스
8.2.1. 네임스페이스에 대한 이해
8.2.2. 한 파일에 여러 네임스페이스 선언하기
8.2.3. 네임스페이스 하나를 여러 파일에 선언하기
8.2.4. 네임스페이스 모듈
8.2.5. 네임스페이스의 이름 확장
8.2.6. 브라우저에서 네임스페이스의 모듈 호출
8.3. 모듈의 이해와 사용
8.3.1. 모듈 선언과 모듈 임포트
8.3.2. 모듈을 개별적으로 노출하고 사용하기
8.3.3. 여러 모듈을 함께 export하기
8.3.4. 모듈을 재노출해 사용하기
8.3.5. 디폴트 모듈의 이해와 사용법
8.4. 모듈 시스템
8.4.1. 모듈 로더와 모듈 형식
8.4.2. 모듈 형식에 맞춰 컴파일하기
8.4.3. 특정 모듈 형식을 실행하기 위한 준비
8.5. 각종 모듈 형식에 대한 소개
8.5.1. ES2015 모듈 형식
8.5.2. CommonJS 모듈 형식
8.5.3. AMD 모듈 형식
8.5.4. UMD 모듈 형식
8.5.5. SystemJS 모듈 형식
09 고급 타입
9.1. 유니언 타입과 타입 가드
9.1.1. 유니언 타입
9.1.2. 타입 가드
9.2. 알아두면 쓸모 있는 고급 타입들
9.2.1. 문자열 리터럴 타입
9.2.2. 룩업 타입
9.2.3. non-nullable 타입
9.2.4. 네버 타입
9.2.5. this 타입
10장 타입 선언과 변경, 타입 호환
10.1. 타입 선언과 변경
10.1.1. 타입 에일리어스
10.1.2. 타입 추론
10.1.3. 타입 캐스팅, 변환, 어설션
10.2. 타입 호환
10.2.1. 프로그래밍 언어의 타입 시스템
10.2.2. 덕 타이핑
10.2.3. 구조 타이핑
10.2.4. 구조 서브타이핑
10.2.5. 명목 타이핑
11장 제네릭
11.1. 제네릭 소개
11.1.1. any로 타입을 느슨하게 만들기
11.1.2. 제네릭 소개
11.2. 제네릭 함수
11.2.1. 제네릭 함수 선언
11.2.2. 타입 매개변수의 확장
11.3. 제네릭 클래스와 인터페이스
11.3.1. 제네릭 클래스 선언
11.3.2. 타입 매개변수에 인터페이스를 상속하기
11.4. 제네릭의 여러 활용 방법
11.4.1. 룩업 타입을 제네릭 클래스에 적용
11.4.2. 인터페이스를 상속해 제네릭 확장하기
11.4.3. 맵 객체의 선언과 타입 지정 방법
11.4.4. 제네릭 기반의 자료구조 만들기
12장 비동기 처리
12.1. 프로미스를 이용한 제어 흐름 개선
12.1.1. 비동기 호출 시 중첩 스코프의 문제
12.1.2. 프로미스 소개와 동작 과정
12.1.3. 타입스크립트에서 프로미스 컴파일 방법
12.1.4. 프로미스를 사용한 중첩 스코프 개선
12.1.5. 프로미스의 비동기 호출 제어
12.2. RxJS를 활용한 데이터 스트림 처리
12.2.1. 반응형 프로그래밍
12.2.2. RxJS 소개와 설치
12.2.3. 데이터 스트림과 연산자에 대한 이해
12.2.4. RxJS 연산자를 활용한 데이터 스트림 처리
12.3. 동시성을 활용한 비동기 호출 제어
12.3.1. 동시성과 동기화 작업
12.3.2. Async/Await 소개와 설정
12.3.3. Async/Await를 이용한 동기화
13장 서드 파티 라이브러리와 타입 정의 파일
13.1. 서드 파티 라이브러리
13.1.1. 타입스크립트의 서드 파티 라이브러리
13.1.2. 타입 정의 파일에 대한 저장소
13.2. 라이브러리와 타입 정의 파일 설치하기
13.2.1. 타이핑을 이용한 타입 정의 파일 설치(1.x 버전)
13.2.2. 패키지로 내려받아 타입 정의 파일 설치(2.x 버전)
13.3. 타입 정의 파일
13.3.1. 타입 정의 파일 소개
13.3.2. 타입 정의 파일 작성 시 앰비언트 선언
13.3.3. 자바스크립트 라이브러리 호출
13.3.4. 라이브러리 호출 시 d.ts 파일 사용
13.3.5. 타입스크립트의 네이티브 d.ts 파일
14장 프로젝트 구성과 번들링
14.1. 타입스크립트 프로젝트의 번들링
14.1.1. 번들러를 이용한 번들링
14.1.2. 웹팩을 이용한 번들링 작업
14.1.3. 웹팩 설정 파일을 이용한 번들링
14.1.4. 타입스크립트 로더 설정과 웹팩 실행
14.2. 라이브러리에 기반한 프로젝트 구성
14.2.1. jQuery 기반 프로젝트의 구성과 실습
14.2.2. AngularJS 기반 프로젝트의 구성과 실습
14.2.3. 스타터킷과 CLI
15장 북마크 애플리케이션 개발
15.1. 타입스크립트만으로 서버와 클라이언트를 동시에 개발하기
15.1.1. 동형 타입스크립트
15.1.2. 북마크 애플리케이션 소개
15.2. 프로젝트 구성과 공통 API 정의
15.2.1. 프로젝트 디렉터리의 구조
15.2.2. 프로젝트 관련 패키지 설치와 설정
15.3. 프로젝트에서 사용할 기본 서버 개발
15.3.1. Node.js 기반의 서버 개발
15.3.2. 라우팅 처리 클래스의 개발
15.4. 타입스크립트를 이용한 클라이언트 개발
15.4.1. 북마크 애플리케이션의 화면 개발
15.4.2. 북마크 애플리케이션의 메인 로직 개발
15.4.3. 웹팩을 이용한 북마크 애플리케이션 번들링
15.5. 타입스크립트를 이용한 서버 개발
15.5.1. MVC 모델
15.5.2. 모델 클래스의 개발
15.5.3. 컨트롤러 클래스의 개발
15.5.4. 정적 파일이 담길 디렉터리와 뷰 엔진 설정
15.5.5. 응답 시 사용할 뷰 템플릿 정의
15.6. 그런트를 이용한 자동 컴파일 환경 구축
15.6.1. 태스크 러너를 이용해 단위 작업을 자동화하기
15.6.2. 그런트 설치와 태스크 패키지 설치
15.6.3. 그런트 설정 파일에 웹팩 작업을 등록
15.6.4. 그런트 설정 파일에 타입스크립트 컴파일 작업 등록
15.6.5. 그런트 설정 파일에 파일 복사 작업 등록
15.6.6. 그런트 설정 파일에 동시성 설정
15.6.7. 그런트 설정 파일에 감시 작업 등록
15.6.8. 브라우저 동기화 작업 설정
15.6.9. 북마크 애플리케이션의 실행 결과 확인
16장 테스팅
16.1. 테스팅에 대한 전반적인 소개
16.1.1. 테스팅의 필요성
16.1.2. TDD와 단위 테스팅
16.1.3. BDD와 BDD 테스팅
16.2. 테스트 환경 구축
16.2.1. 테스트에 필요한 패키지 설치
16.2.2. 모카의 TDD와 BDD 스타일에 대한 이해
16.2.3. 걸프를 이용한 테스트 환경 구축
16.3. 테스트 실습
16.3.1. 클래스 모듈에 대한 테스트
16.3.2. 네임스페이스를 고려한 테스트
16.3.3. DOM 테스트
부록 _ 타입스크립트 컴파일 옵션