--- id: P-REINFORCE-AUTO-E5B908 category: "10_Wiki/πŸ’‘ Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - 에일리어싱 (Aliasing)" --- # [[α„‹α…¦α„‹α…΅α†―α„…α…΅α„‹α…₯상 (Aliasing)|에일리어싱 (Aliasing)]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > 에일리어싱(Aliasing)은 ν”„λ‘œκ·Έλž˜λ°μ—μ„œ κΈ°μ‘΄ 데이터 νƒ€μž…μ— μƒˆλ‘œμš΄ 이름을 λΆ€μ—¬ν•˜κ±°λ‚˜(νƒ€μž… 에일리어싱), λ™μΌν•œ 데이터λ₯Ό μ—¬λŸ¬ μ°Έμ‘° λ³€μˆ˜κ°€ κ°€λ¦¬ν‚€κ²Œ λ˜λŠ” ν˜„μƒ(μ°Έμ‘° 에일리어싱)을 μ˜λ―Έν•©λ‹ˆλ‹€ [1, 2]. TypeScriptμ—μ„œ νƒ€μž… 에일리어싱은 κΈ°μ‘΄ νƒ€μž…κ³Ό μƒν˜Έ ν˜Έν™˜λ˜λŠ” μ„œμˆ μ μΈ μ΄λ¦„ν‘œ 역할을 ν•˜λ©°, μ°Έμ‘° 에일리어싱은 `readonly` 데이터가 κ°€λ³€(mutable) 참쑰둜 전달될 λ•Œ μ˜λ„μΉ˜ μ•Šμ€ 데이터 λ³€ν˜•(Mutation)을 μΌμœΌν‚€λŠ” μ£Όμš” 원인이 λ˜κΈ°λ„ ν•©λ‹ˆλ‹€ [1-3]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **νƒ€μž… 에일리어싱 (Type Aliasing):** TypeScriptμ—μ„œ `type` ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ κΈ°μ‘΄ νƒ€μž…μ— μƒˆλ‘œμš΄ 이름을 λΆ€μ—¬ν•˜λŠ” 것을 νƒ€μž… μ—μΌλ¦¬μ–΄μŠ€λΌκ³  λΆ€λ¦…λ‹ˆλ‹€ [4]. 예λ₯Ό λ“€μ–΄ `type Percentage = number`와 같이 μ„ μ–Έν•  수 μžˆμœΌλ‚˜, μ΄λŠ” λ‹¨μˆœνžˆ κΈ°μ‘΄ νƒ€μž…μ— μƒˆλ‘œμš΄ 이름을 λΆ€μ—¬ν•˜λŠ” μ„œμˆ μ μΈ(descriptive) μ—­ν• λ§Œ ν•  뿐, κΈ°λŠ₯적으둜 μ™„μ „νžˆ λ…λ¦½λœ μƒˆλ‘œμš΄ νƒ€μž…μ„ μƒμ„±ν•˜λŠ” 것은 μ•„λ‹™λ‹ˆλ‹€(κΈ°μ‘΄ νƒ€μž…κ³Ό μƒν˜Έ κ΅ν™˜ κ°€λŠ₯) [1]. 주둜 μ›μ‹œ νƒ€μž…(primitives), μœ λ‹ˆμ–Έ(unions), νŠœν”Œ(tuples) λ“± μΈν„°νŽ˜μ΄μŠ€λ‘œ ν‘œν˜„ν•˜κΈ° νž˜λ“  λ³΅μž‘ν•œ νƒ€μž… ꡬ성을 λͺ…λͺ…ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€ [4, 5]. - **데이터 μ°Έμ‘° 에일리어싱과 `readonly`의 함정:** TypeScriptμ—μ„œ `readonly` μˆ˜μ‹μ–΄λ₯Ό μ‚¬μš©ν•  λ•Œ κ°œλ°œμžλ“€μ΄ κ°€μž₯ 자주 κ²ͺλŠ” 함정은 에일리어싱(Aliasing)을 ν†΅ν•œ 데이터 λ³€ν˜•μž…λ‹ˆλ‹€ [2]. `readonly`λŠ” 였직 ν•΄λ‹Ή `readonly` μ°Έμ‘°λ₯Ό ν†΅ν•œ 직접적인 μ ‘κ·Ό 및 μˆ˜μ •λ§Œμ„ λ°©μ§€ν•©λ‹ˆλ‹€ [6]. - **νƒ€μž… ν˜Έν™˜μ„±μœΌλ‘œ μΈν•œ λ³€ν˜• μœ„ν—˜:** λ§Œμ•½ `readonly`둜 μ„ μ–Έλœ λ°°μ—΄μ΄λ‚˜ 객체λ₯Ό κ°€λ³€(mutable) λ§€κ°œλ³€μˆ˜λ₯Ό κΈ°λŒ€ν•˜λŠ” ν•¨μˆ˜μ— 전달할 경우, TypeScriptλŠ” νƒ€μž… ν˜Έν™˜μ„±(type compatibility)의 이유둜 이λ₯Ό ν—ˆμš©ν•˜κ²Œ λ©λ‹ˆλ‹€ [2]. μ΄λ ‡κ²Œ 에일리어싱이 λ°œμƒν•˜λ©΄ ν•΄λ‹Ή ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ κ°€λ³€ μ°Έμ‘°λ₯Ό 톡해 원본 "readonly" 데이터λ₯Ό μˆ˜μ •ν•  수 μžˆλŠ” 취약점이 λ°œμƒν•©λ‹ˆλ‹€ [2, 3]. 이λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄μ„œλŠ” ν•¨μˆ˜ μ‹œκ·Έλ‹ˆμ²˜λ₯Ό μ‹ μ€‘ν•˜κ²Œ μ„€κ³„ν•˜μ—¬ `readonly` λ§€κ°œλ³€μˆ˜λ₯Ό 받도둝 κ°•μ œν•˜κ±°λ‚˜, 데이터λ₯Ό λ³΅μ‚¬ν•˜μ—¬ 전달해야 ν•©λ‹ˆλ‹€ [3]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** Type Alias (νƒ€μž… 별칭), [[Readonly 유탈라타 ᄐᅑ압|Readonly]], Opaque Types (뢈투λͺ… νƒ€μž…) - **Projects/Contexts:** TypeScript의 λΆˆλ³€μ„±(Immutability) 관리, μΈν„°νŽ˜μ΄μŠ€μ™€ νƒ€μž… 별칭 비ꡐ(Interface vs Type) - **Contradictions/Notes:** TypeScript의 `readonly`λŠ” 컴파일 νƒ€μž„μ— λΆˆλ³€μ„±μ„ μ œκ³΅ν•˜λŠ” κ°•λ ₯ν•œ λ„κ΅¬μ΄μ§€λ§Œ, 에일리어싱을 톡해 데이터가 κ°€λ³€ λ§€κ°œλ³€μˆ˜λ‘œ 전달될 κ²½μš°μ—λŠ” μ»΄νŒŒμΌλŸ¬κ°€ 이λ₯Ό μž‘μ•„λ‚΄μ§€ λͺ»ν•˜μ—¬ 데이터가 μˆ˜μ •λ  수 μžˆλ‹€λŠ”(얕은 λΆˆλ³€μ„±) 근본적인 ν•œκ³„λ₯Ό μ§€λ‹™λ‹ˆλ‹€ [2, 6]. --- *Last updated: 2026-04-18* - Raw Source: 00_Raw/2026-04-20/에일리어싱 (Aliasing).md ---