Ch 02. 더 배울 거리
이 교재는 TypeScript를 시작하는 데 필요한 것들을 담았습니다. 하지만 TypeScript는 깊습니다. 타입 시스템의 이론적 깊이, 고급 패턴, 생태계 전반을 한 권에 담는 것은 불가능합니다.
다음 단계로 나아가기 위한 자료들을 소개합니다.
책
Effective TypeScript (Dan Vanderkam)
TypeScript를 배운 이후 가장 먼저 읽어야 할 책입니다. "어떻게 TypeScript를 올바르게 쓰는가"를 62가지 항목으로 정리합니다. 단순히 문법을 나열하지 않고, 각 결정의 이유와 trade-off를 설명합니다.
대표적인 항목들입니다.
Item 1: TypeScript와 JavaScript의 관계 이해하기
Item 7: 타입이 값들의 집합이라는 것 인식하기
Item 28: 유효한 상태만 표현하는 타입 설계하기
Item 38: any 타입은 좁은 범위에서만 사용하기
"어떤 타입을 써야 하지?"라는 고민이 생길 때마다 이 책에서 답을 찾을 수 있습니다.
Programming TypeScript (Boris Cherny)
O'Reilly 출판사의 책입니다. 언어의 깊이 있는 측면을 다룹니다. 타입 시스템의 이론적 배경, 타입 레벨 프로그래밍, 고급 패턴을 체계적으로 설명합니다.
Effective TypeScript가 "올바른 TypeScript 습관"을 가르친다면, 이 책은 "TypeScript 타입 시스템의 작동 원리"를 가르칩니다.
온라인 강의와 자료
Total TypeScript (Matt Pocock)
totaltypescript.com — TypeScript 생태계에서 가장 높이 평가받는 온라인 강의입니다. 무료 튜토리얼과 유료 워크숍으로 구성되어 있습니다.
특히 "TypeScript Generics Workshop"과 "Advanced TypeScript Patterns"는 이 교재의 다음 단계로 적합합니다. 실습 중심으로 진행되며, 코드를 직접 고치면서 배웁니다.
Matt Pocock의 YouTube 채널도 운영 중입니다. 짧은 영상으로 TypeScript 팁을 매주 공유합니다.
TypeScript Playground
typescriptlang.org/play — TypeScript 팀이 제공하는 공식 플레이그라운드입니다. 설치 없이 브라우저에서 TypeScript를 실행하고 타입을 확인할 수 있습니다.
특히 왼쪽 패널의 "Examples" 섹션에 TypeScript의 주요 기능들이 예제와 함께 정리되어 있습니다. 새로운 기능을 처음 접할 때 플레이그라운드에서 직접 실험해보는 것이 가장 빠른 학습법입니다.
tsdocs.dev
TypeScript 타입 정의를 검색하고 탐색하는 도구입니다. npm의 어떤 패키지라도 타입 선언을 시각적으로 볼 수 있습니다. 라이브러리를 처음 쓸 때 타입을 미리 파악하는 데 유용합니다.
공식 문서
TypeScript Handbook
typescriptlang.org/docs/handbook — TypeScript 팀이 직접 작성하고 관리하는 공식 문서입니다. 새로운 언어 기능이 추가될 때마다 업데이트됩니다.
이 교재에서 다루지 못한 주제들이 있습니다.
읽어볼 섹션:
- Mapped Types: 기존 타입을 변환해서 새 타입 만들기
- Template Literal Types: 문자열 타입 조합하기
- Conditional Types: 조건에 따라 타입 분기하기
- Infer: 타입에서 타입 추출하기
- Decorators: 클래스와 메서드에 메타데이터 붙이기
특히 Mapped Types와 Template Literal Types는 라이브러리 코드를 읽을 때 자주 만납니다. 이해하고 있으면 "이게 뭐지?" 하고 막히는 순간이 줄어듭니다.
What's New in TypeScript
각 버전의 릴리즈 노트입니다. typescriptlang.org/docs/handbook/release-notes — TypeScript가 버전마다 어떤 기능을 추가했는지 볼 수 있습니다.
커뮤니티
TypeScript Discord
discord.gg/typescript — TypeScript 공식 Discord 서버입니다. 막히는 부분을 질문하거나, 다른 사람들의 질문과 답변을 읽으면서 학습할 수 있습니다.
Reddit r/typescript
TypeScript 관련 뉴스, 글, 질문이 올라옵니다. 매주 "What are you working on?" 스레드가 열려서 커뮤니티 동향을 파악할 수 있습니다.
TypeScript Weekly
typescript-weekly.com — 매주 TypeScript 관련 좋은 글, 라이브러리, 팁을 이메일로 받아볼 수 있는 뉴스레터입니다.
생태계에서 TypeScript 다루는 방법
TypeScript를 특정 프레임워크나 도구와 함께 쓸 때는 해당 생태계의 공식 TypeScript 가이드를 참고합니다.
React: react.dev/learn/typescript
Next.js: nextjs.org/docs/app/building-your-application/configuring/typescript
Node.js: nodejs.org/en/learn/getting-started/nodejs-with-typescript
Prisma: prisma.io/docs/concepts/components/prisma-client/advanced-type-safety
Zod: zod.dev (런타임 타입 검증)
Zod는 특히 소개할 만합니다. TypeScript의 타입은 컴파일 타임에만 존재합니다. API 응답이나 사용자 입력처럼 런타임에 외부에서 들어오는 데이터는 TypeScript가 보장할 수 없습니다. Zod는 이 간격을 채워줍니다. 스키마를 정의하면 런타임 검증과 TypeScript 타입이 동시에 생성됩니다.
학습 경로 제안
지금 자신의 상황에 따라 다음 단계가 달라집니다.
TypeScript를 이제 막 시작했다면. 플레이그라운드에서 이 교재의 예제를 직접 따라 쳐보세요. 타입 에러를 읽는 연습이 가장 중요합니다. Effective TypeScript를 사기 전에 먼저 Total TypeScript의 무료 자료부터 시작하세요.
기본기는 있는데 자신이 없다면. Effective TypeScript를 읽으세요. 아는 내용이 나와도 "왜 이렇게 해야 하는가"를 다시 생각하게 됩니다.
타입 시스템을 깊이 이해하고 싶다면. TypeScript Handbook의 고급 섹션(Mapped Types, Conditional Types, infer)을 읽고, Matt Pocock의 고급 워크숍을 들으세요. 타입 레벨 프로그래밍의 세계가 열립니다.
실무에 바로 적용하고 싶다면. Zod를 프로젝트에 도입해보세요. 타입 안전성이 런타임까지 확장되는 경험을 할 수 있습니다.
다음 챕터에서 이 교재 전체를 마무리합니다.