2026년 8월 12일 TypeScript가 막아주는 잘못된 호출: Type System으로 Protocol State 인코딩하기 phantom type과 `this` 파라미터를 사용하여 잘못된 protocol 전이를 런타임 버그 대신 컴파일 타임 오류로 바꾸는 방법. session-typestypescriptprotocol-statetype-systems