타입스크립트 2.X
Description
TypeScript, Angular를 사용한 웹 애플리케이션 개발부터 NativeScript를 활용한 네이티브 앱 변환과 Azure 클라우드에서 서비스 생성까지 그대로 따라하며 개발하기
이 책은 TypeScript 개발을 가장 실용적으로 시작하는 방법을 알려준다. 두 개의 흥미로운 프로젝트를 처음부터 개발하며 TypeScript의 기초를 다지고 함수, 제네릭, 프로미스, 콜백과 같은 기능을 배우게 된다. 객체지향 방식으로 프로그래밍을 하고 효율적으로 메모리를 관리하는 방법에 대해서 배운다. 또한 제작한 애플리케이션을 배포하기 전에 테스트하는 방법에 대해서도 설명한다. Angular를 사용해 단일 페이지 애플리케이션(SPA)을 만들고, 이렇게 만든 웹 애플리케이션을 NativeScript를 사용해 네이티브 앱으로 변환한다. 마지막으로 애플리케이션을 실제 서비스하기 위해 Azure 클라우드 플랫폼에 배포하는 방법을 다룬다. 이러한 과정은 사전지식 없이도 이해할 수 있도록 기초부터 자세히 설명한다. 이 책을 읽고 나면 두 개의 기본적인 기능이 모두 포함된 프로젝트를 얻을 수 있을 뿐 아니라, 다음 단계로 나아갈 수 있는 다양한 기본 기술을 연마하게 된다.

● Visual Studio Code에서 첫 번째 프로젝트 설계하기
● TypeScript의 데이터 타입 이해하기
● TypeScript를 사용해 객체지향 방식으로 웹 애플리케이션 만들기
● TypeScript의 고급 기능을 사용해 Trello 일정관리 애플리케이션 만들기
● Jasmine과 Karma 테스팅 도구를 사용해 단위 테스트하기
● Azure 클라우드에 리소스를 할당하고 웹 애플리케이션 배포
저자

사친오흐리

웹기반기술에깊은관심을가진기술아키텍트로10년넘게닷넷,JavaScript,Durandal,Angular,TypeScript와같은기술을사용하여웹애플리케이션을개발하고있다.Fortune500대기업에설계디자인,기술지원,개발전문가이드를포함한기술솔루션을제공하고있다.새로운언어와기술을배우는것을즐기는폴리글랏개발자(여러언어를구사하는개발자)이다.
최근에는마이크로소프트Azure를사용한클라우드기반의웹애플리케이션개발에관심을가지고있으며,MicrosoftAzureArchitect,MicrosoftASP.NETMVCWebApplication,MicrosoftProgrammingwithC#과같은다양한마이크로소프트자격증을가지고있다.

목차

Chapter1>>>TypeScript시작하기
JavaScript의현재
JavaScript의좋지않은부분
기능
타입유추(TypeInference)
배열
동등비교(Equalitycomparision)
Nullorundefined
TypeScript구조대
TypeScript의장점
TypeScript와JavaScript비교
JavaScript의대안
TypeScript기능
주요기능
데이터타입
제어흐름분석(Controlflowanalysis)
캡슐화
상속
인터페이스
쉐이프(Shape)
데코레이터
TypeScript문법과키워드
설치와설정
TypeScript설치
TypeScript에디터
VisualStudio
VSCode
TypeScript컴파일러
TypeScriptTODO목록애플리케이션
todo.ts
TypeScript의클래스
TypeScript의함수
TypeScript코드디버깅
놀이터(Playground)
요약

Chapter2>>>첫번째애플리케이션.SportNewsCombinator
SportsNewsCombinator.SNC
코드다운로드
SNC의기능
타입시스템(TypeSystem)
변수
var키워드
let과const키워드
TypeScript의타입
타입어노테이션
원시타입
배열
튜플형(Tuple)
Any
Void
Null과undefined
유니온타입(Uniontypes)
타입추론(TypeInference)
타입체크
TypeScript의클래스
TypeScript의객체지향프로그래밍
클래스의이해
접근제어자(accessmodifier)
클래스에서변환된JavaScript
SNC.개요
Angular.superhero프레임워크
SPA
Angular.개념
Angular.아키텍쳐
SNC.아키텍쳐
SNC.코드설정
AngularCLI셋업
애플리케이션셋업
SNC.폴더구조
모델만들기
첫번째컴포넌트.NewsComponent
템플릿
컴포넌트클래스
컴포넌트메타데이터
Import
newsComponent
newsComponent비즈니스로직
newsComponenttemplate로직
SNC-코드실행
요약

