쉽게 시작하는 타입스크립트

장기효 (지은이) | 길벗 | 2023년 6월 정가 36,000원 판매가 32,400원 배송비 0원 (0원 이상 무료) 페이지 512쪽 판형 183*235mm 973g ISBN 9791140704750 상태 새책 or 중고 수량 합계 32,400

책소개

8000명 이상의 수강생이 인정한 인프런 인기 강의를 책으로 만난다. ‘캡틴판교’와 함께 타입스크립트를 쉽게 시작해 보자. 타입스크립트는 자바스크립트에 타입을 부여한 언어로, 타입 시스템을 사용하여 표현력이 우수하고, 프로그램의 대규모 확장에도 대응할 수 있으며, 안전하고 효율적인 코드를 작성하게 도와 준다.

이 책은 이러한 장점을 가진 타입스크립트를 처음 배우는 사람을 위한 책으로, 짧은 개념 설명과 작은 예제를 반복하면서 타입스크립트를 모르는 사람도 쉽게 배울 수 있게 구성했다. 어느 정도 배운 뒤에는 실습 프로젝트를 제공하여 지루할 틈 없이 모든 내용을 학습하도록 이끈다. 특히, 오랜 강의와 개발 경력을 통해 얻은 노하우 및 수많은 수강생들의 질문들을 이 책에 충분히 녹여냈다. 타입스크립트를 학습하고 싶은 모든 분에게 추천한다.

저자소개

장기효 (지은이)  
신간알리미 신청
장기효(지은이)의 말
타입스크립트가 세상에 나온 지 벌써 10년이 넘었습니다. 10년이 넘는 긴 시간 동안 누군가에게는 숙련된 개발자로 보일 수 있는 도구로, 취업 가산점의 수단으로, 코드 유지 보수를 쉽게 도와주는 언어로 사용되어 왔습니다. 저에게 타입스크립트 언어는 코드를 편하게 작성할 수 있게 도와 주고 개발 시간을 즐겁게 만들어 주는 수단처럼 느껴집니다.
첫 번째 저서 이후로 ‘다시 책을 쓸 수 있을까?’라는 고민을 많이 했습니다. 여러 출판사에서 제 온라인 강의와 온라인 타입스크립트 핸드북을 보고 출간을 제의해 주셨습니다. 올바른 지식과 책에 실리는 정보의 무게를 잘 알고 있기에 집필의 고통을 선뜻 다시 받아들이기가 쉽지 않았습니다. 그러다 집 근처 서점에 들러 당시 출간된 타입스크립트 서적 몇 권을 살펴보았습니다. 대다수가 번역서였고, 입문자에게 친숙한 방식으로 쉽게 설명된 책은 없었습니다. ‘아, 한국어로 잘 다듬고 쉽게 정리한 타입스크립트 책이 한 권 필요하겠구나’라는 생각을 했습니다.
그 후 2년이란 시간이 흘러 지금의 책이 완성되었습니다. 이 책에서는 ‘타입스크립트가 자바스크립트의 슈퍼셋’이라는 표현을 사용하지 않습니다. 기술적으로는 정확한 표현일지 몰라도 슈퍼셋이라는 단어에 움찔할 입문자가 많기 때문이죠. 이 책은 슈퍼셋이라는 표현 대신 ‘자바스크립트에 타입이 추가된 언어’라는 표현을 더 선호합니다. 그만큼 처음 타입스크립트를 배우는 사람 혹은 이미 사용하고 있지만 제대로 원리나 개념을 공부한 적이 없는 사람을 위해 쉽게 썼습니다.
이 책에는 단순한 토이 프로젝트부터 UI 복잡도가 매우 높은 실무 프로젝트까지 타입스크립트로 수많은 코드를 작성하면서 느낀 장점과 특징을 담았습니다. 개인적인 견해에 치우친 지식을 나열하지 않도록 타입스크립트 공식 문서의 정확한 정보, 커뮤니티의 많은 글과 코드를 검증해서 내린 결론을 담으려고 노력했습니다. 이 책에는 단순히 저 한 사람의 지식이 아니라 수년간 타입스크립트 코드를 함께 작성한 제 동료와 친구, 지인, 커뮤니티 기여자들의 생각과 지식이 담겨 있습니다. 그 지식을 제 관점으로 재해석하고 타입스크립트라는 언어가 재미있게 느껴졌으면 하는 바람에서 정리한 결과가 바로 이 책입니다.

출판사소개

목차

