장바구니 담기 close

장바구니에 상품을 담았습니다.

타입스크립트 퀵스타트

타입스크립트 퀵스타트 차세대 자바스크립트로 시작하는 대규모 웹 애플리케이션 개발

  • 정진욱
  • |
  • 루비페이퍼
  • |
  • 2018-04-16 출간
  • |
  • 606페이지
  • |
  • 172 X 234 X 32 mm /1018g
  • |
  • ISBN 9791186710302
판매가

32,000원

즉시할인가

28,800

카드할인

0원(즉시할인 0%)

적립금

1,600원 적립(5%적립)

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

추가혜택

네이버페이 무조건 1%적립+ 추가 1%적립

수량
+ -
총주문금액
28,800

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




프로젝트에 타입 안전성과 개발 생산성을 고려한다면

타입스크립트는 마이크로소프트에서 만든 차세대 자바스크립트입니다. 구글이나 마이크로소프트 같은 세계적인 IT 회사에서 자사의 제품 개발 언어로 타입스크립트를 채택해 사용하고 있고, Angular, Ionic 등과 같은 유명 오픈소스 프로젝트에서도 차기 프로젝트의 주력 언어로 타입스크립트를 선택했습니다.

타입스크립트는 ECMAScript 표준을 기반으로 자바스크립트 문법을 지원하고 자바스크립트 생태계를 포함해 발전하고 있습니다. 타입스크립트는 타입 시스템을 기반으로 수준 높은 인텔리센스 환경을 지원하고, 오류 없는 애플리케이션을 개발할 수 있게 합니다. 또한, 객체지향 프로그래밍과 모듈화를 지원함으로써 자바스크립트에서 경험하지 못했던 놀라운 생산성을 바탕으로 대규모 웹 애플리케이션을 빠르게 개발할 수 있습니다.

※ 이 책에서 다루는 내용
- 타입스크립트 개발 환경과 개발 도구
- 타입스크립트의 타입 시스템과 최신 ECMAScript 소개
- 타입스크립트 기반의 객체지향 프로그래밍과 모듈화
- 태스크러너와 결합한 서버와 클라이언트의 프로젝트 환경 구축 및 테스트
- 타입스크립트와 외부 라이브러리를 연동한 활용 예제

※ 이 책의 대상 독자
- 웹 언어를 처음 배울 때 자바스크립트 대신 타입스크립트로 시작하고 싶은 학생이나 개발자(단, 다른 프로그래밍 언어 경험자)
- 타입스크립트의 기본기를 갖추려는 개발자
- 타입스크립트를 주력 언어로 사용하는 Angular나 Ionic 등을 활용하는 개발자

※ 이 책의 구성
1. 타입스크립트 소개
타입스크립트가 지원하는 ECMAScript에 대해 소개하고 타입스크립트가 개발된 배경과 특징, 아키텍처, 컴파일 및 실행 절차 그리고 타입스크립트의 생태계를 살펴봄으로써 타입스크립트를 왜 배워야 하는지와 앞으로의 가능성에 대해 가늠해 봅니다. 또한, Node.js와 타입스크립트를 설치해 기본적인 개발환경을 구축하고, 프로젝트 구성과 컴파일을 위한 각종 설정을 살펴봅니다. 그리고 이 책에서 주로 사용하는 비주얼스튜디오 코드(VSCode)에서 타입스크립트 개발 환경을 구성해봅니다.

2. 타입스크립트 기초
타입스크립트의 기본 타입과 문법을 소개합니다. 기본적인 변수 선언법을 소개하면서 스코프와 호이스팅에 관해 알아보고, 타입스크립트에서 사용하는 타입의 종류와 타입 선언, 타입 검사 등에 관해 자세하게 살펴봅니다. 그리고 제어문, 연산자(디스트럭처링 포함), 함수(익명, 화살표 함수 포함) 등 기존 자바스크립트 문법이 타입스크립트에서 어떻게 활용되는지 또는 달라지는지 확인할 수 있습니다. 문법을 설명할 때는 대부분 기존 자바스크립트 문법을 활용하지만, 타입스크립트만의 특성에 초점을 두어 설명합니다. 즉, 반복적인 로직을 설명하기보다 타입 시스템을 사용함으로써 달라지는 점이 무엇인지 알 수 있도록 구성했습니다.

3. 기본기 향상하기
대규모 웹 애플리케이션 개발을 쉽게 하는 객체지향 기법을 자세하게 다룹니다. 타입스크립트는 자바스크립트보다 객체지향 프로그래밍을 더 확실하게 지원합니다. 이러한 특징들을 하나씩 살펴보고, 클래스와 상속, 접근 제한자, 추상 클래스와 메서드, 인터페이스, 모듈, 네임스페이스 등 객체지향 프로그래밍의 기본부터 고급까지 다룹니다.

4. 깊이 살펴보기
타이스크립트의 핵심인 타입에 대해 더 깊이 알아봅니다. 타입스크립트의 고급 타입과 타입 변환, 캐스팅, 에일리어싱, 추론, 어설션, 타입 호환 등을 다룹니다. 그리고 제네릭과 비동기 처리(프로미스, RxJS, Async/Await) 등 고급 주제도 비중 있게 다룹니다.

5. 프로젝트 구성 및 응용
지금까지 배운 내용을 바탕으로 북마크 애플리케이션의 서버와 클라이언트를 동시에 개발해봅니다. 여기서는 서드 파티 라이브러리 등을 활용하는 방법과 타입 정의 파일에 관해 알아보고, 프로젝트 번들링과 함께 jQuery나 AngularJS 같은 라이브러리에 기반을 둔 프로젝트 구성 방법을 알아봅니다. 북마크 애플리케이션을 개발할 때는 프로젝트 구성과 공통 API 정의부터 Node.js로 서버 구축, 화면과 로직 개발, 웹팩을 이용한 번들링, 그런트를 이용한 자동 컴파일 환경 등을 구축해봅니다. 그리고 Mocha의 TDD와 BDD 테스팅에 관해 알아보고 Gulp를 이용한 테스트 환경을 구축해 클래스 모듈, 네임스페이스, DOM 테스트를 실습해봅니다.

※ 예제 소스 내려받기: https://github.com/happygrammer/typescript
장별로 구성된 프로젝트 폴더에 책의 모든 예제를 쉽게 따라 해 볼 수 있도록 전체 소스를 제공하고 책에서 상세하게 안내합니다. 이 책에 담긴 소스는 타입스크립트 2.7.2, Node.js: 8.9.4로 실습하고 테스트했습니다.


목차


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 테스트

부록 _ 타입스크립트 컴파일 옵션

저자소개

저자: 정진욱
KT 융합기술원에서 지능형 대화비서(GiGA Genie Assistant)를 연구하고 있다. 온라인에서는 '해피그래머'라는 필명으로 활동 중이다. 개발 경험을 나누고 함께 성장하기 위한 커뮤니티 활동에 관심이 많다. 저서로 "쉽고 빠르게 배우는 Angular 2 프로그래밍(2016, 위키북스)"이 있고 역서로 "Go 웹프로그래밍(2017, 비제이퍼블릭)"이 있다. 저자는 사용자의 고민을 덜어줄 최고의 인공지능 서비스를 개발하는 것이 꿈이다. 이 꿈을 이루는 날까지 도전과 열정을 잃지 않을 것이다.   

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.