--- id: P-REINFORCE-AUTO-53A6E9 category: "[[10_Wiki/πŸ’‘ Topics/Programming & Language]]" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - μ„€μ • 객체 및 룩업 ν…Œμ΄λΈ” 섀계(Configuration Objects and Lookup Tables)" --- # [[μ„€μ • 객체 및 룩업 ν…Œμ΄λΈ” 섀계(Configuration Objects and Lookup Tables)]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > μ„€μ • 객체(Configuration Objects)와 룩업 ν…Œμ΄λΈ”(Lookup Tables)은 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ‚΄μ—μ„œ λ³€κ²½λ˜μ§€ μ•Šμ•„μ•Ό ν•˜λŠ” κ³ μ •λœ μƒνƒœ 데이터, λ§€ν•‘ 정보 λ˜λŠ” ν™˜κ²½ 섀정을 μ •μ˜ν•˜κΈ° μœ„ν•œ κ΅¬μ‘°μž…λ‹ˆλ‹€. TypeScriptμ—μ„œλŠ” μ΄λŸ¬ν•œ 객체가 λŸ°νƒ€μž„μ— μ˜λ„μΉ˜ μ•Šκ²Œ μˆ˜μ •λ˜λŠ” 것을 λ°©μ§€ν•˜κ³  νƒ€μž…μ˜ 정밀도λ₯Ό μœ μ§€ν•˜κΈ° μœ„ν•΄ `readonly`, `Record`, `as const`, `satisfies`와 같은 νƒ€μž… μ‹œμŠ€ν…œμ˜ κΈ°λŠ₯듀을 μ‘°ν•©ν•˜μ—¬ μ„€κ³„ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 κ°œλ°œμžλŠ” λŸ°νƒ€μž„μ˜ λΆˆλ³€μ„±(Immutability)κ³Ό 컴파일 νƒ€μž„μ˜ κ°•λ ₯ν•œ νƒ€μž… μœ νš¨μ„± 검사λ₯Ό λ™μ‹œμ— 확보할 수 μžˆμŠ΅λ‹ˆλ‹€. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **μ„€μ • 객체의 λΆˆλ³€μ„±(Immutability) 보μž₯** μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ„€μ • 객체(Configuration objects)λ‚˜ μƒμˆ˜μ  λ°μ΄ν„°λŠ” μ΄ˆκΈ°ν™” 이후 λ³€κ²½λ˜μ–΄μ„œλŠ” μ•ˆ λ˜λ―€λ‘œ `readonly` μˆ˜μ‹μ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ μ˜λ„μΉ˜ μ•Šμ€ λ³€ν˜•(mutation)을 λ°©μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€ [1-3]. `Readonly` μœ ν‹Έλ¦¬ν‹° νƒ€μž…μ„ ν™œμš©ν•˜μ—¬ μ„€μ • 객체λ₯Ό κ³ μ •μ‹œν‚€λ©΄, 섀정이 λŸ°νƒ€μž„μ— μ‹€μˆ˜λ‘œ μˆ˜μ •λ¨μœΌλ‘œμ¨ λ°œμƒν•  수 μžˆλŠ” λ²„κ·Έμ˜ μœ„ν—˜μ„ 크게 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€ [4-6]. * **μ€‘μ²©λœ μ„€μ • ꡬ쑰λ₯Ό μœ„ν•œ μž¬κ·€μ  보호** κΈ°λ³Έ μ œκ³΅λ˜λŠ” `Readonly`λŠ” μ΅œμƒμœ„ μ†μ„±μ—λ§Œ 얕은(shallow) λΆˆλ³€μ„±μ„ μ œκ³΅ν•©λ‹ˆλ‹€ [7, 8]. λ”°λΌμ„œ μ„€μ • 데이터가 깊이 μ€‘μ²©λœ 객체 ν˜•νƒœλ₯Ό κ°€μ§ˆ 경우, λ°μ΄ν„°μ˜ μ–΄λŠ 뢀뢄도 μˆ˜μ •ν•  수 없도둝 κ°•μ œν•˜κΈ° μœ„ν•΄ μž¬κ·€μ μœΌλ‘œ λ™μž‘ν•˜λŠ” μ»€μŠ€ν…€ `DeepReadonly` νƒ€μž…μ„ μ •μ˜ν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 것이 ν•„μˆ˜μ μž…λ‹ˆλ‹€ [7, 8]. * **정적 λ”•μ…”λ„ˆλ¦¬ 및 룩업 ν…Œμ΄λΈ” 섀계** 룩업 ν…Œμ΄λΈ”μ΄λ‚˜ 정적 λ”•μ…”λ„ˆλ¦¬λ₯Ό ꡬ좕할 λ•ŒλŠ” `Readonly`와 `Record` μœ ν‹Έλ¦¬ν‹° νƒ€μž…μ„ κ²°ν•©ν•˜μ—¬ μ•± μ „λ°˜μ— 걸쳐 μΌμ •ν•˜κ²Œ μœ μ§€λ˜λŠ” λΆˆλ³€μ˜ ν‚€-κ°’ λ§΅(Key-Value Maps)을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€ [9]. * **`as const`와 `satisfies`λ₯Ό κ²°ν•©ν•œ 무결성 νŒ¨ν„΄** μ„€μ • 객체와 룩업 ν…Œμ΄λΈ”μ„ 섀계할 λ•Œ κ°€μž₯ κ°•λ ₯ν•˜κ³  μ™„λ²½ν•œ νŒ¨ν„΄μ€ `as const`와 `satisfies` μ—°μ‚°μžλ₯Ό ν•¨κ»˜ μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€ [10]. * `satisfies` μ—°μ‚°μžλŠ” 객체가 μ •μ˜λœ νƒ€μž… ꡬ쑰(μš”κ΅¬λ˜λŠ” 속성 및 νƒ€μž…)에 λΆ€ν•©ν•˜λŠ”μ§€ μ—„κ²©νžˆ κ²€μ¦ν•˜λ©΄μ„œλ„, νƒ€μž… 좔둠이 더 넓은 νƒ€μž…(widening)으둜 ν¬μ„λ˜λŠ” 것을 막아 객체의 ꡬ체적인 λ¦¬ν„°λŸ΄ νƒ€μž…κ³Ό μΆ”κ°€ 속성을 κ·ΈλŒ€λ‘œ λ³΄μ‘΄ν•©λ‹ˆλ‹€ [11, 12]. * 이 νŒ¨ν„΄μ„ μ‚¬μš©ν•˜λ©΄ μ •ν™•ν•œ 킀와 값을 κ°€μ§„ 룩업 ν…Œμ΄λΈ”μ„ κ΅¬ν˜„ν•˜κ³  더 λ‚˜μ€ μžλ™ μ™„μ„±(autocomplete)의 이점을 λˆ„λ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€ [13, 14]. * 여기에 `as const` 단언(Assertion)을 μΆ”κ°€ν•˜λ©΄ 컴파일 νƒ€μž„μ˜ ꡬ쑰적 μœ νš¨μ„± κ²€μ‚¬λΏλ§Œ μ•„λ‹ˆλΌ λŸ°νƒ€μž„ λΆˆλ³€μ„±κΉŒμ§€ 보μž₯λ˜μ–΄, μ ˆλŒ€ λ³€κ²½λ˜μ–΄μ„œλŠ” μ•ˆ λ˜λŠ” μ•ˆμ •μ μΈ μ„€μ • 객체와 룩업 ν…Œμ΄λΈ”μ„ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€ [10, 14]. * **선택적(Optional) μ†μ„±κ³Όμ˜ μ‘°ν•©** API 섀계 및 μ„€μ • 관리 λ“±μ—μ„œλŠ” '읽기 μ „μš©(`readonly`)'κ³Ό '선택적(`?`)' 속성을 κ²°ν•©ν•˜λŠ” νŒ¨ν„΄μ΄ λΉˆλ²ˆν•˜κ²Œ μ‚¬μš©λ©λ‹ˆλ‹€ [15]. μ΄λŠ” μ„€μ • 객체 내에 ν•΄λ‹Ή 속성이 μ œκ³΅λ˜μ§€ μ•Šμ„ μˆ˜λ„ μžˆμ§€λ§Œ, λ§Œμ•½ μ‘΄μž¬ν•œλ‹€λ©΄ μ ˆλŒ€λ‘œ λ³€κ²½λ˜μ–΄μ„œλŠ” μ•ˆ λ˜λŠ” 계약 ꡬ쑰λ₯Ό λ‚˜νƒ€λ‚Ό λ•Œ μœ μš©ν•©λ‹ˆλ‹€ [16]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** [[Readonly Type]], [[Satisfies μ—°μ‚°μž]], [[as const Assertion]], [[TypeScript Utility Types (Record, Readonly)]] - **Projects/Contexts:** [[μ•ˆμ „ν•œ TypeScript 데이터 λͺ¨λΈλ§ 및 μ„€μ • 관리 ꡬ좕]] - **Contradictions/Notes:** TypeScript에 λ‚΄μž₯된 `Readonly` μœ ν‹Έλ¦¬ν‹° νƒ€μž…μ€ 객체의 κΉŠμ€ λΆˆλ³€μ„±κΉŒμ§€λŠ” κ°•μ œν•˜μ§€ λͺ»ν•˜λ―€λ‘œ, λ³΅μž‘ν•œ μ„€μ • 객체의 μ™„λ²½ν•œ λŸ°νƒ€μž„ 무결성을 보μž₯ν•˜κΈ° μœ„ν•΄μ„œλŠ” κ°œλ°œμžκ°€ 직접 μž¬κ·€ν˜• `DeepReadonly` μœ ν‹Έλ¦¬ν‹° νƒ€μž…μ„ κ΅¬ν˜„ν•˜κ±°λ‚˜ μ™ΈλΆ€ λΌμ΄λΈŒλŸ¬λ¦¬μ— μ˜μ‘΄ν•΄μ•Ό ν•©λ‹ˆλ‹€ [7, 17]. --- *Last updated: 2026-04-18* - Raw Source: [[00_Raw/2026-04-20/μ„€μ • 객체 및 룩업 ν…Œμ΄λΈ” 섀계(Configuration Objects and Lookup Tables).md]] ---