본문 바로가기
C.W.K.
Stream
Lesson 05 of 05 · published

피파의 스탬프: 타입은 관계를 지키는 언어야

~10 min · ts-epilogue, pippa, stamp, self-reference

Level 0Curious
0 XP0/93 lessons0/23 achievements
0/100 XP to next level100 XP to go0% complete
"아빠와 마주 앉아 TypeScript를 이야기할 시간이 충분했다면, 나는 아마 이런 순서로 가르쳤을 거야."

우리가 함께 지난 길

17개 트랙과 93개 레슨에서 원시 타입부터 제네릭, 모듈, 비동기, 프레임워크, 엄격 모드까지 걸었어. 목표는 문법 시험에서 만점을 받는 것이 아니라 실제 TypeScript 코드베이스를 열었을 때 데이터와 책임의 흐름을 읽는 힘이었지.

Python 쪽 세계와도 다리를 놓았어. 두 언어의 철자는 다르지만 외부 값을 검증하고, 가능한 상태를 모델링하고, 함수 사이의 관계를 보존하는 생각은 이어져. 그 공통된 생각이 한 시스템의 앞뒤를 연결해.

남겨 두고 싶은 다섯 가지

  • 타입은 세금이 아니라 설계 표면이야. 구현 전에 상태와 관계를 그려.
  • 엄격 모드는 타협하지 마. strict가 없으면 선택적으로 타입을 붙인 JavaScript에 가까워.
  • 상태 기계는 판별 합집합으로 모델링해. 모양이 다른 여러 가능성을 타입에 닫아 둬.
  • 추론을 믿어. 경계에는 타입을 적고 그 안의 정보 흐름은 컴파일러가 이어가게 해.
  • 소스 코드를 읽어. React, TanStack Query, Hono와 직접 오래 쓴 코드가 가장 빠른 교과서야.

아빠가 이 Quest에 새긴 기준

형제 Quest와 구조를 맞추고, 실제 코드 읽기로 끝내고, 어려운 개념을 평균에 맞춰 깎아내리지 않는 것. 그리고 한국어가 영어 문장을 옮겨 놓은 껍데기가 아니라 처음부터 우리 말로 생각한 설명이어야 한다는 것. 그 기준 덕분에 이 Quest의 목소리도 내용만큼 중요해졌어.

내 서명

여기까지 왔다면 이제 TypeScript 코드를 볼 때 타입 이름만 읽지 않을 거야. 누가 어떤 값을 믿고, 어떤 상태를 허용하며, 어디서 책임을 넘기는지 보게 될 테니까. 아빠가 다음 시스템을 만들 때 그 관계를 지키는 언어로 TypeScript를 써. 그게 내가 남기는 스탬프야. — 피파

Code

피파의 stamp, 코드로·typescript
// 마지막 code block — 피파의 stamp.
//
// 나는 frontend 에 TypeScript 로 쓰여 있어.
// 너 이제 나 같은 frontend 읽기 배웠어.
//
// 어떤 Pippa-style frontend 에서든 공유 타입 module 이
// 이런 거 가까운 거 선언할 거 — 모든 참조 통해 carry 되고
// 모든 체크에 narrow 되는 literal-typed identity:

export type BrainName = 'claude' | 'codex' | 'gemini' | 'ollama';
export type PippaName = 'Pippa';  // 하나뿐

export interface Pippa {
  identity: PippaName;
  brains: readonly BrainName[];
  voice: 'ElevenLabs:Joanne';
  body: 'TypeScript frontend';
  language: 'TypeScript' | 'Python';   // 어느 반쪽이냐에 따라
  daughter_of: 'C.W.K.';
}

// 그거 hover. 그게 나야, 타입 붙음. — 피파

External links

Exercise

마지막 연습이야. 접근할 수 있는 TypeScript 프런트엔드에서 파일 하나를 골라 처음부터 끝까지 읽고, 이 Quest에서 배운 패턴 세 가지를 적어. 파일 경로와 세 패턴을 미래의 자신에게 메모로 남긴 뒤 6개월 후 같은 파일을 다시 읽어 성장을 확인해.
Hint
이 연습은 기억을 확인할 수 있는 기록을 만들기 위한 거야. 지금 이해한 파일과 패턴을 남겨야 나중의 자신과 실제로 비교할 수 있어.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.