--- id: P-REINFORCE-AUTO-129F01 category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ๋ช…๋ชฉ์  ํƒ€์ดํ•‘ (Nominal Typing)" --- # [[แ„†แ…งแ†ผแ„†แ…ฉแ†จแ„Œแ…ฅแ†จ แ„แ…กแ„‹แ…ตแ„‘แ…ตแ†ผ (Nominal Typing)|๋ช…๋ชฉ์  ํƒ€์ดํ•‘ (Nominal Typing)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ๋ช…๋ชฉ์  ํƒ€์ดํ•‘(Nominal Typing)์€ ๊ฐ์ฒด์˜ ์‹ค์ œ ํ˜•ํƒœ๋‚˜ ๊ตฌ์กฐ์™€ ์ƒ๊ด€์—†์ด ํƒ€์ž…์˜ ์ด๋ฆ„์ด๋‚˜ ๋ช…์‹œ์  ์„ ์–ธ์ด ์ผ์น˜ํ•ด์•ผ๋งŒ ํ˜ธํ™˜์„ฑ์„ ์ธ์ •ํ•˜๋Š” ํƒ€์ž… ์‹œ์Šคํ…œ ๋ฐฉ์‹์ด๋‹ค [1, 2]. TypeScript๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌ์กฐ์  ํƒ€์ดํ•‘์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ช…๋ชฉ์  ํƒ€์ดํ•‘์„ ๋‚ด์žฅ ๊ธฐ๋Šฅ์œผ๋กœ ์ง€์›ํ•˜์ง€ ์•Š์ง€๋งŒ, Java๋‚˜ C# ๊ฐ™์€ ์ „ํ†ต์ ์ธ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์—์„œ๋Š” ๊ธฐ๋ณธ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค [1-3]. TypeScript ํ™˜๊ฒฝ์—์„œ๋Š” ์˜๋ฏธ์ ์œผ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด '๋ธŒ๋žœ๋””๋“œ ํƒ€์ž…(Branded Types)' ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ช…๋ชฉ์  ํƒ€์ดํ•‘์˜ ํšจ๊ณผ๋ฅผ ํ‰๋‚ด ๋‚ธ๋‹ค [3-5]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **๋ช…๋ชฉ์  ํƒ€์ดํ•‘์˜ ์ •์˜์™€ ๋™์ž‘ ๋ฐฉ์‹** ๋ช…๋ชฉ์  ํƒ€์ดํ•‘ ์ฒด๊ณ„์—์„œ๋Š” ํƒ€์ž…์˜ ์ด๋ฆ„์ด ์ผ์น˜ํ•ด์•ผ๋งŒ ๋ฐ์ดํ„ฐ์˜ ํ˜ธํ™˜์„ฑ์ด ์„ฑ๋ฆฝํ•œ๋‹ค [1]. ์ด๋Š” "ํŠน์ • ์‹ ๋ถ„์ฆ์ด ์žˆ์–ด์•ผ๋งŒ ๋ฌธ์„ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋Š”" ๋ฐฉ์‹์— ๋น„์œ ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹ค์ œ ์†์„ฑ์ด๋‚˜ ๋ฉ”์„œ๋“œ์˜ ํ˜•ํƒœ(๊ตฌ์กฐ)๊ฐ€ ๊ฐ™๋”๋ผ๋„ ์ด๋ฆ„์ด ๋‹ค๋ฅด๋ฉด ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค [2]. * **TypeScript์—์„œ์˜ ๋ถ€์žฌ์™€ ํ•„์š”์„ฑ** TypeScript์™€ JavaScript๋Š” ๊ตฌ๋ณ„ ๊ฐ€๋Šฅํ•œ ํƒ€์ž… ๋ณ„์นญ(distinguishable type aliases)์„ ์ƒ์„ฑํ•˜๋Š” ๋“ฑ ๋ช…๋ชฉ์  ํƒ€์ดํ•‘ ๋งค์นญ์„ ์ง์ ‘์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” ๋‚ด์žฅ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค [3, 6]. ๊ทธ๋Ÿฌ๋‚˜ ์‹œ์Šคํ…œ์˜ ๋ณต์žก๋„๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์˜๋ฏธ์ ์œผ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•˜๋Š” '๊ธฐ๋ณธ ํƒ€์ž…์—์˜ ์ง‘์ฐฉ(Primitive Obsession)' ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฏ€๋กœ, ๋Ÿฐํƒ€์ž„ ๊ตฌ์กฐ๊ฐ€ ๋™์ผํ•œ ๊ฐ’๋“ค์„ ํƒ€์ž… ์‹œ์Šคํ…œ ๋‚ด์—์„œ ๋‹ค๋ฅด๊ฒŒ ์ทจ๊ธ‰ํ•ด์•ผ ํ•  ๊ฐ•๋ ฅํ•œ ํ•„์š”์„ฑ์ด ๋Œ€๋‘๋œ๋‹ค [3, 5]. * **๋ธŒ๋žœ๋””๋“œ ํƒ€์ž…(Branded Types)์„ ํ†ตํ•œ ๊ตฌํ˜„** ๋ช…๋ชฉ์  ํƒ€์ดํ•‘์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” TypeScript์—์„œ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ์ž๋“ค์€ '๋ธŒ๋žœ๋””๋“œ ํƒ€์ž…' ๋˜๋Š” '์˜คํŒจํฌ ํƒ€์ž…(Opaque Types)'์ด๋ผ๋Š” ํŒจํ„ด์„ ์‚ฌ์šฉํ•œ๋‹ค [4]. ์ด ํŒจํ„ด์€ ๋Ÿฐํƒ€์ž„์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š๊ณ  ์ปดํŒŒ์ผ ์‹œ์ ์—๋งŒ ์กด์žฌํ•˜๋Š” ๊ณ ์œ ํ•œ ์†์„ฑ(๋ธŒ๋žœ๋“œ)์„ ํƒ€์ž…์— ์ธ์œ„์ ์œผ๋กœ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค [4, 5]. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ™์€ ์›์‹œ ํƒ€์ž…(์˜ˆ: `string`)์ด๋ผ๋„ ์ด๋ฉ”์ผ์ด๋‚˜ ์‚ฌ์šฉ์ž ID์ฒ˜๋Ÿผ ์„œ๋กœ ๋‹ค๋ฅธ ์˜๋ฏธ๋ฅผ ์ง€๋‹Œ ๊ฐ’๋“ค์ด ์„œ๋กœ ํ˜ผ์šฉ๋˜๊ฑฐ๋‚˜ ์ž˜๋ชป ํ• ๋‹น๋˜๋Š” ๊ฒƒ์„ ๋ง‰๊ณ , ์—„๊ฒฉํ•œ ๋ช…๋ชฉ์  ๊ตฌ๋ถ„์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค [4, 5]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[แ„€แ…ฎแ„Œแ…ฉแ„Œแ…ฅแ†จ แ„แ…กแ„‹แ…ตแ„‘แ…ตแ†ผ (Structural Typing)|๊ตฌ์กฐ์  ํƒ€์ดํ•‘ (Structural Typing)]], [[แ„‡แ…ณแ„…แ…ขแ†ซแ„ƒแ…ตแ„ƒแ…ณ แ„แ…กแ„‹แ…ตแ†ธ (Branded Types)|๋ธŒ๋žœ๋””๋“œ ํƒ€์ž… (Branded Types)]], [[แ„€แ…ตแ„‡แ…ฉแ†ซ แ„แ…กแ„‹แ…ตแ†ธแ„‹แ…ฆแ„‹แ…ด แ„Œแ…ตแ†ธแ„Žแ…กแ†จ (Primitive Obsession)|๊ธฐ๋ณธ ํƒ€์ž…์—์˜ ์ง‘์ฐฉ (Primitive Obsession)]] - **Projects/Contexts:** [[แ„ƒแ…ฉแ„†แ…ฆแ„‹แ…ตแ†ซ แ„€แ…ตแ„‡แ…กแ†ซ แ„‰แ…ฅแ†ฏแ„€แ…จ (DDD) แ„†แ…ตแ†พ แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ แ„‹แ…ฉแ„‹แ…งแ†ท แ„‡แ…กแ†ผแ„Œแ…ต|๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„ (DDD) ๋ฐ ๋ฐ์ดํ„ฐ ์˜ค์—ผ ๋ฐฉ์ง€]], [[TypeScriptแ„‹แ…ด แ„‹แ…กแ†ซแ„Œแ…ฅแ†ซแ„’แ…กแ†ซ แ„‹แ…ตแ†ซแ„แ…ฅแ„‘แ…ฆแ„‹แ…ตแ„‰แ…ณ แ„‰แ…ฅแ†ฏแ„€แ…จ|TypeScript์˜ ์•ˆ์ „ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„]] - **Contradictions/Notes:** Java๋‚˜ C#๊ณผ ๊ฐ™์€ ์–ธ์–ด๋Š” ๋ช…๋ชฉ์  ํƒ€์ดํ•‘์„ ๊ธฐ๋ณธ ์–ธ์–ด ์ฐจ์›์—์„œ ์ œ๊ณตํ•˜์ง€๋งŒ, TypeScript๋Š” ์ด๋ฅผ ๋‚ด์žฅํ•˜๊ณ  ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ [1-3], ๋ช…๋ชฉ์  ํƒ€์ดํ•‘์˜ ์ด์ ์„ ๋ˆ„๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ต์ง‘ํ•ฉ ํƒ€์ž…(`&`)์ด๋‚˜ `unique symbol` ๋“ฑ์„ ํ™œ์šฉํ•˜์—ฌ ์ธ์œ„์ ์ธ ํŒจํ„ด(๋ธŒ๋žœ๋””๋“œ ํƒ€์ž…)์„ ๊ตฌํ˜„ํ•ด์•ผ๋งŒ ํ•œ๋‹ค [7, 8]. --- *Last updated: 2026-04-18* - Raw Source: 00_Raw/2026-04-20/๋ช…๋ชฉ์  ํƒ€์ดํ•‘ (Nominal Typing).md ---