--- id: P-REINFORCE-AUTO-B7F6A8 category: "10_Wiki/๐Ÿ’ก Topics/AI" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„ (Domain-Driven Design DDD)" --- # [[แ„ƒแ…ฉแ„†แ…ฆแ„‹แ…ตแ†ซ แ„Œแ…ฎแ„ƒแ…ฉ แ„‰แ…ฅแ†ฏแ„€แ…จ (Domain-Driven Design DDD)|๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„ (Domain-Driven Design DDD)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(DDD)๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ๊นŠ์€ ์ดํ•ด๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์„ค๊ณ„ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค [1]. ๊ธฐ์ˆ  ํŒ€๊ณผ ๋„๋ฉ”์ธ ์ „๋ฌธ๊ฐ€ ๊ฐ„์˜ ๊ธด๋ฐ€ํ•œ ํ˜‘๋ ฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ํ˜„์‹ค ์„ธ๊ณ„์˜ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๋ฐ˜์˜ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค [1]. ์ด๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ์˜ ๋ณต์žก์„ฑ์„ ํ•ด๊ฒฐํ•˜๊ณ  ๊ฐœ๋ฐœ์ž์™€ ๋น„์ฆˆ๋‹ˆ์Šค ์ดํ•ด๊ด€๊ณ„์ž ๊ฐ„์˜ ์˜์‚ฌ์†Œํ†ต ๊ฒฉ์ฐจ๋ฅผ ํ•ด์†Œํ•˜์—ฌ, ๊ฒฐ๊ณผ์ ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค [1]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **์œ ๋น„์ฟผํ„ฐ์Šค ์–ธ์–ด(Ubiquitous Language)์˜ ํ™•๋ฆฝ:** DDD์˜ ํ•ต์‹ฌ ๋ชฉํ‘œ ์ค‘ ํ•˜๋‚˜๋Š” ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ•˜๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ(๊ฐœ๋ฐœ์ž ๋ฐ ๋„๋ฉ”์ธ ์ „๋ฌธ๊ฐ€ ๋“ฑ)์ด ๊ณต์œ ํ•˜๋Š” ๊ณตํ†ต ์–ดํœ˜ ์‚ฌ์ „์ธ '์œ ๋น„์ฟผํ„ฐ์Šค ์–ธ์–ด'๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค [1, 2]. ์ด ์–ธ์–ด๋Š” ์ผ์ƒ์ ์ธ ๋Œ€ํ™”, ๋ฌธ์„œํ™”๋Š” ๋ฌผ๋ก  ์‹ค์ œ ์ฝ”๋“œ ์ž์ฒด์—์„œ๋„ ๋™์ผํ•˜๊ฒŒ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์š”๊ตฌ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์˜คํ•ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ๋ช…ํ™•ํžˆ ํ•ฉ๋‹ˆ๋‹ค [1, 2]. - **์ œํ•œ๋œ ์ปจํ…์ŠคํŠธ(Bounded Contexts)๋ฅผ ํ†ตํ•œ ๋ณต์žก์„ฑ ๊ด€๋ฆฌ:** ํฌ๊ณ  ๋ณต์žกํ•œ ๋„๋ฉ”์ธ์€ '์ฃผ๋ฌธ ๊ด€๋ฆฌ'๋‚˜ '๊ณ ๊ฐ ์ง€์›'๊ณผ ๊ฐ™์ด ๋” ์ž‘๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ํ•˜์œ„ ๋„๋ฉ”์ธ์ธ '์ œํ•œ๋œ ์ปจํ…์ŠคํŠธ'๋กœ ๋ถ„ํ• ๋ฉ๋‹ˆ๋‹ค [3]. ๊ฐ ์ปจํ…์ŠคํŠธ๋Š” ๊ณ ์œ ํ•œ ๋ชจ๋ธ๊ณผ ์œ ๋น„์ฟผํ„ฐ์Šค ์–ธ์–ด๋ฅผ ์œ ์ง€ํ•˜์—ฌ ๋ชจ๋ธ์˜ ์ˆœ์ˆ˜์„ฑ์„ ๋ณด์žฅํ•˜๊ณ , ๊ฐ๊ธฐ ๋‹ค๋ฅธ ์ฑ…์ž„ ์˜์—ญ ๊ฐ„์˜ ๋ช…ํ™•ํ•œ ๊ฒฝ๊ณ„๋ฅผ ์ •์˜ํ•˜์—ฌ ๋„๋ฉ”์ธ ๋กœ์ง์„ ์บก์Аํ™”ํ•ฉ๋‹ˆ๋‹ค [3-5]. - **์ „๋žต์  ๋ชจ๋ธ๋ง ๊ตฌ์„ฑ ์š”์†Œ:** - **์• ๊ทธ๋ฆฌ๊ฒŒ์ž‡(Aggregates):** ๋‹จ์ผ ๋‹จ์œ„๋กœ ์ทจ๊ธ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๋ฉ”์ธ ๊ฐ์ฒด๋“ค์˜ ํด๋Ÿฌ์Šคํ„ฐ์ž…๋‹ˆ๋‹ค(์˜ˆ: `OrderLineItem` ๊ฐ์ฒด๋ฅผ ํฌํ•จํ•˜๋Š” `Order`). ์• ๊ทธ๋ฆฌ๊ฒŒ์ž‡์˜ ๋ฃจํŠธ๋Š” ์ „์ฒด ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๋ฉฐ ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค [3]. - **์—”ํ‹ฐํ‹ฐ(Entities)์™€ ๊ฐ’ ๊ฐ์ฒด(Value Objects):** ๊ณ ์œ ํ•œ ์ •์ฒด์„ฑ(Identity)์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ตฌ๋ณ„๋˜๋Š” ๊ฐ์ฒด(์˜ˆ: `Customer` ์—”ํ‹ฐํ‹ฐ)์™€, ๊ณ ์œ  ์‹๋ณ„์ž ์—†์ด ์˜ค์ง ์†์„ฑ์œผ๋กœ๋งŒ ์ •์˜๋˜๋Š” ๊ฐ์ฒด(์˜ˆ: `ShippingAddress` ๊ฐ’ ๊ฐ์ฒด)๋ฅผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„ํ•˜์—ฌ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค [3]. - **๋„๋ฉ”์ธ ๋กœ์ง์˜ ๊ฒฉ๋ฆฌ ๋ฐ ์ด๋ฒคํŠธ ์Šคํ† ๋ฐ(Event Storming):** ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ UI ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๊ฐ™์€ ์™ธ๋ถ€ ์ธํ”„๋ผ์ŠคํŠธ๋Ÿญ์ฒ˜ ๋ฌธ์ œ์™€ ์ฒ ์ €ํžˆ ๋ถ„๋ฆฌ๋˜์–ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๊น”๋”ํ•˜๊ณ  ํ…Œ์ŠคํŠธ ๋ฐ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์šด ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [2]. ๋˜ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ์„ ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•˜๊ณ  ๋„๋ฉ”์ธ ์ด๋ฒคํŠธ, ๋ช…๋ น, ์• ๊ทธ๋ฆฌ๊ฒŒ์ž‡์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด '์ด๋ฒคํŠธ ์Šคํ† ๋ฐ(Event Storming)'๊ณผ ๊ฐ™์€ ํ˜‘์—… ์›Œํฌ์ƒต์„ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค [2]. - **๋„์ž… ์‹œ ํŠน์ง• ๋ฐ ์ ํ•ฉํ•œ ํ™˜๊ฒฝ:** DDD๋Š” ๊นŠ์€ ๋„๋ฉ”์ธ ๋ชจ๋ธ๋ง๊ณผ ์ดํ•ด๊ด€๊ณ„์ž์˜ ์ง€์†์ ์ธ ํ˜‘์—…์ด ํ•„์ˆ˜์ ์ด๋ฏ€๋กœ ์ดˆ๊ธฐ ๊ตฌํ˜„ ๋ณต์žก๋„์™€ ๋ฆฌ์†Œ์Šค ์š”๊ตฌ ์‚ฌํ•ญ(๋ถ„์„ ์‹œ๊ฐ„, ๋„๋ฉ”์ธ ์ „๋ฌธ๊ฐ€ ์ฐธ์—ฌ ๋“ฑ)์ด ์ƒ๋Œ€์ ์œผ๋กœ ๋†’์€ ํŽธ์ž…๋‹ˆ๋‹ค [6]. ๋”ฐ๋ผ์„œ ๋‹จ์ˆœํ•œ ์‹œ์Šคํ…œ๋ณด๋‹ค๋Š” ๊ธˆ์œต, ์˜๋ฃŒ, ์ด์ปค๋จธ์Šค์™€ ๊ฐ™์ด ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ์ด ๋งค์šฐ ๋ณต์žกํ•œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์‹œ์Šคํ…œ ๊ตฌ์ถ•์— ๊ฐ€์žฅ ์ด์ƒ์ ์ธ ์•„ํ‚คํ…์ฒ˜ ๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค์ž…๋‹ˆ๋‹ค [6]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** AI ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[แ„‹แ…ฒแ„‡แ…ตแ„แ…ฏแ„แ…ฅแ„‰แ…ณ แ„‹แ…ฅแ†ซแ„‹แ…ฅ (Ubiquitous Language)|์œ ๋น„์ฟผํ„ฐ์Šค ์–ธ์–ด(Ubiquitous Language)]], ์ œํ•œ๋œ ์ปจํ…์ŠคํŠธ(Bounded Contexts), ์• ๊ทธ๋ฆฌ๊ฒŒ์ž‡(Aggregates), [[แ„€แ…ชแ†ซแ„‰แ…ตแ†ทแ„‰แ…กแ„‹แ…ด แ„‡แ…ฎแ†ซแ„…แ…ต(Separation of Concerns)|๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ(Separation of Concerns)]] - **Projects/Contexts:** ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋„๋ฉ”์ธ(๊ธˆ์œต, ์˜๋ฃŒ, ์ด์ปค๋จธ์Šค ๋“ฑ)์„ ๋‹ค๋ฃจ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ - **Contradictions/Notes:** ์†Œ์Šค ๋‚ด์—์„œ ์ƒ์ถฉํ•˜๋Š” ์ฃผ์žฅ์€ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์œผ๋‚˜, DDD๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๊ตฌ์กฐ์™€์˜ ๊ฐ•๋ ฅํ•œ ์ผ์น˜์™€ ๋ช…ํ™•ํ•œ ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ์ œ๊ณตํ•˜๋Š” ํฐ ์žฅ์ ์ด ์žˆ๋Š” ๋ฐ˜๋ฉด, ๋„์ž… ์‹œ ๋„๋ฉ”์ธ ์ „๋ฌธ๊ฐ€์™€์˜ ์‹ฌ๋„ ์žˆ๋Š” ํ˜‘์—… ๋ชจ๋ธ๋ง์ด ํ•„์š”ํ•˜์—ฌ ์ค‘๊ฐ„์—์„œ ๋†’์Œ(Medium-High) ์ˆ˜์ค€์˜ ๋ณต์žก์„ฑ๊ณผ ๋ฆฌ์†Œ์Šค๊ฐ€ ์š”๊ตฌ๋œ๋‹ค๋Š” ์ ์ด ์ฃผ์˜์‚ฌํ•ญ์œผ๋กœ ์ง€์ ๋ฉ๋‹ˆ๋‹ค [6]. --- *Last updated: 2026-04-18* - Raw Source: 00_Raw/2026-04-20/๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„ (Domain-Driven Design, DDD).md ---