--- id: P-REINFORCE-AUTO-5462C7 category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ๊ธฐ๋ณธ ํƒ€์ž…์—์˜ ์ง‘์ฐฉ(Primitive Obsession)" --- # [[แ„€แ…ตแ„‡แ…ฉแ†ซ แ„แ…กแ„‹แ…ตแ†ธแ„‹แ…ฆแ„‹แ…ด แ„Œแ…ตแ†ธแ„Žแ…กแ†จ(Primitive Obsession)|๊ธฐ๋ณธ ํƒ€์ž…์—์˜ ์ง‘์ฐฉ(Primitive Obsession)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > '๊ธฐ๋ณธ ํƒ€์ž…์—์˜ ์ง‘์ฐฉ(Primitive Obsession)'์€ ์ด๋ฉ”์ผ ์ฃผ์†Œ, ์ด๋ฆ„, ์‹๋ณ„์ž, ํ†ตํ™” ๋“ฑ ์˜๋ฏธ์ ์œผ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ `string`์ด๋‚˜ `number` ๊ฐ™์€ ๋‹จ์ผํ•œ ๊ธฐ๋ณธ(์›์‹œ) ํƒ€์ž…์œผ๋กœ๋งŒ ์ทจ๊ธ‰ํ•˜์—ฌ ํ‘œํ˜„ํ•˜๋ ค๋Š” ๋ฌธ์ œ๋ฅผ ๋œปํ•œ๋‹ค[1, 2]. TypeScript์™€ ๊ฐ™์ด ๊ตฌ์กฐ์  ํƒ€์ดํ•‘(Structural Typing)์„ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด์—์„œ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋“ค์˜ ์˜๋ฏธ์  ์ฐจ์ด๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•ด ์˜๋„์น˜ ์•Š์€ ๋ฐ์ดํ„ฐ ํ˜ผ์šฉ ์‹ค์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์—†๋‹ค[2, 3]. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์œ ํ•œ ํ‘œ์‹์„ ๋ถ€์—ฌํ•˜๋Š” ๋ธŒ๋žœ๋””๋“œ ํƒ€์ž…(Branded Types)์ด๋‚˜ ๋ถˆํˆฌ๋ช… ํƒ€์ž…(Opaque Types) ๊ฐ™์€ ๊ธฐ๋ฒ•์ด ํ•ด๊ฒฐ์ฑ…์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค[2-4]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **๊ธฐ๋ณธ ํƒ€์ž… ์ง‘์ฐฉ์˜ ์›์ธ ๋ฐ ํ•œ๊ณ„** ํ˜„๋Œ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ `string`์€ ํ† ํฐ, ๋ฆฌ์†Œ์Šค ์‹๋ณ„์ž, ์ด๋ฒคํŠธ ์ด๋ฆ„ ๋“ฑ ์•„์ฃผ ๋‹ค์–‘ํ•œ ์—ญํ• ์„ ํ•˜๋ฉฐ, `number` ์—ญ์‹œ ํ†ตํ™”, ๊ฐ€์ƒ ํฌ์ธํŠธ, ํƒ€์ž„์Šคํƒฌํ”„ ๋“ฑ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค[1]. ํ•˜์ง€๋งŒ TypeScript์˜ ๊ตฌ์กฐ์  ํƒ€์ดํ•‘ ํŠน์„ฑ์ƒ, ์ด๋ฉ”์ผ ์ฃผ์†Œ๊ฐ€ ํ•„์š”ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์‚ฌ์šฉ์ž์˜ ์ด๋ฆ„์„ ์ „๋‹ฌํ•ด๋„ ๋‘˜ ๋‹ค `string`์ด๋ผ๋Š” ์ด์œ ๋กœ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ˜ธํ™˜์„ฑ์„ ์ธ์ •ํ•ด๋ฒ„๋ฆฌ๋ฉฐ ์˜ค๋ฅ˜๋ฅผ ์žก์•„๋‚ด์ง€ ๋ชปํ•œ๋‹ค[2]. ์ฆ‰, ์™ธ๊ฒฌ์ƒ ๊ตฌ์กฐ๊ฐ€ ๊ฐ™์•„ ๋ณด์ด๋Š” ๊ธฐ๋ณธ ํƒ€์ž…๋“ค์„ ์˜๋ฏธ๋ก ์ ์œผ๋กœ ์ฐจ๋ณ„ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด์žฅ๋œ ๋ฐฉ๋ฒ•์ด ๋ถ€์กฑํ•œ ๊ฒƒ์ด ๊ทผ๋ณธ์ ์ธ ์›์ธ์ด๋‹ค[5]. * **์‹ค์ œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์œ„ํ—˜์„ฑ** ์ด๋Ÿฌํ•œ ๊ธฐ๋ณธ ํƒ€์ž…์—์˜ ์ง‘์ฐฉ์€ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜์™€ ์‹ฌ๊ฐํ•œ ๋…ผ๋ฆฌ์  ๊ฒฐํ•จ์„ ์œ ๋ฐœํ•œ๋‹ค. ๊ฐ€์žฅ ๋„๋ฆฌ ์•Œ๋ ค์ง„ ๋น„๊ทน์  ์‚ฌ๋ก€๋Š” ๋ฏธ๊ตญ ๋‹จ์œ„๊ณ„(ํŒŒ์šด๋“œํž˜ ์ดˆ)์™€ SI ๋‹จ์œ„๊ณ„(๋‰ดํ„ด ์ดˆ)๋ฅผ ๋™์ผํ•œ ์ˆซ์ž ํƒ€์ž…์œผ๋กœ ํ˜ผ์šฉํ•˜์—ฌ 3์–ต 2,760๋งŒ ๋‹ฌ๋Ÿฌ ๊ทœ๋ชจ์˜ ๊ถค๋„์„ ์ด ์†Œ์‹ค๋œ Mars Climate Orbiter ์‚ฌ๊ฑด์ด๋‹ค[4]. ์ด ์™ธ์—๋„ ์„œ๋กœ ๋‹ค๋ฅธ ํ†ตํ™”(์˜ˆ: EUR์™€ GBP)์˜ ์ƒํ’ˆ ๊ฐ€๊ฒฉ์„ ์˜๋ฏธ ๊ตฌ๋ถ„ ์—†์ด `number` ํƒ€์ž…์œผ๋กœ ๋ฌถ์–ด ์—ฐ์‚ฐํ•  ๊ฒฝ์šฐ ์‹œ์Šคํ…œ์˜ ๋ถˆ์ผ์น˜๋‚˜ ์ˆ˜์ต ์†์‹ค์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ[6], ์ธ์ฆ ์„œ๋ฒ„ ํ† ํฐ๊ณผ API ํ† ํฐ์„ ํ˜ผ๋™ํ•˜์—ฌ ์ž˜๋ชป๋œ ์ธ์ž๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค[7]. * **ํ•ด๊ฒฐ ๋ฐฉ์•ˆ: ๋ช…๋ชฉ์  ํƒ€์ดํ•‘์˜ ์ˆ˜๋ณต** ๊ธฐ๋ณธ ํƒ€์ž…์—์˜ ์ง‘์ฐฉ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„(DDD) ๋“ฑ์—์„œ '๋ธŒ๋žœ๋””๋“œ ํƒ€์ž…(Branded Types)' ๋˜๋Š” '๋ถˆํˆฌ๋ช… ํƒ€์ž…(Opaque Types)'์ด ๋„๋ฆฌ ์‚ฌ์šฉ๋œ๋‹ค[2, 8]. ์ด๋Š” ๋Ÿฐํƒ€์ž„์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š์ง€๋งŒ ์ปดํŒŒ์ผ ์‹œ์ ์—๋งŒ ์กด์žฌํ•˜๋Š” ๊ณ ์œ ํ•œ ์†์„ฑ(๋ธŒ๋žœ๋“œ)์„ ์›์‹œ ํƒ€์ž…์— ๊ฐ•์ œ๋กœ ๋ง๋ถ™์—ฌ(์˜ˆ: `string & { __brand: 'UserId' }`) ์˜๋ฏธ๊ฐ€ ๋‹ค๋ฅธ ํƒ€์ž… ๊ฐ„์˜ ํ˜ธํ™˜๊ณผ ์„ž์ž„์„ ์ฐจ๋‹จํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค[2, 9]. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ID์™€ ์ฃผ๋ฌธ ID๋ฅผ ์—„๊ฒฉํžˆ ๋ถ„๋ฆฌํ•˜๊ฑฐ๋‚˜[10], ์ฒ ์ €ํžˆ ๊ฒ€์ฆ๋œ ๋ฐ์ดํ„ฐ(Sanitized String ๋“ฑ)๋งŒ์ด ์‹œ์Šคํ…œ ๋‚ด๋ถ€ ๋กœ์ง์œผ๋กœ ์ง„์ž…ํ•˜๋„๋ก ๊ฐ•์ œํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์˜ค์—ผ์„ ์˜ˆ๋ฐฉํ•  ์ˆ˜ ์žˆ๋‹ค[2, 11]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[แ„€แ…ฎแ„Œแ…ฉแ„Œแ…ฅแ†จ แ„แ…กแ„‹แ…ตแ„‘แ…ตแ†ผ(Structural Typing)|๊ตฌ์กฐ์  ํƒ€์ดํ•‘(Structural Typing)]], [[แ„‡แ…ณแ„…แ…ขแ†ซแ„ƒแ…ตแ„ƒแ…ณ แ„แ…กแ„‹แ…ตแ†ธ(Branded Types)|๋ธŒ๋žœ๋””๋“œ ํƒ€์ž…(Branded Types)]], ๋ถˆํˆฌ๋ช… ํƒ€์ž…(Opaque Types), [[แ„ƒแ…ฉแ„†แ…ฆแ„‹แ…ตแ†ซ แ„€แ…ตแ„‡แ…กแ†ซ แ„‰แ…ฅแ†ฏแ„€แ…จ(DDD)|๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„(DDD)]] - **Projects/Contexts:** TypeScript ํƒ€์ž… ์‹œ์Šคํ…œ, Mars Climate Orbiter ์‚ฌ๋ก€ - **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด ํƒ€์ž… ๋ธŒ๋žœ๋”ฉ์€ ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ „์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜์ง€๋งŒ, ์ฝ”๋“œ์˜ ๊ฐœ๋…์  ๋ณต์žก์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ์ž‘์„ฑํ•ด์•ผ ํ•  ํƒ€์ดํ•‘ ๋Ÿ‰์ด ๋งŽ์•„์ง„๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ผ๋ถ€ ์†Œ์Šค์—์„œ๋Š” ๊ฐ’์ด 0์ด ์•„๋‹˜์ด ๊ฐœ๋ฐœ์ž์— ์˜ํ•ด ๋ช…ํ™•ํžˆ ์ธ์ง€๋˜๋Š” ๋“ฑ์˜ ํŠน์ • ์ƒํ™ฉ์—์„œ๋Š” ๋ธŒ๋žœ๋””๋“œ ํƒ€์ž…์˜ ๊ฐ•๋ฐ•์  ์‚ฌ์šฉ์„ ํ”ผํ•˜๊ณ  ๋‹จ์ˆœํ•œ ์›์‹œ ํƒ€์ž…๊ณผ ๋‹จ์ผ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ(์–ด์„ค์…˜)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ฝ”๋“œ๋ฅผ ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ์กฐ์–ธํ•œ๋‹ค[12-14]. --- *Last updated: 2026-04-18* - Raw Source: 00_Raw/2026-04-20/๊ธฐ๋ณธ ํƒ€์ž…์—์˜ ์ง‘์ฐฉ(Primitive Obsession).md ---