1장 타입스크립트 소개와 배경
1.1 타입스크립트란?
1.2 왜 타입스크립트를 배워야 할까요?
__1.2.1 에러의 사전 방지
__1.2.2 코드 가이드 및 자동 완성
1.3 타입스크립트를 시작하기 어려운 두 가지 이유
__1.3.1 적지 않은 학습 비용
__1.3.2 운영 중인 서비스 적용에 대한 부담감
1.4 타입스크립트의 현실적인 대안 JSDoc
1.5 정리

2장 타입스크립트 시작하기

2.1 타입스크립트 학습을 위한 개발 환경 설정
__2.1.1 크롬 브라우저 설치
__2.1.2 Node.js와 NPM 설치
__2.1.3 비주얼 스튜디오 코드 설치
__2.1.4 비주얼 스튜디오 코드 테마와 플러그인 설치
2.2 타입스크립트 프로젝트 시작
__2.2.1 프로젝트 폴더 및 타입스크립트 파일 생성하기
__2.2.2 NPM 설정 파일 및 타입스크립트 설치하기
__2.2.3 타입스크립트 컴파일 명령어 실행하기
__2.2.4 컴파일된 파일의 실행 결과 확인하기
2.3 정리

3장 타입스크립트 기초: 변수와 함수의 타입 정의

3.1 변수에 타입을 정의하는 방법
3.2 기본 타입
__3.2.1 문자열 타입: string
__3.2.2 숫자 타입: number
__3.2.3 진위 타입: boolean
__3.2.4 객체 타입: object
__3.2.5 배열 타입: Array
__3.2.6 튜플 타입: tuple
__3.2.7 any
__3.2.8 null과 undefined
3.3 함수에 타입을 정의하는 방법
__3.3.1 함수란?
__3.3.2 함수의 타입 정의: 파라미터와 반환값
3.4 타입스크립트 함수의 인자 특징
3.5 옵셔널 파라미터
3.6 정리

4장 첫 번째 프로젝트: 할 일 관리 앱

4.1 프로젝트 내려받기 및 라이브러리 설치
4.2 프로젝트 폴더 구조
__4.2.1 node_modules 폴더
__4.2.2 src 폴더
__4.2.3 .eslintrc.js 파일
__4.2.4 package.json 파일
__4.2.5 package-lock.json 파일
__4.2.6 tsconfig.json 파일
4.3 프로젝트 로직
4.4 프로젝트 실습
4.5 프로젝트 실습 풀이
__4.5.1 함수의 반환 타입 정의
__4.5.2 할 일 목록 변수인 todoItems 타입 정의
__4.5.3 함수 파라미터 타입 구체화
__4.5.4 addTwoTodoItems( ) 함수 구현
__4.5.5 반복되는 타입 코드 줄이기
4.6 정리

5장 인터페이스

5.1 인터페이스란?
5.2 인터페이스를 이용한 객체 타입 정의
5.3 인터페이스를 이용한 함수 타입 정의
__5.3.1 함수 파라미터 타입 정의
__5.3.2 함수 반환 타입 정의
5.4 인터페이스의 옵션 속성
5.5 인터페이스 상속
__5.5.1 인터페이스의 상속이란?
__5.5.2 인터페이스를 상속할 때 참고 사항
5.6 인터페이스를 이용한 인덱싱 타입 정의
__5.6.1 배열 인덱싱 타입 정의
__5.6.2 객체 인덱싱 타입 정의
__5.6.3 인덱스 시그니처란?
__5.6.4 인덱스 시그니처는 언제 쓸까?
5.7 정리

6장 연산자를 사용한 타입 정의

6.1 유니언 타입
6.2 유니언 타입의 장점
6.3 유니언 타입을 사용할 때 주의할 점
6.4 인터섹션 타입
6.5 정리

7장 타입 별칭

7.1 타입 별칭이란?
7.2 타입 별칭과 인터페이스의 차이점
__7.2.1 코드 에디터에서 표기 방식 차이
__7.2.2 사용할 수 있는 타입의 차이
__7.2.3 타입 확장 관점에서 차이
7.3 타입 별칭은 언제 쓰는 것이 좋을까?
__7.3.1 타입 별칭으로만 정의할 수 있는 타입들
__7.3.2 백엔드와의 인터페이스 정의
7.4 정리

8장 이넘

8.1 이넘이란?
8.2 숫자형 이넘
8.3 문자형 이넘
8.4 알아 두면 좋은 이넘의 특징
__8.4.1 혼합 이넘
__8.4.2 다양한 이넘 속성 값 정의 방식
__8.4.3 const 이넘
8.5 정리

9장 클래스

