TypeScript 제네릭 마스터 가이드: 제약 조건부터 실무 패턴까지 | StartupSchool