--- id: P-REINFORCE-AUTO-5164C3 category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ๋• ํƒ€์ดํ•‘(Duck Typing)" --- # [[แ„ƒแ…ฅแ†จ แ„แ…กแ„‹แ…ตแ„‘แ…ตแ†ผ(Duck Typing)|๋• ํƒ€์ดํ•‘(Duck Typing)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ๋• ํƒ€์ดํ•‘(Duck Typing)์€ ๊ฐ์ฒด์˜ ์‹ค์ œ ํ˜•ํƒœ๋‚˜ ๊ตฌ์กฐ์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ํƒ€์ž…์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค [1-3]. "๋งŒ์•ฝ ์–ด๋–ค ๊ฒƒ์ด ์˜ค๋ฆฌ์ฒ˜๋Ÿผ ๊ฑท๊ณ  ์˜ค๋ฆฌ์ฒ˜๋Ÿผ ๊ฐ‰๊ฐ‰๊ฑฐ๋ฆฌ๋ฉด ๊ทธ๊ฒƒ์€ ์˜ค๋ฆฌ๋‹ค"๋ผ๋Š” ๊ฐœ๋…์— ๋ฐ”ํƒ•์„ ๋‘ก๋‹ˆ๋‹ค [1, 3]. ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์™€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ•ต์‹ฌ์ ์ธ ํƒ€์ž… ์‹œ์Šคํ…œ ํŠน์ง•์œผ๋กœ, ๋ช…์‹œ์ ์ธ ํƒ€์ž… ์ด๋ฆ„์˜ ์„ ์–ธ ์—†์ด๋„ ๋ฉค๋ฒ„(์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ)์˜ ํ˜•ํƒœ๊ฐ€ ์ผ์น˜ํ•˜๋ฉด ํ˜ธํ™˜์„ฑ์„ ์ธ์ •ํ•˜๋Š” ๊ตฌ์กฐ์  ํƒ€์ดํ•‘(Structural Typing)๊ณผ ๋™์ผํ•œ ์˜๋ฏธ๋กœ ๋ถˆ๋ฆฝ๋‹ˆ๋‹ค [1-3]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **๊ธฐ๋ณธ ์›๋ฆฌ ๋ฐ ํ˜ธํ™˜์„ฑ:** ๋• ํƒ€์ดํ•‘(๋˜๋Š” ๊ตฌ์กฐ์  ์„œ๋ธŒํƒ€์ดํ•‘) ์ฒด๊ณ„์—์„œ๋Š” ๊ฐ’์ด๋‚˜ ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง„ ํ˜•ํƒœ(Shape)์— ์ดˆ์ ์„ ๋งž์ถ”์–ด ํƒ€์ž…์„ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค [2]. ๊ธฐ๋ณธ ๊ทœ์น™์— ๋”ฐ๋ฅด๋ฉด, ๊ฐ์ฒด `x`๊ฐ€ ํƒ€๊ฒŸ ํƒ€์ž… `y`๊ฐ€ ๊ฐ€์ง„ ๋ฉค๋ฒ„๋ฅผ ์ตœ์†Œํ•œ ๋™์ผํ•˜๊ฒŒ ๋ชจ๋‘ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค๋ฉด `x`๋Š” `y`์™€ ํ˜ธํ™˜๋˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค [1]. ์ฆ‰, ํ• ๋‹น๋˜๋Š” ๊ฐ’์ด ํƒ€๊ฒŸ ํƒ€์ž…์˜ ์š”๊ตฌ ์†์„ฑ์„ ๋ชจ๋‘ ๊ฐ–์ถ”๊ณ  ์žˆ๊ธฐ๋งŒ ํ•˜๋ฉด ์ •์ƒ์ ์ธ ํƒ€์ž…์œผ๋กœ ์ทจ๊ธ‰๋ฉ๋‹ˆ๋‹ค [1]. * **์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ƒํƒœ๊ณ„์˜ ํŠน์„ฑ๊ณผ ํ•œ๊ณ„:** ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋• ํƒ€์ดํ•‘ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋”ฐ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ๋‹จ์ˆœํžˆ ๊ฐ์ฒด์˜ ์†์„ฑ ์„ธํŠธ๋ฅผ ๋ณต์ œํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๊ฑฐ์˜ ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ ํ‰๋‚ด ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4]. ์ด๋Ÿฌํ•œ ์œ ์—ฐํ•œ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ๊ตฌ๋ณ„ ๊ฐ€๋Šฅํ•œ ํƒ€์ž… ๋ณ„์นญ(๋น„๊ตฌ์กฐ์  ๋˜๋Š” ๋ช…๋ชฉ์  ํƒ€์ดํ•‘, Nominal Typing)์„ ๋„ค์ดํ‹ฐ๋ธŒํ•˜๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค [4]. * **ํ•œ๊ณ„ ๊ทน๋ณต์„ ์œ„ํ•œ ํŒจํ„ด:** ๋• ํƒ€์ดํ•‘ ํ™˜๊ฒฝ์—์„œ๋Š” ์†์„ฑ ๊ตฌ์กฐ๊ฐ€ ๊ฐ™์ง€๋งŒ ๋…ผ๋ฆฌ์ /์˜๋ฏธ์ ์œผ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ(์˜ˆ: ๊ตฌ์กฐ๊ฐ€ ๋™์ผํ•œ ๋‘ ๊ฐœ์˜ ๋‹ค๋ฅธ ํ† ํฐ ๋˜๋Š” ์‹๋ณ„์ž)๋ฅผ ํƒ€์ž… ์‹œ์Šคํ…œ ์ƒ์—์„œ ์›์ฒœ์ ์œผ๋กœ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค [4]. ์ด๋ฅผ ๊ทน๋ณตํ•˜์—ฌ ์•ˆ์ •์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด, ๊ฐœ๋ฐœ์ž๋“ค์€ '์˜คํŒŒํฌ ํƒ€์ž…(Opaque Types)'์ด๋‚˜ '๋ธŒ๋žœ๋””๋“œ ํƒ€์ž…(Branded Types)'๊ณผ ๊ฐ™์€ ๊ธฐ๋ฒ•์„ ํ™œ์šฉํ•˜์—ฌ ํƒ€์ž… ์‹œ์Šคํ…œ ๋‚ด์—์„œ๋งŒ ๋™์ž‘ํ•˜๋Š” ๊ตฌ๋ณ„์ž๋ฅผ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค [4]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[แ„€แ…ฎแ„Œแ…ฉแ„Œแ…ฅแ†จ แ„แ…กแ„‹แ…ตแ„‘แ…ตแ†ผ(Structural Typing)|๊ตฌ์กฐ์  ํƒ€์ดํ•‘(Structural Typing)]], [[แ„†แ…งแ†ผแ„†แ…ฉแ†จแ„Œแ…ฅแ†จ แ„แ…กแ„‹แ…ตแ„‘แ…ตแ†ผ(Nominal Typing)|๋ช…๋ชฉ์  ํƒ€์ดํ•‘(Nominal Typing)]], ์˜คํŒŒํฌ ํƒ€์ž…(Opaque Types) - **Projects/Contexts:** ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ(TypeScript) ํƒ€์ž… ์‹œ์Šคํ…œ ๋ฐ ํ˜ธํ™˜์„ฑ ํ‰๊ฐ€ - **Contradictions/Notes:** ๋• ํƒ€์ดํ•‘์€ ๋†’์€ ์ฝ”๋“œ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜์ง€๋งŒ, ๊ทธ๋กœ ์ธํ•ด ๊ตฌ์กฐ๊ฐ€ ๊ฐ™์€ ๋‹ค๋ฅธ ์˜๋ฏธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์›์ฒœ์ ์œผ๋กœ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์˜คํŒŒํฌ ํƒ€์ž…(Opaque Types) ๋“ฑ์˜ ๋ณ„๋„ ๊ธฐ๋ฒ•์ด ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค [4]. --- *Last updated: 2026-04-18* - Raw Source: 00_Raw/2026-04-20/๋• ํƒ€์ดํ•‘(Duck Typing).md ---