--- id: [[P-Reinforce|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)|์„ค์ • ๊ฐ์ฒด ๋ฐ ๋ฃฉ์—… ํ…Œ์ด๋ธ” ์„ค๊ณ„(Configuration Objects and Lookup Tables]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ์„ค์ • ๊ฐ์ฒด(Configuration Objects)์™€ ๋ฃฉ์—… ํ…Œ์ด๋ธ”(Lookup Tables)์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์—์„œ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•„์•ผ ํ•˜๋Š” ๊ณ ์ •๋œ ์ƒํƒœ ๋ฐ์ดํ„ฐ, ๋งคํ•‘ ์ •๋ณด ๋˜๋Š” ํ™˜๊ฒฝ ์„ค์ •์„ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. TypeScript์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๊ฐ์ฒด๊ฐ€ ๋Ÿฐํƒ€์ž„์— ์˜๋„์น˜ ์•Š๊ฒŒ ์ˆ˜์ •๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ํƒ€์ž…์˜ ์ •๋ฐ€๋„๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด `[[readonly|readonly]]`, `Record`, `[[as const|as const]]`, `satisfies`์™€ ๊ฐ™์€ ํƒ€์ž… ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ๋“ค์„ ์กฐํ•ฉํ•˜์—ฌ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๋Ÿฐํƒ€์ž„์˜ ๋ถˆ๋ณ€์„ฑ(Immutability)๊ณผ ์ปดํŒŒ์ผ ํƒ€์ž„์˜ ๊ฐ•๋ ฅํ•œ ํƒ€์ž… ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ๋™์‹œ์— ํ™•๋ณดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **์„ค์ • ๊ฐ์ฒด์˜ ๋ถˆ๋ณ€์„ฑ(Immutability) ๋ณด์žฅ** ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ค์ • ๊ฐ์ฒด(Configuration objects)๋‚˜ ์ƒ์ˆ˜์  ๋ฐ์ดํ„ฐ๋Š” ์ดˆ๊ธฐํ™” ์ดํ›„ ๋ณ€๊ฒฝ๋˜์–ด์„œ๋Š” ์•ˆ ๋˜๋ฏ€๋กœ `readonly` ์ˆ˜์‹์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜๋„์น˜ ์•Š์€ ๋ณ€ํ˜•(mutation)์„ ๋ฐฉ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [1-3]. `Readonly` ์œ ํ‹ธ๋ฆฌํ‹ฐ ํƒ€์ž…์„ ํ™œ์šฉํ•˜์—ฌ ์„ค์ • ๊ฐ์ฒด๋ฅผ ๊ณ ์ •์‹œํ‚ค๋ฉด, ์„ค์ •์ด ๋Ÿฐํƒ€์ž„์— ์‹ค์ˆ˜๋กœ ์ˆ˜์ •๋จ์œผ๋กœ์จ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„๊ทธ์˜ ์œ„ํ—˜์„ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4-6]. * **์ค‘์ฒฉ๋œ ์„ค์ • ๊ตฌ์กฐ๋ฅผ ์œ„ํ•œ ์žฌ๊ท€์  ๋ณดํ˜ธ** ๊ธฐ๋ณธ ์ œ๊ณต๋˜๋Š” `Readonly`๋Š” ์ตœ์ƒ์œ„ ์†์„ฑ์—๋งŒ ์–•์€(shallow) ๋ถˆ๋ณ€์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [7, 8]. ๋”ฐ๋ผ์„œ ์„ค์ • ๋ฐ์ดํ„ฐ๊ฐ€ ๊นŠ์ด ์ค‘์ฒฉ๋œ ๊ฐ์ฒด ํ˜•ํƒœ๋ฅผ ๊ฐ€์งˆ ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ์˜ ์–ด๋А ๋ถ€๋ถ„๋„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋„๋ก ๊ฐ•์ œํ•˜๊ธฐ ์œ„ํ•ด ์žฌ๊ท€์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์ปค์Šคํ…€ `[[DeepReadonly|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|Readonly Type]], Satisfies ์—ฐ์‚ฐ์ž, [[as const Assertion|as const Assertion]], TypeScript Utility Types (Record, Readonly) - **Projects/Contexts:** [[แ„‹แ…กแ†ซแ„Œแ…ฅแ†ซแ„’แ…กแ†ซ TypeScript แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ แ„†แ…ฉแ„ƒแ…ฆแ†ฏแ„…แ…ตแ†ผ แ„†แ…ตแ†พ แ„‰แ…ฅแ†ฏแ„Œแ…ฅแ†ผ แ„€แ…ชแ†ซแ„…แ…ต แ„€แ…ฎแ„Žแ…ฎแ†จ|์•ˆ์ „ํ•œ TypeScript ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๋ฐ ์„ค์ • ๊ด€๋ฆฌ ๊ตฌ์ถ•]] - **Contradictions/Notes:** TypeScript์— ๋‚ด์žฅ๋œ `Readonly` ์œ ํ‹ธ๋ฆฌํ‹ฐ ํƒ€์ž…์€ ๊ฐ์ฒด์˜ ๊นŠ์€ ๋ถˆ๋ณ€์„ฑ๊นŒ์ง€๋Š” ๊ฐ•์ œํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ, ๋ณต์žกํ•œ ์„ค์ • ๊ฐ์ฒด์˜ ์™„๋ฒฝํ•œ ๋Ÿฐํƒ€์ž„ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์žฌ๊ท€ํ˜• `DeepReadonly` ์œ ํ‹ธ๋ฆฌํ‹ฐ ํƒ€์ž…์„ ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜์กดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [7, 17]. --- *Last updated: 2026-04-18* ---