--- id: P-REINFORCE-AUTO-920865 category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ์ดˆ๊ณผ ์†์„ฑ ๊ฒ€์‚ฌ (Excess Property Checks)" --- # [[แ„Žแ…ฉแ„€แ…ช แ„‰แ…ฉแ†จแ„‰แ…ฅแ†ผ แ„€แ…ฅแ†ทแ„‰แ…ก (Excess Property Checks)|์ดˆ๊ณผ ์†์„ฑ ๊ฒ€์‚ฌ (Excess Property Checks)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ์ดˆ๊ณผ ์†์„ฑ ๊ฒ€์‚ฌ(Excess Property Checks)๋Š” TypeScript์—์„œ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์„ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ์ง์ ‘ ํ• ๋‹นํ•˜๊ฑฐ๋‚˜ ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ์ „๋‹ฌํ•  ๋•Œ, ๋Œ€์ƒ ํƒ€์ž…์— ์ •์˜๋˜์ง€ ์•Š์€ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์†์„ฑ์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์—„๊ฒฉํ•œ ํƒ€์ž… ๊ฒ€์‚ฌ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค [1-3]. ์ด๋Š” ์†์„ฑ ์ด๋ฆ„์˜ ์˜คํƒ€๋‚˜ ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ž…๋˜๋Š” ์‹ค์ˆ˜๋ฅผ ์ปดํŒŒ์ผ ์‹œ์ ์— ํฌ์ฐฉํ•˜์—ฌ, ์˜๋„ํ•˜์ง€ ์•Š์€ ๋Ÿฐํƒ€์ž„ ๋™์ž‘์„ ๋ฐฉ์–ดํ•˜๋Š” ํ•ต์‹ฌ์ ์ธ ์ˆ˜๋น„ ๊ธฐ์ œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค [4-6]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **์ž‘๋™ ์›๋ฆฌ ๋ฐ ๋ชฉ์ ** TypeScript์˜ ๊ธฐ๋ณธ ํƒ€์ž… ์‹œ์Šคํ…œ์ธ ๊ตฌ์กฐ์  ํƒ€์ดํ•‘(Structural Typing)์€ ๊ฐ์ฒด๊ฐ€ ๋Œ€์ƒ ํƒ€์ž…์˜ '์ตœ์†Œํ•œ์˜ ์†์„ฑ'๋งŒ ๊ฐ–์ถ”๋ฉด ํ• ๋‹น์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค [3, 6, 7]. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด(Object Literals)์— ๋Œ€ํ•ด์„œ๋Š” ํŠน๋ณ„ ๋Œ€์šฐ๋ฅผ ํ•˜์—ฌ ์˜ˆ์™ธ์ ์œผ๋กœ ๋” ์—„๊ฒฉํ•˜๊ฒŒ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค [3, 4]. TypeScript๋Š” ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์„ ์ง์ ‘ ๋„˜๊ธธ ๋•Œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ถˆํ•„์š”ํ•œ ์ดˆ๊ณผ ์†์„ฑ์„ ์˜๋„์ ์œผ๋กœ ์ „๋‹ฌํ•  ํ™•๋ฅ ์ด ๊ทนํžˆ ๋‚ฎ๋‹ค๊ณ  ํŒ๋‹จํ•˜๋ฏ€๋กœ, ์†์„ฑ๋ช… ์˜คํƒ€(์˜ˆ: `color` ๋Œ€์‹  `colour` ์ž…๋ ฅ)๋กœ ์ธํ•œ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๋ฅผ ์‚ฌ์ „์— ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค [4, 5]. - **ํ•œ๊ณ„์  (์šฐํšŒ ์ทจ์•ฝ์„ฑ)** ์ดˆ๊ณผ ์†์„ฑ ๊ฒ€์‚ฌ๋Š” '๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์„ ์ง์ ‘ ๋‹ค๋ฃฐ ๋•Œ๋งŒ' ํ™œ์„ฑํ™”๋œ๋‹ค๋Š” ๋šœ๋ ทํ•œ ํ•œ๊ณ„๋ฅผ ๊ฐ€์ง‘๋‹ˆ๋‹ค [8, 9]. ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์„ ๋จผ์ € ์ค‘๊ฐ„ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ ๋’ค, ๊ทธ ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•˜๊ฑฐ๋‚˜ ํ•จ์ˆ˜ ์ธ์ž๋กœ ์ „๋‹ฌํ•˜๋Š” '๊ฐ„์ ‘ ํ• ๋‹น'์˜ ๊ฒฝ์šฐ, ๊ตฌ์กฐ์  ํƒ€์ดํ•‘์˜ ๊ธฐ๋ณธ ์›์น™์œผ๋กœ ๋Œ์•„๊ฐ€ ๊ฒ€์‚ฌ๊ฐ€ ์šฐํšŒ(์ž‘๋™ํ•˜์ง€ ์•Š์Œ)๋ฉ๋‹ˆ๋‹ค [1, 4, 9, 10]. ์ด๋กœ ์ธํ•ด ๋ฌดํšจํ•œ ์†์„ฑ์ด React DOM์— ๊ทธ๋Œ€๋กœ ์ „๋‹ฌ๋˜์–ด ๊ฒฝ๊ณ ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ฑฐ๋‚˜ ์ปดํฌ๋„ŒํŠธ์˜ ์˜๋„์น˜ ์•Š์€ ๋ฆฌ๋ Œ๋”๋ง์„ ์œ ๋ฐœํ•˜๋Š” ๋“ฑ, ์˜คํƒ€๋กœ ์ธํ•œ ๋ฏธ๋ฌ˜ํ•œ ๋ฒ„๊ทธ๊ฐ€ ๋ฐฉ์น˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [11, 12]. - **ํ•ด๊ฒฐ ๋ฐ ๋ณด์™„ ์ „๋žต** - **์ธ๋ฑ์Šค ์„œ๋ช…(Index Signature):** ์˜๋„์ ์œผ๋กœ ์•Œ ์ˆ˜ ์—†๋Š” ์ถ”๊ฐ€ ์†์„ฑ๋“ค์„ ํ—ˆ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, ์ธํ„ฐํŽ˜์ด์Šค์— ์ธ๋ฑ์Šค ์„œ๋ช…์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์—๋Ÿฌ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [3]. - **์ œ๋„ค๋ฆญ๊ณผ never ํƒ€์ž… ํ™œ์šฉ:** ์ œ๋„ค๋ฆญ(Generic) ๋งค๊ฐœ๋ณ€์ˆ˜์™€ `never` ํƒ€์ž…์„ ์กฐํ•ฉํ•˜์—ฌ ์‹ค์ œ ์ž…๋ ฅ๊ฐ’๊ณผ ์˜ˆ์ƒ ํƒ€์ž…์„ ๋น„๊ตํ•จ์œผ๋กœ์จ, ๊ฐ„์ ‘ ํ• ๋‹น ์‹œ์—๋„ ์ดˆ๊ณผ ์†์„ฑ์„ ์ปดํŒŒ์ผ ์—๋Ÿฌ๋กœ ์žก์•„๋‚ด๋Š” ๊ณ ๋„ํ™”๋œ ์žฌ๊ท€์  ํƒ€์ž…์„ ์ง์ ‘ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [13, 14]. - **satisfies ์—ฐ์‚ฐ์ž ๋„์ž…:** TypeScript 4.9๋ถ€ํ„ฐ ๋„์ž…๋œ `satisfies` ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•˜๋ฉด, ๊ฐ์ฒด์˜ ๊ตฌ์ฒด์ ์ธ ๋ฆฌํ„ฐ๋Ÿด ํƒ€์ž… ๋“ฑ์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ๊ฐ„์ ‘ ํ• ๋‹น ์ „์— ๋Œ€์ƒ ์ธํ„ฐํŽ˜์ด์Šค ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๋Š”์ง€ ์—„๊ฒฉํ•œ ๊ณผ์ž‰ ์†์„ฑ ๊ฒ€์‚ฌ๋ฅผ ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4, 15, 16]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[แ„€แ…ฎแ„Œแ…ฉแ„Œแ…ฅแ†จ แ„แ…กแ„‹แ…ตแ„‘แ…ตแ†ผ (Structural Typing)|๊ตฌ์กฐ์  ํƒ€์ดํ•‘ (Structural Typing)]], ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด (Object Literals), [[satisfies แ„‹แ…งแ†ซแ„‰แ…กแ†ซแ„Œแ…ก|satisfies ์—ฐ์‚ฐ์ž]] - **Projects/Contexts:** typescript-eslint (์ดˆ๊ณผ ์†์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ๋ณ€์ˆ˜ ํ• ๋‹น ์‹œ ์šฐํšŒ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด `no-excess-properties`๋ผ๋Š” ์ƒˆ๋กœ์šด ๋ฆฐํŠธ ๊ทœ์น™์ด ์ œ์•ˆ๋˜์—ˆ์œผ๋‚˜, ์œ ์—ฐ์„ฑ ๋ฐ ๋ณต์žก๋„ ๋ฌธ์ œ๋กœ ๋ฐ˜์˜๋˜์ง€ ์•Š์Œ [12, 17, 18]), React ์ปดํฌ๋„ŒํŠธ ํ”„๋กœํผํ‹ฐ ๊ฒ€์ฆ (์šฐํšŒ๋œ ์ดˆ๊ณผ ์†์„ฑ์ด ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ๋ฆฌ๋ Œ๋”๋ง์„ ์ผ์œผํ‚ค๋Š” ๋Œ€ํ‘œ์  ๋งฅ๋ฝ [11]) - **Contradictions/Notes:** TypeScript์˜ ๊ธฐ๋ณธ ์ฒ ํ•™์ธ '๊ตฌ์กฐ์  ํƒ€์ดํ•‘'์€ ์ตœ์†Œ ์š”๊ฑด๋งŒ ๋งž์œผ๋ฉด ์ถ”๊ฐ€ ์†์„ฑ์„ ํ—ˆ์šฉํ•œ๋‹ค๋Š” ์ž…์žฅ์ด์ง€๋งŒ, '์ดˆ๊ณผ ์†์„ฑ ๊ฒ€์‚ฌ'๋Š” ์ถ”๊ฐ€ ์†์„ฑ์„ ์—๋Ÿฌ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ์ ์—์„œ ํƒ€์ž… ์‹œ์Šคํ…œ ๋‚ด์—์„œ ์„œ๋กœ ์ƒ๋ฐ˜๋˜๋Š” ๊ทœ์น™์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” TypeScript๊ฐ€ ๊ฐœ๋ฐœ์ž์˜ '์‹ค์ˆ˜ ๋ฐฉ์ง€'๋ฅผ ์œ„ํ•ด ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์—๋งŒ ๋ถ€์—ฌํ•œ ์˜๋„์  ์˜ˆ์™ธ ๋™์ž‘์ž…๋‹ˆ๋‹ค [1, 7]. --- *Last updated: 2026-04-18* - Raw Source: 00_Raw/2026-04-20/์ดˆ๊ณผ ์†์„ฑ ๊ฒ€์‚ฌ (Excess Property Checks).md ---