--- id: [[P-Reinforce]]-AUTO-20C803 category: "10_Wiki/πŸ’‘ Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - μ§‘ν•©λ‘  (Set Theory)" --- # [[μ§‘ν•©λ‘  (Set Theory)]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > μ§‘ν•©λ‘ (Set Theory)은 κ°μ²΄λ“€μ˜ μˆœμ„œ μ—†λŠ” λͺ¨μž„(unordered collections of objects)을 λ‹€λ£¨λŠ” μˆ˜ν•™μ  μ΄λ‘ μž…λ‹ˆλ‹€ [1]. TypeScript의 λ§₯λ½μ—μ„œ 집합둠은 'νƒ€μž…(Type)'을 [[JavaScript]] κ°’λ“€μ˜ μ§‘ν•©μœΌλ‘œ μ΄ν•΄ν•˜κ³  ν•΄μ„ν•˜λŠ” λͺ¨λΈλ‘œ μ‚¬μš©λ©λ‹ˆλ‹€ [2, 3]. 이λ₯Ό 톡해 μ„œλΈŒνƒ€μž…(subtype), μœ λ‹ˆμ–Έ(union), μΈν„°μ„Ήμ…˜(intersection) λ“±μ˜ λ³΅μž‘ν•œ νƒ€μž… μ‹œμŠ€ν…œ λ™μž‘ 원리λ₯Ό λΆ€λΆ„μ§‘ν•©, ν•©μ§‘ν•©, ꡐ집합과 같은 μˆ˜ν•™μ  μ§‘ν•© κ°œλ…μœΌλ‘œ λͺ…ν™•ν•˜κ²Œ μ„€λͺ…ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [2, 4, 5]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **μ§‘ν•©μ˜ κΈ°λ³Έ κ°œλ… 및 관계** * **μ§‘ν•©κ³Ό 우주(Universe):** 집합은 μ€‘κ΄„ν˜Έ(`{}`)둜 ν‘œν˜„λ˜λŠ” ν•­λͺ©λ“€μ˜ λͺ¨μž„이며, μš”μ†Œκ°€ ν•˜λ‚˜λ„ μ—†λŠ” 빈 μ§‘ν•©(empty set)은 `βˆ…`둜 ν‘œκΈ°ν•©λ‹ˆλ‹€ [1]. μ‘΄μž¬ν•˜λŠ” λͺ¨λ“  κ°€λŠ₯ν•œ 값듀을 ν¬ν•¨ν•˜λŠ” 세계λ₯Ό 우주(universe)라고 λΆ€λ¦…λ‹ˆλ‹€ [1]. * **λΆ€λΆ„μ§‘ν•©(Subset):** μ§‘ν•© A의 λͺ¨λ“  μš”μ†Œκ°€ μ§‘ν•© B에도 ν¬ν•¨λ˜μ–΄ μžˆλ‹€λ©΄, AλŠ” B의 뢀뢄집합이 λ©λ‹ˆλ‹€ [6]. 빈 집합은 자기 μžμ‹ μ„ ν¬ν•¨ν•œ λͺ¨λ“  μ§‘ν•©μ˜ λΆ€λΆ„μ§‘ν•©μœΌλ‘œ κ°„μ£Όλ©λ‹ˆλ‹€ [6, 7]. * **μ§‘ν•©μ˜ 핡심 μ—°μ‚°** * **ν•©μ§‘ν•©(Union, $\cup$):** 두 μ§‘ν•© A와 B 쀑 ν•˜λ‚˜λΌλ„ μ†ν•˜λŠ” λͺ¨λ“  μš”μ†Œλ₯Ό ν¬ν•¨ν•˜λŠ” μ§‘ν•©μž…λ‹ˆλ‹€ [4]. * **ꡐ집합(Intersection, $\cap$):** 두 μ§‘ν•© A와 B λͺ¨λ‘μ— κ³΅ν†΅μœΌλ‘œ μ†ν•˜λŠ” μš”μ†Œλ“€λ§Œμ˜ μ§‘ν•©μž…λ‹ˆλ‹€ [4]. * **μ°¨μ§‘ν•©(Difference, $\setminus$):** μ§‘ν•© Aμ—λŠ” μ†ν•˜μ§€λ§Œ μ§‘ν•© Bμ—λŠ” μ†ν•˜μ§€ μ•ŠλŠ” μš”μ†Œλ“€μ˜ μ§‘ν•©μž…λ‹ˆλ‹€ [4]. * **TypeScript νƒ€μž… μ‹œμŠ€ν…œκ³Όμ˜ λ§€ν•‘ (Set Theory in TypeScript)** * **νƒ€μž…κ³Ό κ°’μ˜ μ§‘ν•©:** TypeScript의 νƒ€μž…μ€ ν”„λ‘œκ·Έλž¨μ΄ 생성할 수 μžˆλŠ” λͺ¨λ“  JavaScript κ°’λ“€μ˜ μ§‘ν•©μœΌλ‘œ μΉ˜ν™˜ν•˜μ—¬ 생각할 수 μžˆμŠ΅λ‹ˆλ‹€ [2, 3]. `unknown` νƒ€μž…μ€ λͺ¨λ“  JS κ°’λ“€μ˜ μ§‘ν•©(우주)이며, `never` νƒ€μž…μ€ 빈 μ§‘ν•©(empty set, βˆ…)에 ν•΄λ‹Ήν•©λ‹ˆλ‹€ [2, 5]. * **λΆ€λΆ„μ§‘ν•©κ³Ό ν• λ‹Ή(extends):** TypeScriptμ—μ„œ νƒ€μž… Aκ°€ νƒ€μž… B의 뢀뢄집합일 λ•Œ(`A extends B`), AλŠ” B에 ν• λ‹Ή κ°€λŠ₯ν•©λ‹ˆλ‹€ [2, 3]. 즉, μ„œλΈŒνƒ€μž…(subtype, μ’ν˜€μ§„ νƒ€μž…)은 λΆ€λΆ„μ§‘ν•©(subset)에 ν•΄λ‹Ήν•˜κ³ , μŠˆνΌνƒ€μž…(supertype, λ„“ν˜€μ§„ νƒ€μž…)은 μƒμœ„μ§‘ν•©(superset)에 ν•΄λ‹Ήν•©λ‹ˆλ‹€ [5, 8]. * **νƒ€μž… μ—°μ‚°μžμ™€ μ§‘ν•© μ—°μ‚°μ˜ 일치:** * μœ λ‹ˆμ–Έ νƒ€μž…(`|`)은 μ§‘ν•©μ˜ ν•©μ§‘ν•© μ—°μ‚°μžλ‘œ μž‘λ™ν•©λ‹ˆλ‹€ [2]. * μΈν„°μ„Ήμ…˜ νƒ€μž…(`&`)은 μ§‘ν•©μ˜ ꡐ집합 μ—°μ‚°μžλ‘œ μž‘λ™ν•©λ‹ˆλ‹€ [2]. * `Exclude` μœ ν‹Έλ¦¬ν‹° νƒ€μž…μ€ μœ λ‹ˆμ–Έ νƒ€μž…μ— ν•œν•΄ μ§‘ν•©μ˜ μ°¨μ§‘ν•© κΈ°λŠ₯κ³Ό μœ μ‚¬ν•˜κ²Œ λ™μž‘ν•©λ‹ˆλ‹€ [2, 5]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** TypeScript Type[[ system]], [[Structural Typing]], Union and Intersection Types - **Projects/Contexts:** TypeScript의 νƒ€μž… μ—°μ‚°κ³Ό 쑰건뢀 νƒ€μž…(Conditional Types)의 λ™μž‘ 원리 이해 및 μΈν„°νŽ˜μ΄μŠ€ 섀계 - **Contradictions/Notes:** 객체(Object) νƒ€μž…μ— λŒ€ν•œ `&`(μΈν„°μ„Ήμ…˜) μ—°μ‚°μ΄λ‚˜ `|`(μœ λ‹ˆμ–Έ) 연산은 객체의 ν˜•νƒœ(Shape)λ₯Ό λ‹¨μˆœνžˆ κ²°ν•©ν•˜λŠ” 것이 μ•„λ‹ˆλΌ, ν•΄λ‹Ή 객체 ν˜•νƒœλ₯Ό λ§Œμ‘±ν•˜λŠ” 'κ°’λ“€μ˜ μ§‘ν•©'에 λŒ€ν•œ ꡐ집합 및 ν•©μ§‘ν•© μ—°μ‚°μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€. λ”°λΌμ„œ `{ name: string } & { age: number }`λŠ” 두 속성을 λͺ¨λ‘ κ°€μ§„ κ°μ²΄λ“€μ˜ ꡐ집합을 μ˜λ―Έν•˜κ²Œ λ©λ‹ˆλ‹€ [9, 10]. --- *Last updated: 2026-04-18* ---