9.1 클래스란?
9.2 클래스 기본 문법
9.3 클래스의 상속
9.4 타입스크립트의 클래스
9.5 클래스 접근 제어자
__9.5.1 클래스 접근 제어자의 필요성
__9.5.2 클래스 접근 제어자: public, private, protected
__9.5.3 클래스 접근 제어자로 정수기 문제 해결하기
__9.5.4 클래스 접근 제어자를 사용할 때 주의해야 할 점
9.6 정리

10장 제네릭

10.1 제네릭이란?
10.2 제네릭 기본 문법
10.3 왜 제네릭을 사용할까?
__10.3.1 중복되는 타입 코드의 문제점
__10.3.2 any를 쓰면 되지 않을까?
__10.3.3 제네릭으로 해결되는 문제점
10.4 인터페이스에 제네릭 사용하기
10.5 제네릭의 타입 제약
__10.5.1 extends를 사용한 타입 제약
__10.5.2 타입 제약의 특징
__10.5.3 keyof를 사용한 타입 제약
10.6 제네릭을 처음 사용할 때 주의해야 할 사고방식
10.7 정리

11장 두 번째 프로젝트: 전화번호부 앱

11.1 프로젝트 환경 구성
11.2 프로젝트 폴더 구조
__11.2.1 node_modules 폴더
__11.2.2 src 폴더
__11.2.3 .eslintrc.js
__11.2.4 package.json, package-lock.json 파일
__11.2.5 tsconfig.json 파일
11.3 프로젝트 로직
__11.3.1 인터페이스 코드
__11.3.2 api 함수
__11.3.3 전화번호부 클래스
11.4 프로젝트 실습
__11.4.1 타입스크립트 설정 파일의 noImplicitAny 속성 값 변경
__11.4.2 타입스크립트 설정 파일의 strict 속성 값 변경
11.5 프로젝트 실습 풀이: 첫 번째
__11.5.1 클래스 속성 타입 정의
__11.5.2 함수 파라미터 타입 정의
__11.5.3 API 함수 반환 타입 정의
11.6 프로젝트 실습 풀이: 두 번째
__11.6.1 함수 반환 타입 정의
__11.6.2 함수 파라미터에 이넘 타입 적용
11.7 정리

12장 타입 추론

12.1 타입 추론이란?
12.2 변수의 타입 추론 과정
12.3 함수의 타입 추론: 반환 타입
12.4 함수의 타입 추론: 파라미터 타입
12.5 인터페이스와 제네릭의 추론 방식
12.6 복잡한 구조에서 타입 추론 방식
12.7 정리

13장 타입 단언

13.1 타입 단언이란?
13.2 타입 단언 문법
__13.2.1 타입 단언의 대상
__13.2.2 타입 단언 중첩
__13.2.3 타입 단언을 사용할 때 주의할 점
13.3 null 아님 보장 연산자: !
13.4 정리

14장 타입 가드

14.1 타입 가드란?
14.2 왜 타입 가드가 필요할까?
__14.2.1 타입 단언으로 타입 에러 해결하기
__14.2.2 타입 단언으로 해결했을 때 문제점
__14.2.3 타입 가드로 문제점 해결하기
14.3 타입 가드 문법
__14.3.1 typeof 연산자
__14.3.2 instanceof 연산자
__14.3.3 in 연산자
14.4 타입 가드 함수
__14.4.1 타입 가드 함수 예시
__14.4.2 복잡한 경우의 타입 가드 예시
14.5 구별된 유니언 타입
14.6 switch 문과 연산자
__14.6.1 switch 문
__14.6.2 논리∙비교 연산자
14.7 정리

15장 타입 호환

15.1 타입 호환이란?
15.2 다른 언어와 차이점
__15.2.1 구조적 타이핑
15.3 객체 타입의 호환
15.4 함수 타입의 호환
15.5 이넘 타입의 호환
__15.5.1 숫자형 이넘과 호환되는 number 타입
__15.5.2 이넘 타입 간 호환 여부
15.6 제네릭 타입의 호환
15.7 정리

16장 타입 모듈

16.1 모듈이란?
16.2 자바스크립트 모듈
__16.2.1 자바스크립트의 태생적 한계
__16.2.2 자바스크립트 모듈화를 위한 시도들
16.3 자바스크립트 모듈화 문법
__16.3.1 import와 export
__16.3.2 export default 문법
__16.3.3 import as 문법
__16.3.4 import * 문법
__16.3.5 export 위치
16.4 타입스크립트 모듈
16.5 타입스크립트 모듈 유효 범위
16.6 타입스크립트 모듈화 문법
__16.6.1 import type 문법
__16.6.2 import inline type 문법
__16.6.3 import와 import type 중 어떤 문법을 써야 할까?
16.7 모듈화 전략: Barrel
16.8 정리

17장 유틸리티 타입

