--- id: P-REINFORCE-AUTO-795BA0 category: "[[10_Wiki/πŸ’‘ Topics/Programming & Language]]" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ꡐ집합 νƒ€μž… (Intersection Types)" --- # [[ꡐ집합 νƒ€μž… (Intersection Types)]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > 지식 μš”μ•½ 정보 μΆ”μΆœ 쀑... ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **κΈ°λ³Έ κ°œλ… 및 λ™μž‘ 원리:** ꡐ집합 νƒ€μž…μ€ λ‹€μˆ˜μ˜ νƒ€μž…μ„ κ²°ν•©ν•˜μ—¬ ν•˜λ‚˜μ˜ νƒ€μž…μœΌλ‘œ λ§Œλ“­λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, `Person & Serializable & Loggable` νƒ€μž…μ˜ κ°μ²΄λŠ” 이 μ„Έ κ°€μ§€ νƒ€μž…μ΄ κ°€μ§„ λͺ¨λ“  멀버λ₯Ό ν¬ν•¨ν•˜κ²Œ λ©λ‹ˆλ‹€ [1]. 집합둠적 κ΄€μ μ—μ„œ `&` μ—°μ‚°μžλŠ” λ‹¨μˆœν•œ 객체 ν˜•νƒœμ˜ 결합이 μ•„λ‹ˆλΌ 'κ°’ μ§‘ν•©(value sets)'의 ꡐ집합을 μ˜λ―Έν•˜λ©°, κ²°ν•©λœ λͺ¨λ“  μ œμ•½ 쑰건을 λ™μ‹œμ— λ§Œμ‘±ν•˜λŠ” λŒ€μƒλ“€μ˜ 집합을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€ [4]. - **μΈν„°νŽ˜μ΄μŠ€ ν™•μž₯(Interface Extends)과의 비ꡐ 및 μ„±λŠ₯:** TypeScriptλŠ” 객체 νƒ€μž…μ„ κ²°ν•©ν•˜κ±°λ‚˜ ν™•μž₯ν•  λ•Œ ꡐ집합 νƒ€μž…λ³΄λ‹€ μΈν„°νŽ˜μ΄μŠ€μ˜ `extends` κΈ°λŠ₯을 μ‚¬μš©ν•˜λŠ” 것을 ꢌμž₯ν•©λ‹ˆλ‹€ [6, 7]. μΈν„°νŽ˜μ΄μŠ€λŠ” λ‹¨μΌν•œ 평면 객체 νƒ€μž…μ„ μƒμ„±ν•˜κ³  κ·Έ 이름을 기반으둜 관계λ₯Ό μΊμ‹±ν•˜μ—¬ 컴파일 μ„±λŠ₯을 μ΅œμ ν™”ν•©λ‹ˆλ‹€ [6, 8-10]. 반면, ꡐ집합 νƒ€μž…μ€ μ‚¬μš©λ  λ•Œλ§ˆλ‹€ 맀번 ꡬ쑰λ₯Ό μž¬κ·€μ μœΌλ‘œ λ³‘ν•©ν•˜κ³  평가해야 ν•˜λ―€λ‘œ λŒ€κ·œλͺ¨ ν”„λ‘œμ νŠΈμ—μ„œλŠ” 컴파일 속도 μ €ν•˜μ˜ 원인이 될 수 μžˆμŠ΅λ‹ˆλ‹€ [6, 10]. - **νƒ€μž… 좩돌 처리의 차이점:** 두 νƒ€μž…μ„ κ²°ν•©ν•  λ•Œ ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” 속성이 μ‘΄μž¬ν•˜λŠ” 경우, μΈν„°νŽ˜μ΄μŠ€ 상속은 κ°œλ°œμžμ—κ²Œ λͺ…μ‹œμ μΈ μ—λŸ¬λ₯Ό λ°œμƒμ‹œμΌœ μ‹€μˆ˜λ₯Ό λ°©μ§€ν•©λ‹ˆλ‹€ [9, 11]. 반면 ꡐ집합 νƒ€μž…μ€ μΆ©λŒν•˜λŠ” 속성을 쑰용히 μ²˜λ¦¬ν•˜μ—¬, κ·Έ 결과둜 μ ˆλŒ€ μ‘΄μž¬ν•  수 μ—†λŠ” `never` νƒ€μž…μ„ μƒμ„±ν•΄λ²„λ¦¬λŠ” νŠΉμ§•μ΄ μžˆμŠ΅λ‹ˆλ‹€ [9, 11]. - **μ‹€μš©μ  ν™œμš©:** ꡐ집합 νƒ€μž…μ€ μ—¬λŸ¬ μΆœμ²˜μ—μ„œ κΈ°λŠ₯을 λͺ¨μ•„와야 ν•  λ•Œ μœ μš©ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μΌκ΄€λœ μ—λŸ¬ 처리 νƒ€μž…μ„ 기쑴의 νŠΉμ • λ„€νŠΈμ›Œν¬ 응닡 νƒ€μž…μ— κ²°ν•©ν•˜κ±°λ‚˜, `User` νƒ€μž…μ— `AdminPermissions` 속성을 더해 `AdminUser`λ₯Ό μƒμ„±ν•˜λŠ” μ‹μ˜ λͺ¨λΈλ§μ— μ‚¬μš©λ©λ‹ˆλ‹€ [3, 12]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[μœ λ‹ˆμ–Έ νƒ€μž… (Union Types)]], [[μΈν„°νŽ˜μ΄μŠ€ (Interfaces)]], [[ꡬ쑰적 타이핑 (Structural Typing)]] - **Projects/Contexts:** [[TypeScript 컴파일러 μ„±λŠ₯ μ΅œμ ν™”]], [[객체 νƒ€μž… μ‘°ν•© 및 ν™•μž₯]] - **Contradictions/Notes:** ꡐ집합 νƒ€μž…(`&`)은 μœ μ—°ν•˜κ²Œ μ—¬λŸ¬ 객체λ₯Ό κ²°ν•©ν•  수 μžˆλŠ” μˆ˜λ‹¨μ΄μ§€λ§Œ, μ„±λŠ₯ μ΅œμ ν™”μ™€ λͺ…μ‹œμ  좩돌 μ—λŸ¬ κ°μ§€μ˜ 이점 λ•Œλ¬Έμ— TypeScript 곡식 κ°€μ΄λ“œλ‚˜ μ„±λŠ₯ κ°€μ΄λ“œλΌμΈμ—μ„œλŠ” κ°€λŠ₯ν•œ 경우 μΈν„°νŽ˜μ΄μŠ€ ν™•μž₯(`extends`)을 더 μš°μ„ μ μœΌλ‘œ μ‚¬μš©ν•  것을 ꢌμž₯ν•©λ‹ˆλ‹€ [6, 7, 9]. --- *Last updated: 2026-04-18* - Raw Source: [[00_Raw/2026-04-20/ꡐ집합 νƒ€μž… (Intersection Types).md]] ---