--- id: P-REINFORCE-AUTO-D2A4B8 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), ์œ ๋‹ˆ์˜จ(unions), ํŠœํ”Œ(tuples) ๋“ฑ ๋ณต์žกํ•œ ํƒ€์ž… ๊ตฌ์„ฑ์—๋„ ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค [1]. ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ์žฌ์„ ์–ธ ์‹œ ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š๊ณ  ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋ฏ€๋กœ, ์˜ˆ๊ธฐ์น˜ ์•Š์€ ํƒ€์ž… ํ™•์žฅ์„ ๋ฐฉ์ง€ํ•˜๋Š” ์—„๊ฒฉํ•œ ์ฝ”๋“œ ๊ด€๋ฆฌ์— ์œ ์šฉํ•˜๋‹ค [2, 3]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **ํ‘œํ˜„๋ ฅ๊ณผ ํ™œ์šฉ ๋ฒ”์œ„:** ํƒ€์ž… ๋ณ„์นญ์€ ์ธํ„ฐํŽ˜์ด์Šค๋ณด๋‹ค ๋” ๋„“์€ ํ‘œํ˜„๋ ฅ์„ ๊ฐ€์ง„๋‹ค [4]. ๊ฐ์ฒด ํ˜•ํƒœ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์›์‹œ ํƒ€์ž…, ์œ ๋‹ˆ์˜จ ํƒ€์ž…, ๊ต์ง‘ํ•ฉ(Intersection) ํƒ€์ž…, ๋งคํ•‘๋œ ํƒ€์ž…(Mapped Types), ์กฐ๊ฑด๋ถ€ ํƒ€์ž…(Conditional Types) ๋“ฑ ๋ณต์žกํ•œ ํƒ€์ž… ๋ณ€ํ™˜์„ ์ž์œ ๋กญ๊ฒŒ ์ง€์›ํ•œ๋‹ค [1, 4, 5]. ์ฃผ๋กœ ํ•จ์ˆ˜ ์ธ์ˆ˜๋‚˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ๊ตฌ์ฒด์ ์ธ ํ˜•ํƒœ๋ฅผ ์„ ์–ธํ•  ๋•Œ, ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค [5, 6]. * **์„ ์–ธ ๋ณ‘ํ•ฉ(Declaration Merging) ๋ฐฉ์ง€:** ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ์—ฌ๋Ÿฌ ๋ฒˆ ์„ ์–ธํ•  ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ํ•ฉ์ณ์ง€๋Š” ์„ ์–ธ ๋ณ‘ํ•ฉ ๊ธฐ๋Šฅ์ด ์žˆ์–ด ํ™•์žฅ์—๋Š” ์œ ๋ฆฌํ•˜์ง€๋งŒ, ์ข…์ข… ์˜๋„์น˜ ์•Š์€ ๊ตฌ์กฐ ๋ณ€๊ฒฝ์„ ์œ ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค [3, 4]. ๋ฐ˜๋ฉด, ํƒ€์ž… ๋ณ„์นญ์€ ๋™์ผํ•œ ์ด๋ฆ„์„ ์žฌ์„ ์–ธํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์‹ค์ˆ˜๋กœ ์ธํ•œ ๋ณ‘ํ•ฉ ์‹œ ์ฆ‰๊ฐ์ ์ธ ์ปดํŒŒ์ผ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค [2, 3]. ์ด๋Ÿฌํ•œ ํŠน์„ฑ ๋•Œ๋ฌธ์— ๋” ์—„๊ฒฉํ•œ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜์—ฌ ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์—์„œ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ฐ์ดํ„ฐ ๋ณ‘ํ•ฉ์„ ๋ฐฉ์–ดํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•˜๋‹ค [2, 3]. * **์ปดํŒŒ์ผ๋Ÿฌ ์„ฑ๋Šฅ๊ณผ ์บ์‹ฑ์˜ ์ฐจ์ด:** TypeScript ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ด๋ฆ„์„ ๊ธฐ์ค€์œผ๋กœ ํƒ€์ž… ๊ด€๊ณ„๋ฅผ ์บ์‹ฑํ•˜์ง€๋งŒ, ํƒ€์ž… ๋ณ„์นญ์„ ํ†ตํ•œ ๊ต์ง‘ํ•ฉ ํƒ€์ž…(`&`)์€ ๋งค๋ฒˆ ๊ตฌ์กฐ๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ๋ณ‘ํ•ฉํ•˜๊ณ  ํ‰ํƒ„ํ™”(flattening)ํ•˜์—ฌ ์†์„ฑ ์ถฉ๋Œ์„ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค [7, 8]. ์ด๋กœ ์ธํ•ด ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋ณต์žกํ•œ ๊ต์ง‘ํ•ฉ ํ˜•ํƒœ์˜ ํƒ€์ž… ๋ณ„์นญ์ด ์ปดํŒŒ์ผ ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚ค๋Š” ์›์ธ์ด ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, TypeScript ์„ฑ๋Šฅ ๊ฐ€์ด๋“œ์—์„œ๋Š” ๊ฐ์ฒด ํ™•์žฅ ์‹œ ์ธํ„ฐํŽ˜์ด์Šค์˜ `extends`๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค [7, 9, 10]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Design & Experience ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[Interface]], [[Union Types]], [[Intersection Types]] - **Projects/Contexts:** [[TypeScript Type System ์„ค๊ณ„]], [[๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋„๋ฉ”์ธ ๋ชจ๋ธ๋ง]] - **Contradictions/Notes:** ์†Œ์Šค ๋‚ด ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ๋Š” Type Alias์™€ Interface์˜ ์‚ฌ์šฉ์„ ๋‘๊ณ  ๋šœ๋ ทํ•œ ๋…ผ์Ÿ์ด ์กด์žฌํ•œ๋‹ค. ์ผ๋ถ€ ๊ฐœ๋ฐœ์ž๋“ค์€ ์„ ์–ธ ๋ณ‘ํ•ฉ์œผ๋กœ ์ธํ•œ ์ž ์žฌ์  ์˜ค๋ฅ˜๋ฅผ ํ”ผํ•˜๊ณ  ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ „์ ์œผ๋กœ Type Alias๋งŒ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ์ฃผ์žฅํ•œ๋‹ค [2, 4, 11]. ๋ฐ˜๋ฉด, TypeScript ๊ณต์‹ ๊ฐ€์ด๋“œ ๋ฐ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์€ ์ปดํŒŒ์ผ๋Ÿฌ ์บ์‹ฑ์— ๋”ฐ๋ฅธ ์„ฑ๋Šฅ ์ตœ์ ํ™”์™€ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€์˜ ์ง๊ด€์„ฑ(๋ถˆํˆฌ๋ช…ํ•œ ์ด๋ฆ„ ํ‘œ์‹œ)์„ ์ด์œ ๋กœ Interface๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋ฐ˜๋ก ํ•œ๋‹ค [7, 12-15]. --- *Last updated: 2026-04-18* - Raw Source: [[00_Raw/2026-04-20/Type Alias.md]] ---