Chapter3>>>SportsNewsCombinator-기능추가
함수
함수의타입
선택적(Optional)/기본(default)파라미터
나머지(Rest)파라미터
함수오버로딩
타입스크립트의클래스
클래스정의
생성자
프로퍼티와메서드
상속
추상(Abstract)클래스
인터페이스
인터페이스정의
덕타이핑(ducktyping)
인터페이스확장
인터페이스구현
SNC에기능추가
모델재구성
코어컴포넌트
템플릿과삽입식(interpolation)
Angular의지시자로드절차
요약

Chapter4>>>SportsNewsCombinator
데코레이터
데코레이터디자인패턴
TypeScript데코레이터
SNC데코레이터
SNC추가기능
SNC에서비스추가
SNC에서HTTP호출구현
SNC라우팅
최종프로덕트
요약

Chapter5>>>두번째애플리케이션.트렐로
트렐로예제애플리케이션소개
애플리케이션개요
기술개요
TypeScript네임스페이스와모듈
유니버설네임스페이스
TypeScript네임스페이스
TypeScript모듈
TypeScript제네릭
정의
함수
클래스
제네릭제약
트렐로예제애플리케이션
애플리케이션아키텍쳐
코드설정
트렐로홈페이지
모델
홈페이지컴포넌트
홈페이지.데이터초기화
홈페이지.템플릿
홈페이지.새로운보드추가
애플리케이션실행
트렐로-보드컴포넌트
라우팅
보드컴포넌트.데이터추출
보드컴포넌트.자식컴포넌트에데이터전달하기
요약

Chapter6>>>트렐로에기능추가하기
반복자(iterator)
JavaScript반복자
TypeScript반복자
TypeScriptfor...of와for...in루프
TypeScript를이용한비동기프로그래밍
콜백함수
프로미스(Promise)
Async-await
예제트렐로애플리케이션에기능추가
예제트렐로에서프로미스사용하기
프로미스구현
홈페이지컴포넌트에서호출하기
기능구현
구현.새로운작업추가
구현.새로운하위작업추가하기
보드,작업,하위작업의제목변경하기
Angular의데이터포맷팅
내장파이프
사용자정의파이프
Angular의존성주입이해하기
의존성관리
요약

Chapter7>>>트렐로애플리케이션테스트
기본개념
테스트의어려움
테스트기반개발
단위테스트vs종단간테스트(end-to-endtest)
테스트구조
테스트도구
자스민(Jasmine)
카르마(Karma)
자스민과카르마설치및설정
테스트프로젝트의폴더와파일구조
파이프용테스트작성하기
새로운파일생성
테스트케이스작성
테스트케이스실행
서비스클래스를위한테스트케이스작성
새로운파일생성
테스트케이스작성
독립된컴포넌트의테스트케이스작성
새로운파일작성
테스트케이스작성
테스트케이스구현
통합컴포넌트를위한테스트케이스작성
통합테스트설정
테스트케이스구현
다른컴포넌트를위한테스트케이스
요약

Chapter8>>>트렐로.AngularCLI사용하기
AngularCLI소개
AngularCLI설정
AngularCLIhelp명령어
AngularCLI로애플리케이션만들기
파일개요
ngnew.플래그와커스터마이징
앱커스터마이징
AngularCLI파일
애플리케이션용파일만들기
컴포넌트만들기
서비스생성
파이프생성
모듈생성
TypeScript파일생성
Angular앱빌드
빌드프로세스
dev모드로애플리케이션빌드
상용모드에서애플리케이션빌드
Angular앱구동
ngserve옵션
Angular애플리케이션린팅
린팅규칙
린팅옵션
트렐로애플리케이션린팅
AngularCLI를사용한코드커버리지
트렐로애플리케이션코드커버리지
요약

