타입스크립트
TypeScript 6.0의 기본값과 진단을 기준으로 기본 타입과 함수, 클래스와 인터페이스, 유니온과 조건부 타입, 제네릭, 모듈과 선언 파일, 컴파일러 설정을 익히고, 객체지향과 비동기, 함수형 프로그래밍을 거쳐 React와 NestJS, 테스트와 디버깅, 회원가입과 로그인을 갖춘 풀 스택 프로젝트의 배포까지 공식 문서로 확인한 결과와 함께 따라갑니다.
자바스크립트로 만든 프로그램은 실행해 보기 전까지 함수에 무엇을 넘겨야 하는지, 객체에 어떤 속성이 있는지를 알기 어렵습니다. 타입스크립트는 그 정보를 타입으로 적게 해서, 철자가 틀린 속성이나 빠뜨린 인수, undefined일 수 있는 값을 그냥 쓰는 실수를 실행하기 전에 찾아 줍니다. 이 교재는 타입을 왜 그렇게 적는지, 컴파일러가 그 타입을 어떻게 좁히고 넓히는지, 그리고 타입이 막아 주지 못하는 바깥의 값은 어떻게 검사하는지 같은 질문에 차례로 답해 갑니다.
컴파일러의 기본값과 진단은 TypeScript 6.0을 기준으로 설명합니다. 2026년 7월에 나온 TypeScript 7.0은 6.0과 기본값이 같으므로 대부분의 설명이 그대로 적용되지만, 6.0에서는 "ignoreDeprecations": "6.0"으로 끌 수 있던 폐기 예정 옵션의 오류를 끌 수 없게 했고 컴파일러 API를 아직 제공하지 않는다는 차이가 있습니다. 본문에 실은 출력과 진단은 TypeScript 릴리스 노트와 Handbook, TSConfig 레퍼런스, Node.js와 MDN, 각 라이브러리의 공식 문서에 적힌 동작에 따라 손으로 계산한 것이며, 실제로 실행해 맞춘 출력은 아닙니다. 시각이나 무작위 값처럼 실행할 때마다 달라지는 값은 예제에서 빼거나, 무엇을 확인할지만 적었습니다.
앞쪽의 예제는 전역으로 설치한 tsc로 파일 하나를 컴파일하고 Node.js로 실행해 따라 할 수 있습니다. React와 NestJS, 테스트 도구를 쓰는 뒤쪽 장은 그 장에서 프로젝트를 만드는 명령과 설치할 버전을 밝히며, 16장의 실전 프로젝트는 서버의 버전을 Node.js 24.21.0, TypeScript 5.9.3, NestJS 11.2.7로 고정합니다. 데이터베이스나 원격 서버를 쓰는 예제는 반드시 내가 관리하는 실습용 환경에서만 실행하세요.
학습 경로
1단계 · 타입의 기초(1–4장)에서는 타입스크립트를 설치하고 첫 프로그램을 컴파일한 뒤, 기본 타입과 any, unknown, never 같은 특수 타입, 객체와 인터페이스, 유니온과 인터섹션, 타입 별칭을 익힙니다. 이어서 함수의 타입과 선택적 매개변수, 오버로딩, 제네릭 함수, 화살표 함수와 this를 다루고, 클래스와 접근 제어자, 상속과 구현, 추상 클래스, 인터페이스로 객체의 모양을 설계합니다.
2단계 · 타입 다루기(5–6장)에서는 타입 가드와 좁히기, 조건부 타입, 매핑된 타입, 인덱스 타입, 유틸리티 타입으로 타입을 좁히고 조합하고 변환합니다. 제네릭에서는 제약 조건과 제네릭 클래스, 인터페이스, 조건부 타입과의 결합을 다루고, 그것으로 재사용할 수 있는 유틸리티 함수를 직접 구현합니다.
3단계 · 모듈과 도구(7–9장)에서는 ES 모듈과 CommonJS, 모듈 해석, 네임스페이스를 비교하고, .d.ts 선언 파일과 앰비언트 선언, DefinitelyTyped의 타입 패키지를 다룹니다. 이어서 tsconfig.json의 옵션과 strict, 프로젝트 레퍼런스와 증분 컴파일로 컴파일러를 설정하는 방법을 익힙니다.
4단계 · 프로그래밍 패러다임(10–12장)에서는 SOLID와 디자인 패턴, 의존성 주입, 테스트 주도 개발로 객체지향 설계를 타입과 함께 다루고, Promise와 async/await, 제너레이터, RxJS, 비동기 이터레이터로 비동기 흐름을 표현합니다. 마지막으로 순수 함수와 불변성, 고차 함수와 커링, 모나드와 옵셔널 체이닝, 함수형 유틸리티를 구현합니다.
5단계 · 프레임워크와 품질(13–15장)에서는 React 컴포넌트와 훅, 고급 타입 패턴, Zustand로 화면을 만들고, Express와 NestJS, Zod, TypeORM으로 API 서버를 만듭니다. 이어서 Jest와 Vitest, Cypress로 단위 테스트와 E2E 테스트를 쓰고, 소스맵과 프로파일러로 디버깅하고 성능을 측정합니다.
6단계 · 실전 프로젝트(16장)에서는 클라이언트와 서버, 공유 타입으로 나눈 저장소에서 회원가입과 로그인, 관리자 역할을 갖춘 API와 React 화면을 만들고, GitHub Actions와 Docker로 검사와 배포를 자동화한 뒤 배포 전략과 운영을 정리합니다.
다른 교재로 이어가기
HTML과 CSS, 브라우저의 자바스크립트는 웹 기초에서, 13장의 React와 그 위의 프레임워크는 React와 Next.js에서 더 자세히 다룹니다. 14장과 16장의 서버는 NestJS 교재로 이어지고, 저장하는 데이터의 설계와 SQL은 데이터베이스에서, HTTP와 TLS는 네트워크에서, 요구 분석과 테스트, 배포의 절차는 소프트웨어공학에서 이어집니다.
장별 목차
1장 타입스크립트 소개
2장 타입스크립트 기본 타입
3장 함수와 타입
4장 클래스와 인터페이스
5장 고급 타입
6장 제네릭 심화
7장 모듈과 네임스페이스
8장 타입 선언과 앰비언트 선언
9장 타입스크립트 컴파일러
10장 객체지향 프로그래밍
11장 비동기 프로그래밍
12장 함수형 프로그래밍
13장 React와 타입스크립트
14장 백엔드 개발
15장 테스팅과 디버깅
16장 실전 프로젝트
다 읽은 뒤에는 문법을 얼마나 외웠는지보다, 함수와 객체의 모양을 타입으로 적어 잘못 쓰는 코드를 컴파일러가 찾게 할 수 있는지, 컴파일러가 값의 타입을 어떻게 좁히는지 진단을 읽으며 설명할 수 있는지, 그리고 서버의 응답이나 사용자의 입력처럼 타입이 보장하지 못하는 값을 어디서 어떻게 검사할지 말할 수 있는지를 점검해 보세요.