--- id: P-REINFORCE-AUTO-F2DA4C category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„ (DDD)" --- # [[แ„ƒแ…ฉแ„†แ…ฆแ„‹แ…ตแ†ซ แ„€แ…ตแ„‡แ…กแ†ซ แ„‰แ…ฅแ†ฏแ„€แ…จ (DDD)|๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„ (DDD)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„(DDD)๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ์— ๋งž์ถฐ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ชจ๋ธ๋งํ•˜๋Š” ์„ค๊ณ„ ์ ‘๊ทผ๋ฒ•์œผ๋กœ, TypeScript์˜ ํƒ€์ž… ์‹œ์Šคํ…œ์—์„œ๋Š” ์˜๋ฏธ์ ์œผ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ์—„๊ฒฉํ•˜๊ฒŒ ๋ถ„๋ฆฌํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณดํ˜ธํ•˜๋Š” ๋ฐ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค [1]. ํŠนํžˆ ๋ธŒ๋žœ๋””๋“œ ํƒ€์ž…(Branded Types)๊ณผ ๋ถˆ๋ณ€์„ฑ(Immutability)์„ ํ†ตํ•ด ๋„๋ฉ”์ธ ๋ชจ๋ธ ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ์„ž์ด๊ฑฐ๋‚˜ ์˜ค์—ผ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜์—ฌ ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค [1-3]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **๋ธŒ๋žœ๋””๋“œ ํƒ€์ž…(Branded Types)์˜ ํ™œ์šฉ:** ๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„์—์„œ๋Š” ๊ธฐ๋ณธ ํƒ€์ž…(Primitive Type)์—๋งŒ ์˜์กดํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋žœ๋””๋“œ ํƒ€์ž…์„ ์ ๊ทน ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ตฌ์กฐ์ ์œผ๋กœ ๋™์ผํ•œ `string` ํƒ€์ž…์ด๋”๋ผ๋„ `UserId`์™€ `OrderId`๋ฅผ ์—„๊ฒฉํžˆ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ๋„๋ฉ”์ธ ๋ฐ์ดํ„ฐ๊ฐ€ ์„œ๋กœ ์„ž์ด๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 2, 4, 5]. * **๋ฐ์ดํ„ฐ ์˜ค์—ผ ๋ฐฉ์ง€์™€ ์‹ ๋ถ„์ฆ ์‹œ์Šคํ…œ:** DDD ๊ตฌ์กฐ์—์„œ ํƒ€์ž… ์‹œ์Šคํ…œ์€ ์™ธ๋ถ€์˜ ๋ถˆ์•ˆ์ •ํ•œ ๋ฐ์ดํ„ฐ๋กœ๋ถ€ํ„ฐ ๋‚ด๋ถ€ ๋กœ์ง์„ ๋ณดํ˜ธํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ฆ๋œ ๋ฐ์ดํ„ฐ(์˜ˆ: `SanitizedString`)๋งŒ์ด ์‹œ์Šคํ…œ์˜ ๋‚ด๋ถ€ ๋กœ์ง์œผ๋กœ ์ง„์ž…ํ•˜๋„๋ก ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๋งˆ์น˜ ์™ธ๋ถ€ ์นจ์ž…์œผ๋กœ๋ถ€ํ„ฐ ์„ฑ์ฑ„๋ฅผ ๋ณดํ˜ธํ•˜๋Š” "์‹ ๋ถ„์ฆ ์‹œ์Šคํ…œ"๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค [1, 2]. * **๋„๋ฉ”์ธ ๋ชจ๋ธ์˜ ๋ถˆ๋ณ€์„ฑ(Immutability) ํ™•๋ฆฝ:** ๋„๋ฉ”์ธ ๋ชจ๋ธ์ด๋‚˜ ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. `readonly` ์ˆ˜์‹์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถˆ๋ณ€์ ์ธ ์‹๋ณ„์ž ์†์„ฑ(Identity properties)๊ณผ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ(Mutable state)๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ์˜ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [3]. * **๋„๋ฉ”์ธ ์—๋Ÿฌ(Domain Error) ์ฒ˜๋ฆฌ:** ๋„๋ฉ”์ธ ๋กœ์ง ๋‚ด์—์„œ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์ƒํƒœ๋‚˜ ์œ ํšจํ•˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ, ๋„๋ฉ”์ธ ์˜ˆ์™ธ(DomainException)๋ฅผ ๋˜์ง€๊ณ  ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ์ด๋ฅผ ์ „์—ญ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ํ•จ์œผ๋กœ์จ ๋น„์ฆˆ๋‹ˆ์Šค ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ๋ณต์žกํ•œ ์—๋Ÿฌ ์ฒดํฌ ๋กœ์ง์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [6, 7]. ๋‹ค๋งŒ, ๋„๋ฉ”์ธ์˜ ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ(Separation of Concerns)๋ฅผ ์ง€ํ‚ค์ง€ ์•Š์€ ์„ฃ๋ถ€๋ฅธ ์ถ”์ƒํ™”๋Š” ์‹œ์Šคํ…œ ์ฝ”๋“œ๋ฅผ ๋น„๋Œ€ํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ  ๊ด€๋ฆฌ๋ฅผ ์–ด๋ ต๊ฒŒ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [8]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[แ„‡แ…ณแ„…แ…ขแ†ซแ„ƒแ…ตแ„ƒแ…ณ แ„แ…กแ„‹แ…ตแ†ธ (Branded Types)|๋ธŒ๋žœ๋””๋“œ ํƒ€์ž… (Branded Types)]], [[แ„‡แ…ฎแ†ฏแ„‡แ…งแ†ซแ„‰แ…ฅแ†ผ (Immutability)|๋ถˆ๋ณ€์„ฑ (Immutability)]], [[แ„€แ…ฎแ„Œแ…ฉแ„Œแ…ฅแ†จ แ„แ…กแ„‹แ…ตแ„‘แ…ตแ†ผ (Structural Typing)|๊ตฌ์กฐ์  ํƒ€์ดํ•‘ (Structural Typing)]] - **Projects/Contexts:** [[TypeScript แ„แ…กแ„‹แ…ตแ†ธ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ทแ„‹แ…ณแ†ฏ แ„’แ…ชแ†ฏแ„‹แ…ญแ†ผแ„’แ…กแ†ซ แ„‚แ…ขแ„‡แ…ฎ แ„…แ…ฉแ„Œแ…ตแ†จ แ„‡แ…ฉแ„’แ…ฉ แ„†แ…ตแ†พ แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ แ„€แ…ฅแ†ทแ„Œแ…ณแ†ผ|TypeScript ํƒ€์ž… ์‹œ์Šคํ…œ์„ ํ™œ์šฉํ•œ ๋‚ด๋ถ€ ๋กœ์ง ๋ณดํ˜ธ ๋ฐ ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ]] - **Contradictions/Notes:** ์˜ˆ์™ธ(Exception) ์ฒ˜๋ฆฌ์— ๋Œ€ํ•ด, ๋„๋ฉ”์ธ ๋น„์ฆˆ๋‹ˆ์Šค ํ๋ฆ„์„ ๋‹จ์ˆœํžˆ ์ œ์–ดํ•  ๋ชฉ์ (if-else๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ์šฉ๋„)์œผ๋กœ ์˜ˆ์™ธ๋ฅผ ๋‚จ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ง€์–‘ํ•ด์•ผ ํ•˜์ง€๋งŒ, ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์ƒํ™ฉ์ด๋‚˜ ๊ฒ€์ฆ ์‹คํŒจ ์‹œ ๋„๋ฉ”์ธ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ์ด๋ฅผ ์ „์—ญ ๋ฏธ๋“ค์›จ์–ด์—์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์œ„์ž„ํ•˜๋Š” ๋ฐฉ์–ด์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจํ„ด์€ ์ ์ ˆํ•œ ์ˆ˜๋น„ ์ „๋žต์œผ๋กœ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค [6, 7]. --- *Last updated: 2026-04-18* - Raw Source: 00_Raw/2026-04-20/๋„๋ฉ”์ธ ๊ธฐ๋ฐ˜ ์„ค๊ณ„ (DDD).md ---