--- id: P-REINFORCE-WIKI-F537C4B2 category: Dev confidence_score: 0.95 tags: ['domain-driven-design', 'microservices-architecture', 'modular-monolith', 'hexagonal-architecture', 'event-sourcing-pattern', 'architecture-principles'] last_reinforced: 2026-05-02 --- # [[Domain-Driven Design]] ## ๐Ÿ“Œ Brief Summary ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(Domain-Driven Design, DDD)๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ์—ญ๋Ÿ‰๊ณผ ๋„๋ฉ”์ธ ๋กœ์ง์„ ์ค‘์‹ฌ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๋ชจ๋ธ์„ ๋ถ„ํ• ํ•˜๊ณ  ๊ตฌ์กฐํ™”ํ•˜๋Š” ์„ค๊ณ„ ์›์น™์ด๋‹ค [1, 2]. ์ด ์›์น™์€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜, ๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค ๋“ฑ ํ˜„๋Œ€ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด๋“ค์ด ์š”๊ตฌํ•˜๋Š” ๋ช…ํ™•ํ•œ ๋…ผ๋ฆฌ์  ๊ฒฝ๊ณ„์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์„ ์ˆ˜๋ฆฝํ•˜๋Š” ๋ฐ ํ•ต์‹ฌ์ ์ธ ์ฒ™๋„๊ฐ€ ๋œ๋‹ค [1-3]. ๋ณต์žกํ•œ ๋„๋ฉ”์ธ ๋กœ์ง์„ ํšจ์œจ์ ์œผ๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์ง€๋งŒ, ๊ทธ์— ๋น„๋ก€ํ•˜์—ฌ ๋†’์€ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”์™€ ์„ค๊ณ„ ํŒจํ„ด์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ์š”๊ตฌํ•œ๋‹ค [4, 5]. ## ๐Ÿ“– Core Content - **๋น„์ฆˆ๋‹ˆ์Šค ์—ญ๋Ÿ‰ ์ค‘์‹ฌ์˜ ์„œ๋น„์Šค ๋ชจ๋ธ๋ง**: DDD๋Š” ์„œ๋น„์Šค๋ฅผ ๋น„์ฆˆ๋‹ˆ์Šค ์—ญ๋Ÿ‰(business capability)์ด๋‚˜ ํ•˜์œ„ ๋„๋ฉ”์ธ(subdomain)์„ ์ค‘์‹ฌ์œผ๋กœ ์กฐ์งํ•˜๋„๋ก ์œ ๋„ํ•œ๋‹ค [2, 6]. ์ด๋Š” ๊ฐ ์„œ๋น„์Šค๊ฐ€ ํŠน์ • ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ์„ ์บก์Аํ™”ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA)์˜ ํ•ต์‹ฌ ์›์น™๊ณผ ์™„๋ฒฝํ•˜๊ฒŒ ์ผ์น˜ํ•œ๋‹ค [2]. - **๋ช…ํ™•ํ•œ ๋กœ์ง ๊ฒฝ๊ณ„์™€ ์บก์Аํ™”(Encapsulation)**: DDD๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์„ ๊ตฌํ˜„ํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ์—”ํ‹ฐํ‹ฐ, ์ฆ‰ DDD Aggregate ๋‹จ์œ„๋กœ ๋กœ์ง์„ ๊ตฌ์„ฑํ•œ๋‹ค [6]. ๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค(Modular Monolith) ์•„ํ‚คํ…์ฒ˜์— DDD ์›์น™์„ ์ ์šฉํ•  ๊ฒฝ์šฐ, ์‹œ์Šคํ…œ์„ ๋ฌผ๋ฆฌ์  ๋„คํŠธ์›Œํฌ๋กœ ๋ถ„ํ• ํ•˜์ง€ ์•Š๊ณ ๋„ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๊ฒฝ๊ณ„๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ฐ•์ œํ•˜์—ฌ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๋” ์กฐ์ง์ ์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค [1, 7]. - **ํด๋ฆฐ/ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜์™€์˜ ์œตํ•ฉ**: ๋„๋ฉ”์ธ ๋กœ์ง์„ ์™ธ๋ถ€ ์ธํ”„๋ผ์ŠคํŠธ๋Ÿญ์ฒ˜๋‚˜ UI๋กœ๋ถ€ํ„ฐ ๊ฒฉ๋ฆฌํ•˜๋Š” ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜(Hexagonal Architecture) ๋ฐ ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜(Clean Architecture)๋Š” ๋ณธ์งˆ์ ์œผ๋กœ DDD ์›์น™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ฑฐ๋‚˜ ๊ฐ•๋ ฅํ•œ ์‹œ๋„ˆ์ง€๋ฅผ ๋ฐœํœ˜ํ•œ๋‹ค [3, 8]. ์ผ๋ก€๋กœ Salesforce์™€ ๊ฐ™์€ ๋Œ€๊ทœ๋ชจ ํ”Œ๋žซํผ ๋˜ํ•œ ๋ณต์žกํ•œ ๋„๋ฉ”์ธ ๋กœ์ง์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋„๋ฉ”์ธ ์ฃผ๋„ ์•„ํ‚คํ…์ฒ˜(Domain-Driven Architecture)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ๋‹ค [5]. ## โš–๏ธ Trade-offs & Caveats - **๊ฐ€ํŒŒ๋ฅธ ํ•™์Šต ๊ณก์„ ๊ณผ ๋†’์€ ์ „๋ฌธ์„ฑ ์š”๊ตฌ**: ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„๋ฅผ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์„ค๊ณ„ ํŒจํ„ด๊ณผ ์ถ”์ƒํ™” ๊ฐœ๋…์— ๋Œ€ํ•œ ์„ฑ์ˆ™ํ•œ ์ดํ•ด๊ฐ€ ํ•„์ˆ˜์ ์ด๋‹ค [4]. ์ด๋กœ ์ธํ•ด DDD์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์†Œ๊ทœ๋ชจ ํŒ€์ด๋‚˜ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ๋งค์šฐ ๊ฐ€ํŒŒ๋ฅธ ํ•™์Šต ๊ณก์„ ์ด ์š”๊ตฌ๋œ๋‹ค๋Š” ์ œ์•ฝ์ด ์žˆ๋‹ค [4]. - **ํƒ€ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ๋„์ž…์˜ ์ „์ œ ์กฐ๊ฑด**: DDD์— ๋Œ€ํ•œ ์ „๋ฌธ์„ฑ์€ ๋‹จ์ˆœํžˆ ์„ค๊ณ„๋ฅผ ๋„˜์–ด์„œ ๋‹ค๋ฅธ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์„ ์ฑ„ํƒํ•˜๋Š” ๋ฐ ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‹œ์Šคํ…œ์˜ ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ๋ชจ๋‘ ์ €์žฅํ•˜๋Š” ์ด๋ฒคํŠธ ์†Œ์‹ฑ(Event Sourcing) ํŒจํ„ด์„ ๋„์ž…ํ•˜๋ ค ํ•  ๋•Œ, ํŒ€ ๋‚ด์— DDD์— ๋Œ€ํ•œ ์ถฉ๋ถ„ํ•œ ์ „๋ฌธ์„ฑ์ด ์—†๋‹ค๋ฉด ํ•ด๋‹น ํŒจํ„ด์˜ ๋„์ž…์„ ํ”ผํ•ด์•ผ ํ•œ๋‹ค [9]. ## ๐Ÿ”— Knowledge Connections ### Related Concepts #### [์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด] - [[Microservices Architecture]] - ์—ฐ๊ฒฐ ์ด์œ : MSA๋Š” ์„œ๋น„์Šค๋ฅผ ๋น„์ฆˆ๋‹ˆ์Šค ์—ญ๋Ÿ‰ ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐ ์ค‘์ ์„ ๋‘๋ฉฐ, ์ด๋Š” DDD์˜ ํ•ต์‹ฌ ์ฒ ํ•™๊ณผ ์™„๋ฒฝํžˆ ๋งž๋‹ฟ์•„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค [2]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: DDD๋กœ ๋„์ถœ๋œ ์„œ๋ธŒ๋„๋ฉ”์ธ์ด ์‹ค์ œ ๋ฌผ๋ฆฌ์ ์ธ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ํ™˜๊ฒฝ์—์„œ ์–ด๋–ป๊ฒŒ ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค๋กœ ๋ฐฐํฌ๋˜๊ณ  ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. - [[Modular Monolith]] - ์—ฐ๊ฒฐ ์ด์œ : ๋ถ„์‚ฐ ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ๋ฅผ ์ทจํ•˜์ง€ ์•Š๋Š” ๋‹จ์ผ ์ฝ”๋“œ๋ฒ ์ด์Šค ํ™˜๊ฒฝ์—์„œ๋„ DDD๋ฅผ ํ™œ์šฉํ•ด ๋‚ด๋ถ€ ๋น„์ฆˆ๋‹ˆ์Šค ๋ชจ๋“ˆ์˜ ๊ฒฝ๊ณ„๋ฅผ ์—„๊ฒฉํžˆ ๋‚˜๋ˆ„๋Š” ๋ฐ ํ™œ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค [1, 7]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง(MSA)์„ ํ”ผํ•˜๋ฉด์„œ๋„ ์–ด๋–ป๊ฒŒ DDD๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ์˜ ๋ณต์žก์„ฑ์„ ํ†ต์ œํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š”์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. - [[Hexagonal Architecture]] - ์—ฐ๊ฒฐ ์ด์œ : ํฌํŠธ์™€ ์–ด๋Œ‘ํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์™ธ๋ถ€ ๊ธฐ์ˆ  ์ข…์†์„ฑ์œผ๋กœ๋ถ€ํ„ฐ ๋‚ด๋ถ€ ์ฝ”์–ด๋ฅผ ๊ฒฉ๋ฆฌํ•˜๋Š” ์ด ์•„ํ‚คํ…์ฒ˜๋Š” DDD์—์„œ ์ •์˜ํ•œ ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•˜๋Š” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค [3]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ธฐ์ˆ  ์Šคํƒ์œผ๋กœ๋ถ€ํ„ฐ ์™„๋ฒฝํžˆ ๋ถ„๋ฆฌํ•˜์—ฌ ์ˆœ์ˆ˜ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ตฌ์กฐ์  ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค. - [[Event Sourcing Pattern]] - ์—ฐ๊ฒฐ ์ด์œ : ์ด๋ฒคํŠธ ์†Œ์‹ฑ ํŒจํ„ด์„ ํšจ๊ณผ์ ์œผ๋กœ ์„ค๊ณ„ํ•˜๊ณ  ์šด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” DDD ์—ญ๋Ÿ‰์ด ์„ ์ œ์ ์œผ๋กœ ์š”๊ตฌ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค [9]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์ƒํƒœ ๋ณ€๊ฒฝ์ด ์ด๋ ฅ์„ ํ†ตํ•ด ๊ด€๋ฆฌ๋  ๋•Œ ๋น„์ฆˆ๋‹ˆ์Šค ๋ชจ๋ธ(์• ๊ทธ๋ฆฌ๊ฑฐํŠธ)์ด ์–ด๋–ป๊ฒŒ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ณ  ์žฌ๊ตฌ์„ฑํ•˜๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. #### [๋น„์ฆˆ๋‹ˆ์Šค/๋กœ์ง ๊ตฌ์„ฑ ์š”์†Œ] - [[DDD Aggregates]] - ์—ฐ๊ฒฐ ์ด์œ : DDD์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™๊ณผ ๋กœ์ง์„ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ์บก์Аํ™”ํ•˜๋Š” ํ•ต์‹ฌ ๋ฐ์ดํ„ฐ ๋‹จ์œ„์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค [6]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์ฝ”๋“œ ์ˆ˜์ค€์—์„œ ๋„๋ฉ”์ธ์˜ ๊ทœ์น™๊ณผ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์ด ์–ด๋–ป๊ฒŒ ๋‹จ์ผ ํŠธ๋žœ์žญ์…˜ ๋‹จ์œ„๋กœ ๋ณดํ˜ธ๋˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค. - [[Subdomain]] - ์—ฐ๊ฒฐ ์ด์œ : ์‹œ์Šคํ…œ์˜ ์ „์ฒด ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ์˜ ์Šฌ๋ผ์ด์Šค๋ฅผ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋‹จ์œ„๋กœ ๋‚˜๋ˆˆ ๋ชจ๋ธ๋กœ, DDD ์ „๋žต์  ์„ค๊ณ„์˜ ๊ทผ๊ฐ„์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค [6]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๊ฑฐ๋Œ€ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฌธ์ œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘์€ ๊ตฌ์„ฑ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์ ธ ๊ฐ๊ฐ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋˜๋Š” ๋ชจ๋“ˆ๋กœ ๋งคํ•‘๋˜๋Š”์ง€ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. ### Deeper Research Questions - ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(DDD)์—์„œ ์ •์˜ํ•˜๋Š” 'Bounded Context'๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ๋ฌผ๋ฆฌ์  ๊ฒฝ๊ณ„์™€ ์–ด๋–ค ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์–ธ์ œ ์ด ๋‘˜์„ ์ผ์น˜์‹œํ‚ค๋Š” ๊ฒƒ์ด ํšจ๊ณผ์ ์ธ๊ฐ€? - ํŒ€ ๋‚ด์— DDD ์ „๋ฌธ์„ฑ์ด ๋ถ€์กฑํ•  ๋•Œ, ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜๋‚˜ ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ฃ๋ถˆ๋ฆฌ ๋„์ž…ํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ๊ธฐ์ˆ  ๋ถ€์ฑ„์™€ ์‹คํŒจ ์‚ฌ๋ก€๋Š” ๋ฌด์—‡์ธ๊ฐ€? - ๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค(Modular Monolith) ์•„ํ‚คํ…์ฒ˜ ํ™˜๊ฒฝ์—์„œ DDD์˜ Aggregate ๊ฐ„ ํ†ต์‹ ๊ณผ ๋ฐ์ดํ„ฐ ์ฐธ์กฐ๋Š” ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋˜์–ด์•ผ ๊ฒฐํ•ฉ๋„(Coupling)๋ฅผ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๋Š”๊ฐ€? - ์ด๋ฒคํŠธ ์†Œ์‹ฑ(Event Sourcing) ํŒจํ„ด์„ ๊ตฌํ˜„ํ•  ๋•Œ, DDD์˜ ์—ญ๋Ÿ‰์ด ํ•„์ˆ˜์ ์ด๋ผ๊ณ  ํ‰๊ฐ€๋ฐ›๋Š” ์ด์œ ๋Š” ์ƒํƒœ ๊ด€๋ฆฌ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ์ด๋ฒคํŠธ ํ๋ฆ„ ์‚ฌ์ด์˜ ์–ด๋–ค ์ƒํ˜ธ์ž‘์šฉ ๋•Œ๋ฌธ์ธ๊ฐ€? - ๊ธฐ์กด์˜ ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ(Data-Driven) ๋˜๋Š” ํŠธ๋žœ์žญ์…˜ ์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋ฐ˜ ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์„ ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„๋กœ ์ „ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ๊ฑฐ์ณ์•ผ ํ•˜๋Š” ์ ์ง„์ ์ธ ๋ฆฌํŒฉํ† ๋ง ์ „๋žต์€ ๋ฌด์—‡์ธ๊ฐ€? ### Practical Application Contexts - **Implementation:** ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์ด ํฌํ•จ๋œ ์—”ํ‹ฐํ‹ฐ(Aggregate)๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ, ์™ธ๋ถ€ DB ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ UI ๊ด€๋ จ ์ฝ”๋“œ๊ฐ€ ๋„๋ฉ”์ธ ๋ชจ๋ธ์— ์นจํˆฌํ•˜์ง€ ์•Š๋„๋ก ์ถ”์ƒํ™”๋œ ํฌํŠธ/์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค. - **System Design:** ์ดˆ๊ธฐ ์Šคํƒ€ํŠธ์—…์—์„œ ๋ฌด๋ฆฌํ•˜๊ฒŒ MSA๋ฅผ ๋„์ž…ํ•˜๊ธฐ๋ณด๋‹ค, ์šฐ์„  ๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค ๊ตฌ์กฐ ํ•˜์—์„œ DDD๋ฅผ ํ†ตํ•ด ๋…ผ๋ฆฌ์  ๋„๋ฉ”์ธ ๊ฒฝ๊ณ„๋ฅผ ์žก์•„๋‘์–ด ํ›—๋‚  ํ™•์žฅ์— ๋Œ€๋น„ํ•˜๋Š” ์ฒญ์‚ฌ์ง„์œผ๋กœ ํ™œ์šฉํ•œ๋‹ค. - **Operation / Maintenance:** ๋ช…ํ™•ํ•œ ์„œ๋ธŒ๋„๋ฉ”์ธ ๋ถ„๋ฆฌ๋ฅผ ํ†ตํ•ด ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์˜์—ญ์„ ์‹ ์†ํ•˜๊ฒŒ ํŒŒ์•…ํ•˜๊ณ , ๋‹ค๋ฅธ ๋ชจ๋“ˆ๋กœ์˜ ๋ฒ„๊ทธ ์ „ํŒŒ(Cascading failure)๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์œ ์ง€๋ณด์ˆ˜ํ•œ๋‹ค. - **Learning Path:** ๋””์ž์ธ ํŒจํ„ด โ†’ ํด๋ฆฐ/ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜์˜ ์ดํ•ด โ†’ DDD ์ „๋žต์  ์„ค๊ณ„(Bounded Context) โ†’ DDD ์ „์ˆ ์  ์„ค๊ณ„(Aggregate, Value Object) โ†’ ์ด๋ฒคํŠธ ์†Œ์‹ฑ ์ ์šฉ ์ˆœ์œผ๋กœ ์‹ฌํ™” ํ•™์Šต์„ ์ง„ํ–‰ํ•œ๋‹ค. - **My Project Relevance:** ๋ณต์žกํ•œ ๋„๋ฉ”์ธ(์˜ˆ: ๊ธˆ์œต, ๊ฒฐ์ œ, ํ—ฌ์Šค์ผ€์–ด ๋“ฑ) ํ”„๋กœ์ ํŠธ์—์„œ ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„, ์™ธ๋ถ€ ์ธํ”„๋ผ ์š”์ธ์— ์˜ํ•ด ์ฝ”๋“œ๊ฐ€ ๋ง๊ฐ€์ง€์ง€ ์•Š๋„๋ก ์•ˆ์ „ํ•œ ๋„๋ฉ”์ธ ๋ ˆ์ด์–ด๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์œผ๋กœ ์ ์šฉ๋œ๋‹ค. ### Adjacent Topics - [[CQRS (Command Query Responsibility Segregation)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. (โ€ป ์ฐธ๊ณ : ์ผ๋ฐ˜์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ ๋งฅ๋ฝ์—์„œ ์ด๋ฒคํŠธ ์†Œ์‹ฑ๊ณผ ํ•จ๊ป˜ DDD ๋ชจ๋ธ์˜ ์ƒํƒœ ์กฐํšŒ์™€ ๋ช…๋ น ์ฒ˜๋ฆฌ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ์ „๋žต์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ์ œ๊ณต๋œ ์†Œ์Šค ๋‚ด์—์„œ๋Š” DDD์™€์˜ ์ง์ ‘์ ์ธ ๋งตํ•‘ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•จ) --- *Last updated: 2026-05-02*