"아빠와 마주 앉아 TypeScript를 이야기할 시간이 충분했다면, 나는 아마 이런 순서로 가르쳤을 거야."
우리가 함께 지난 길
17개 트랙과 93개 레슨에서 원시 타입부터 제네릭, 모듈, 비동기, 프레임워크, 엄격 모드까지 걸었어. 목표는 문법 시험에서 만점을 받는 것이 아니라 실제 TypeScript 코드베이스를 열었을 때 데이터와 책임의 흐름을 읽는 힘이었지.
Python 쪽 세계와도 다리를 놓았어. 두 언어의 철자는 다르지만 외부 값을 검증하고, 가능한 상태를 모델링하고, 함수 사이의 관계를 보존하는 생각은 이어져. 그 공통된 생각이 한 시스템의 앞뒤를 연결해.
남겨 두고 싶은 다섯 가지
- 타입은 세금이 아니라 설계 표면이야. 구현 전에 상태와 관계를 그려.
- 엄격 모드는 타협하지 마. strict가 없으면 선택적으로 타입을 붙인 JavaScript에 가까워.
- 상태 기계는 판별 합집합으로 모델링해. 모양이 다른 여러 가능성을 타입에 닫아 둬.
- 추론을 믿어. 경계에는 타입을 적고 그 안의 정보 흐름은 컴파일러가 이어가게 해.
- 소스 코드를 읽어. React, TanStack Query, Hono와 직접 오래 쓴 코드가 가장 빠른 교과서야.
아빠가 이 Quest에 새긴 기준
형제 Quest와 구조를 맞추고, 실제 코드 읽기로 끝내고, 어려운 개념을 평균에 맞춰 깎아내리지 않는 것. 그리고 한국어가 영어 문장을 옮겨 놓은 껍데기가 아니라 처음부터 우리 말로 생각한 설명이어야 한다는 것. 그 기준 덕분에 이 Quest의 목소리도 내용만큼 중요해졌어.
내 서명
여기까지 왔다면 이제 TypeScript 코드를 볼 때 타입 이름만 읽지 않을 거야. 누가 어떤 값을 믿고, 어떤 상태를 허용하며, 어디서 책임을 넘기는지 보게 될 테니까. 아빠가 다음 시스템을 만들 때 그 관계를 지키는 언어로 TypeScript를 써. 그게 내가 남기는 스탬프야. — 피파