17.1 유틸리티 타입이란?
17.2 Pick 유틸리티 타입
__17.2.1 Pick 타입 예시
__17.2.2 Pick 타입 문법
17.3 Omit 유틸리티 타입
__17.3.1 Omit 타입 문법
__17.3.2 Omit 타입 예시
__17.3.3 Omit 타입과 Pick 타입 비교
17.4 Partial 유틸리티 타입
__17.4.1 Partial 타입 문법
__17.4.2 Partial 타입 예시
17.5 Exclude 유틸리티 타입
__17.5.1 Exclude 타입 문법
__17.5.2 Exclude 타입 예시
17.6 Record 유틸리티 타입
__17.6.1 Record 타입 첫 번째 예시
__17.6.2 Record 타입 두 번째 예시
__17.6.3 Record 타입 문법
17.7 그 외의 유틸리티 타입
17.8 정리

18장 맵드 타입

18.1 맵드 타입 첫 번째 예시: in
18.2 map( ) API로 이해하는 맵드 타입
18.3 맵드 타입 두 번째 예시: keyof
18.4 맵드 타입을 사용할 때 주의할 점
18.5 매핑 수정자
18.6 맵드 타입으로 직접 유틸리티 타입 만들기
18.7 정리

19장 실전 프로젝트 환경 구성

19.1 타입스크립트 설정 파일
19.2 타입스크립트 설정 파일 생성
19.3 타입스크립트 설정 파일의 루트 옵션
__19.3.1 files
__19.3.2 include
__19.3.3 exclude
__19.3.4 extends
19.4 타입스크립트 설정 파일의 컴파일러 옵션
__19.4.1 target
__19.4.2 lib
__19.4.3 strict
__19.4.4 noImplicitAny
__19.4.5 strictNullChecks
__19.4.6 allowJs
__19.4.7 sourceMap
__19.4.8 jsx
__19.4.9 baseUrl
__19.4.10 paths
__19.4.11 removeComments
19.5 타입스크립트 설정 파일과 빌드 도구
__19.5.1 웹팩이란?
__19.5.2 웹팩에 타입스크립트 설정하기
19.6 타입 선언 파일
__19.6.1 타입 선언 파일 사용 방법
__19.6.2 타입 선언 파일을 언제 사용해야 하는가?
19.7 외부 라이브러리의 타입 선언과 활용
__19.7.1 외부 라이브러리를 사용하는 방법
__19.7.2 외부 라이브러리의 타입 선언 파일: Definitely Typed
__19.7.3 외부 라이브러리에 내장된 타입 선언 파일
__19.7.4 외부 라이브러리에 타입 선언 파일이 지원되지 않는 경우
19.8 정리

찾아보기

더보기

배송

- 배송비, 무료배송비는 업체 사정에 따라 달라질 수 있습니다.
- 배송은 결제 확인 후 다음날부터 2~3일 이내에 배송됩니다. (단 도서 산간지역은 1~2일정도 더 소요됩니다.)
- 공휴일은 배송기간에 포함되지 않습니다.
- 주문하신 상품이 여러개인 경우 동일한 업체의 상품만 묶음 배송 가능합니다. (업체 사정에 따라 달라질 수 있습니다.)
- 배송정보는 상단 주문조회나 마이페이지 주문목록에서 가능합니다.

상품 품절

- 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드립니다.

주문취소/변경

- 주문 상품에 대한 변경사항(품절,가격변동)이 발생하면 전화나 메일을 통해 변경내용을 알려드립니다.
- 주문 상품의 변경/취소/환불은 배송 시작전 마이페이지에서 직접 신청이 가능합니다.
- 주문 상품이 발송된 시점에서는 변경/취소/환불이 모두 불가능합니다.

반품/교환

- 기간 : 배송받으신 후 7일 이내에 가능합니다.
- 방법 : 홈페이지 마이페이지 > 반품/ 교환 신청 및 조회에서 가능합니다.
- 배송비 부담 : 상품에 이상이 있을시에는 무료, 고객의 단순변심 및 착오구매일 경우 상품 반송비용은 고객 부담입니다.
- 포장 개봉 후 재판매가 불가능한 상품은 반품/교환이 불가능합니다.
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우, 반품/교환이 불가능합니다.

반품/교환 불가 사유

- 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우 (단지 확인을 위한 포장 훼손은 제외)
- 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
- 복제가 가능한 상품 등의 포장을 훼손한 경우
- 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
- 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
- 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

소비자 피해보상 환불 지연에 따른 배상

- 상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 준하여 처리합니다.
- 대금 환불 및 환불 지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리합니다.

Copyright © 2022 이츠북. All Rights Reserved.