--- id: P-REINFORCE-AUTO-37A8A8 category: "[[10_Wiki/πŸ’‘ Topics/Design & Experience]]" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - νƒ€μž… 별칭 (Type Alias)" --- # [[νƒ€μž… 별칭 (Type Alias)]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > νƒ€μž… 별칭(Type Alias)은 TypeScriptμ—μ„œ κΈ°μ‘΄ νƒ€μž…μ— μƒˆλ‘œμš΄ 이름을 λΆ€μ—¬ν•˜μ—¬ μž¬μ‚¬μš©μ„±μ„ λ†’μ΄λŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€ [1]. μΈν„°νŽ˜μ΄μŠ€(Interface)와 μœ μ‚¬ν•˜κ²Œ 객체의 ν˜•νƒœλ₯Ό μ •μ˜ν•˜λŠ” 데 μ‚¬μš©ν•  수 있으며, κ·Έ 외에도 μ›μ‹œ νƒ€μž…(Primitives), μœ λ‹ˆμ˜¨(Union), νŠœν”Œ(Tuple) 및 기타 λ³΅μž‘ν•œ νƒ€μž… 쑰합을 λͺ…λͺ…ν•  수 μžˆλŠ” 폭넓은 ν‘œν˜„λ ₯을 κ°–μŠ΅λ‹ˆλ‹€ [1]. μΈν„°νŽ˜μ΄μŠ€μ™€ 달리 μ„ μ–Έ 병합(Declaration Merging)을 ν—ˆμš©ν•˜μ§€ μ•Šμ•„, λ™μΌν•œ μ΄λ¦„μœΌλ‘œ μž¬μ„ μ–Έ μ‹œ μ—λŸ¬λ₯Ό λ°œμƒμ‹œν‚΄μœΌλ‘œμ¨ 더 μ—„κ²©ν•œ νƒ€μž… 관리λ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€ [2, 3]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **μœ μ—°ν•œ νƒ€μž… ν‘œν˜„λ ₯** νƒ€μž… 별칭은 λ‹¨μˆœνžˆ 객체의 ν˜•νƒœλ₯Ό μ •μ˜ν•˜λŠ” 것을 λ„˜μ–΄ μœ λ‹ˆμ˜¨ νƒ€μž…, ꡐ집합(Intersection), λ§€ν•‘λœ νƒ€μž…(Mapped Types), 쑰건뢀 νƒ€μž…(Conditional Types) λ“± λ³΅μž‘ν•œ νƒ€μž… ꡬ성을 ν‘œν˜„ν•˜λŠ” 데 맀우 μ ν•©ν•©λ‹ˆλ‹€ [1, 4, 5]. 값이 νŠΉμ • μ›μ‹œ νƒ€μž…μ΄κ±°λ‚˜ νŠœν”Œ, ν˜Ήμ€ `Record`κ³Ό 같은 νŠΉμˆ˜ν•œ μœ ν‹Έλ¦¬ν‹° νƒ€μž…μΌ λ•Œ 이λ₯Ό κ°„κ²°ν•˜κ²Œ λͺ…λͺ…ν•˜λŠ” 역할을 μˆ˜ν–‰ν•©λ‹ˆλ‹€ [1, 6]. * **μΈν„°νŽ˜μ΄μŠ€(Interface)μ™€μ˜ ꡬ쑰적 차이** νƒ€μž… 별칭은 μΈν„°νŽ˜μ΄μŠ€μ™€ λͺ©μ μ΄ κ²ΉμΉ˜λŠ” 뢀뢄이 λ§ŽμœΌλ‚˜ 핡심적인 차이가 μ‘΄μž¬ν•©λ‹ˆλ‹€. κ°€μž₯ 큰 μ°¨μ΄λŠ” **μ„ μ–Έ 병합(Declaration Merging)**의 지원 μ—¬λΆ€μž…λ‹ˆλ‹€. μΈν„°νŽ˜μ΄μŠ€λŠ” λ™μΌν•œ μ΄λ¦„μœΌλ‘œ μ—¬λŸ¬ 번 μ„ μ–Έν•˜λ©΄ μžλ™μœΌλ‘œ ν•˜λ‚˜λ‘œ λ³‘ν•©λ˜μ§€λ§Œ, νƒ€μž… 별칭은 λ™μΌν•œ 이름을 μž¬μ„ μ–Έν•˜λ©΄ 컴파일 μ—λŸ¬λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€ [2, 3]. 이 νŠΉμ„± λ•Œλ¬Έμ— μ™ΈλΆ€μ—μ„œ ν™•μž₯ν•΄μ•Ό ν•˜λŠ” 라이브러리 μ½”λ“œμ—λŠ” μΈν„°νŽ˜μ΄μŠ€κ°€ μœ λ¦¬ν•˜μ§€λ§Œ, 예기치 μ•Šμ€ νƒ€μž… ν™•μž₯을 막아야 ν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μˆ˜μ€€μ˜ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ—λŠ” νƒ€μž… 별칭이 더 μ•ˆμ „ν•œ 선택이 될 수 μžˆμŠ΅λ‹ˆλ‹€ [2, 3, 7]. * **컴파일 μ„±λŠ₯ 및 λ™μž‘ 방식** TypeScript μ»΄νŒŒμΌλŸ¬λŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ²˜λ¦¬ν•  λ•Œ ν•΄λ‹Ή 이름을 κΈ°μ€€μœΌλ‘œ ν‰νƒ„ν™”λœ 단일 객체 νƒ€μž…μ„ λ§Œλ“€κ³  νƒ€μž… 관계λ₯Ό μΊμ‹±ν•©λ‹ˆλ‹€ [8, 9]. 반면, νƒ€μž… 별칭을 ν†΅ν•œ ꡐ집합 νƒ€μž…(`&`)은 참쑰될 λ•Œλ§ˆλ‹€ 맀번 속성을 μž¬κ·€μ μœΌλ‘œ λ³‘ν•©ν•˜κ³  μΆ©λŒμ„ 확인해야 ν•˜λ―€λ‘œ λŒ€κ·œλͺ¨ ν”„λ‘œμ νŠΈμ—μ„œλŠ” 컴파일 μ„±λŠ₯ μ €ν•˜μ˜ 원인이 될 수 μžˆμŠ΅λ‹ˆλ‹€ [8, 9]. λ”°λΌμ„œ TypeScript μ„±λŠ₯ κ°€μ΄λ“œμ—μ„œλŠ” κ°€λŠ₯ν•˜λ©΄ κ΅μ§‘ν•©λ³΄λ‹€λŠ” μΈν„°νŽ˜μ΄μŠ€ 상속(extends)을 μ‚¬μš©ν•  것을 ꢌμž₯ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€ [8, 10]. * **싀무적 μ‚¬μš© μ „λž΅** μ΄λŸ¬ν•œ νŠΉμ„±λ“€λ‘œ 인해, κ°œλ°œμžλ“€ μ‚¬μ΄μ—μ„œλŠ” μ–΄λ–€ 것을 기본으둜 μ‚¬μš©ν• μ§€μ— λŒ€ν•œ λ…ΌμŸκ³Ό λ‹€μ–‘ν•œ μ „λž΅μ΄ μ‘΄μž¬ν•©λ‹ˆλ‹€ [11, 12]. - **이원화 μ „λž΅**: ν™•μž₯ 지점이 ν•„μš”ν•œ μ™ΈλΆ€μ™€μ˜ 계약(Contract)μ΄λ‚˜ λ‹€ν˜•μ„±μ„ λ λŠ” 도메인 λͺ¨λΈμ—λŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜κ³ , ν™•μž₯이 ν•„μš” μ—†λŠ” λ‚΄λΆ€ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ΄λ‚˜ λ‹¨μˆœ ν˜•νƒœ μ„ μ–Έμ—λŠ” νƒ€μž… 별칭을 μ‚¬μš©ν•˜λŠ” μ „λž΅μž…λ‹ˆλ‹€ [3, 13]. - **단일화 μ „λž΅**: νŒ€ λ‚΄ ν˜Όλž€("이 κ²½μš°μ—λŠ” μ–΄λ–€ κ±Έ 써야 ν•˜μ§€?")을 λ°©μ§€ν•˜κΈ° μœ„ν•΄ 더 λ‹€μ±„λ‘œμš΄ ν‘œν˜„μ΄ κ°€λŠ₯ν•˜κ³  μ„ μ–Έ λ³‘ν•©μ˜ λΆ€μž‘μš©μ΄ μ—†λŠ” νƒ€μž… λ³„μΉ­λ§ŒμœΌλ‘œ μ½”λ“œλ² μ΄μŠ€λ₯Ό ν†΅μΌν•˜λŠ” νŒ€λ„ λ‹€μˆ˜ μ‘΄μž¬ν•©λ‹ˆλ‹€ [4, 6, 14]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Design & Experience λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[μΈν„°νŽ˜μ΄μŠ€ (Interface)]], [[μœ λ‹ˆμ˜¨ νƒ€μž… (Union Types)]], [[ꡬ쑰적 타이핑 (Structural Typing)]], [[μ„ μ–Έ 병합 (Declaration Merging)]] - **Projects/Contexts:** [[λŒ€κ·œλͺ¨ TypeScript ν”„λ‘œμ νŠΈμ˜ 컴파일 μ„±λŠ₯ μ΅œμ ν™”]], [[κ²¬κ³ ν•œ 도메인 λͺ¨λΈ 및 API 계약 섀계]] - **Contradictions/Notes:** TypeScript ν•Έλ“œλΆ 및 μ„±λŠ₯ κ°€μ΄λ“œλΌμΈμ€ 컴파일러의 캐싱 이점과 μ„±λŠ₯ μ΅œμ ν™”λ₯Ό 이유둜 객체 ν™•μž₯ μ‹œ ꡐ집합을 μ‚¬μš©ν•˜λŠ” νƒ€μž… 별칭보닀 μΈν„°νŽ˜μ΄μŠ€ 상속(extends)을 μ‚¬μš©ν•  것을 ꢌμž₯ν•©λ‹ˆλ‹€ [8-10]. ν•˜μ§€λ§Œ 싀무 ν˜„μž₯μ—μ„œλŠ” μ˜λ„μΉ˜ μ•Šμ€ μ„ μ–Έ 병합을 λ°©μ§€ν•˜κ³  μœ μ—°μ„±μ„ μ–»κ³ μž λ¦°νŒ…(Linting) κ·œμΉ™μ„ 톡해 μΈν„°νŽ˜μ΄μŠ€ μ‚¬μš©μ„ μ•„μ˜ˆ κΈˆμ§€ν•˜κ³  νƒ€μž… 별칭(Type Alias)λ§Œμ„ μ „λ©΄μ μœΌλ‘œ μ‚¬μš©ν•˜λŠ” 개발 νŒ€λ“€λ„ λ§Žμ•„ λͺ…ν™•ν•œ λŒ€λ¦½μ΄ μ‘΄μž¬ν•©λ‹ˆλ‹€ [4, 6, 15]. --- *Last updated: 2026-04-18* - Raw Source: [[00_Raw/2026-04-20/νƒ€μž… 별칭 (Type Alias).md]] ---