Chapter9>>>트렐로모바일.NativeScript사용하기
NativeScript란?
NativeScript디자인
NativeScriptvs웹애플리케이션
NativeScript환경설정
NativeScriptCLI
모바일플랫폼의존성설치
NativeScript를사용한예제트렐로애플리케이션개발
애플리케이션골격생성
NativeScript애플리케이션기본폴더구조
홈페이지컴포넌트개발
기존컨텐츠제거
트렐로보드모델
트렐로서비스구현
홈페이지컴포넌트구현
홈페이지컴포넌트연결
지금까지의애플리케이션검토
run명령어실행
애플리케이션디버깅
보드컴포넌트개발
보드컴포넌트템플릿
보드컴포넌트라우팅변경
코드실행
NativeScriptUI엘리먼트
요약

Chapter10>>>마이크로소프트Azure를사용해서예제트렐로를
클라우드에배포하기
배포플랫폼으로서의Azure클라우드
클라우드플랫폼의장점
마이크로소프트Azure배포옵션
FTP를사용한예제트렐로웹앱서비스배포
웹앱서비스관리
트렐로예제애플리케이션배포
웹앱서비스GitHub를사용한예제트렐로배포
GitHub통합
애플리케이션실행
지속적인배포와모니터링
요약

AppendixA>>>부록
1.비주얼스튜디오코드에서TypeScript디버깅하기
2.TypeScript2.8소개
3.TypeScript2.9소개

찾아보기

출판사 서평

1장“TypeScript시작하기”
TypeScript와그기능에대해서설명한다.기본적인TypeScript기능에대한이해를돕기위해간단한TODO애플리케이션을만들어본다.

2장“첫번째애플리케이션?SportsNewsCombinator”
TypScript와Angular의기본개념에대해소개한다.TypeScript의타입에대해알아보고Angular애플리케이션을설정하는방법과함께컴포넌트의개념에대해알아본다.

3장“SportNewsCombinator?기능추가”
인터페이스,클래스,객체지향프로그래밍과같은TypeScript의중요개념을다룬다.Angular의데이터바인딩,지시자,템플릿에대해서도알아본다.

4장“SportsNewsCombinator?최종버전”
최종기능을추가하고데코레이터,의존성주입,라우팅,그리고RxJSobservable을사용한HTTP호출을다룬다.

5장“두번째애플리케이션?Trello”
두번째애플리케이션으로이애플리케이션을통해TypeScript의제네릭,네임스페이스,모듈에대해살펴본다.또한Angular의컴포넌트간통신이나생명주기후킹과같은고급기능에대해서도살펴본다.

6장“Trello?기능추가”
TypeScript와Angular의기능에대해깊이있게설명한다.반복자와콜백,promise,observable을사용한비동기프로그래밍에대해다룬다.Angular의파이프와의존성주입에대해살펴본다.

7장“Trello애플리케이션테스트”
Angular에서제공하는테스트기능을소개한다.서비스,파이프,컴포넌트의단위테스트를살펴본다.

8장“AngularCLI를이용한Trello”
AngularCLI와세부기능들을소개한다.새로운애플리케이션,컴포넌트,서비스,파이프,클래스와인터페이스를만드는방법을배운다.그다음Angular기반의웹애플리케이션을빌드하고서버를띄우고유지보수하는것에초점을두고살펴본다.

9장“NativeScript를사용한Trello모바일”
웹애플리케이션을네이티브모바일애플리케이션으로변환하도록한다.NativeScript프레임워크를살펴보고어떻게우리의웹애플리케이션을안드로이드나iOS애플리케이션을만들수있는지살펴본다.

10장“Trello예제를마이크로소프트Azure클라우드에배포하기”
클라우드배포플랫폼에대해설명한다.PaaS(PlatformasaService)배포환경인Azure에대해알아보고,FTP와GitHub를사용해배포한다.또한Azure가어떻게지속적으로앱을배포하도록도와주는지살펴본다.