--- id: P-REINFORCE-WIKI-63BEF86D category: "10_Wiki/๐Ÿ’ก Topics/02_Architecture_Principles" confidence_score: 0.95 tags: ['ddd-(domain-driven-design)', 'hexagonal-architecture', 'modular-monolith', 'microservices-architecture', 'ddd-aggregates', 'architecture-principles'] last_reinforced: 2026-05-02 --- # [[DDD (Domain-Driven Design)]] ## ๐Ÿ“Œ Brief Summary DDD(Domain-Driven Design, ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„)๋Š” ์†Œํ”„ํŠธ์›จ์–ด์˜ ์„œ๋น„์Šค๋ฅผ ๋น„์ฆˆ๋‹ˆ์Šค ์—ญ๋Ÿ‰์„ ์ค‘์‹ฌ์œผ๋กœ ์กฐ์งํ•˜๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๊ฒฝ๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ๊ฐ•์ œํ•˜๊ธฐ ์œ„ํ•ด ํ™œ์šฉ๋˜๋Š” ์„ค๊ณ„ ์›์น™์ž…๋‹ˆ๋‹ค [1, 2]. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์„ ๊ตฌํ˜„ํ•˜๋Š” ํ•ต์‹ฌ ์—”ํ‹ฐํ‹ฐ(์• ๊ทธ๋ฆฌ๊ฒŒ์ดํŠธ)๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ๋ช…ํ™•ํ•œ ๊ฒฝ๊ณ„๋ฅผ ์ด‰์ง„ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด๋“ค๊ณผ ๊ฐ•ํ•œ ์‹œ๋„ˆ์ง€๋ฅผ ๋ƒ…๋‹ˆ๋‹ค [3, 4]. ๋‹ค๋งŒ, ๋†’์€ ์ˆ˜์ค€์˜ ์ถ”์ƒํ™”์™€ ์„ค๊ณ„ ์ดํ•ด๋„๊ฐ€ ์š”๊ตฌ๋˜์–ด ํŒ€์˜ ์ „๋ฌธ์„ฑ์ด ๋ถ€์กฑํ•  ๊ฒฝ์šฐ ๋„์ž… ์‹œ ์–ด๋ ค์›€์„ ๊ฒช์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5, 6]. ## ๐Ÿ“– Core Content * **๋น„์ฆˆ๋‹ˆ์Šค ์—ญ๋Ÿ‰ ์ค‘์‹ฌ์˜ ์„œ๋น„์Šค ์กฐ์งํ™”**: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA)์—์„œ ๊ฐ ์„œ๋น„์Šค๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ์—ญ๋Ÿ‰์„ ์ค‘์‹ฌ์œผ๋กœ ์กฐ์ง๋˜์–ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” DDD์˜ ํ•ต์‹ฌ ์›์น™๊ณผ ๋งฅ์„ ๊ฐ™์ด ํ•ฉ๋‹ˆ๋‹ค [2]. * **๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค์—์„œ์˜ ๊ฒฝ๊ณ„ ๊ฐ•์ œ**: ๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค(Modular Monolith) ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœ์ž๋Š” ์„œ๋น„์Šค๋ฅผ ๋ฌผ๋ฆฌ์ ์ธ ๋„คํŠธ์›Œํฌ๋กœ ๋ถ„ํ• ํ•˜์ง€ ์•Š๊ณ ๋„ DDD ์›์น™์„ ๊น”๋”ํ•˜๊ฒŒ ์ ์šฉํ•˜์—ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๊ฒฝ๊ณ„๋ฅผ ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1]. * **์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด๊ณผ์˜ ๋†’์€ ํ˜ธํ™˜์„ฑ**: ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜(Hexagonal Architecture)๋Š” ๋ช…ํ™•ํ•œ ๊ฒฝ๊ณ„๋ฅผ ์ด‰์ง„ํ•˜๋ฏ€๋กœ DDD ์›์น™๊ณผ ๋งค์šฐ ์ž˜ ๋ถ€ํ•ฉํ•ฉ๋‹ˆ๋‹ค [3]. ๋˜ํ•œ, UI ํฌํŠธ์—๋Š” MVC ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ณ„์ธต์—๋Š” DDD๋ฅผ ์ ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์—ฌ๋Ÿฌ ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [7]. * **๋น„์ฆˆ๋‹ˆ์Šค ์—”ํ‹ฐํ‹ฐ์™€ ์• ๊ทธ๋ฆฌ๊ฒŒ์ดํŠธ(Aggregates)**: ์‹œ์Šคํ…œ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์„ ๊ตฌํ˜„ํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ์—”ํ‹ฐํ‹ฐ(DDD ์• ๊ทธ๋ฆฌ๊ฒŒ์ดํŠธ๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ)์™€ ์™ธ๋ถ€ ์„ธ๊ณ„์™€ ํ†ต์‹ ํ•˜๋Š” ์–ด๋Œ‘ํ„ฐ(Adapters)๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค [4]. *(โ€ป ์†Œ์Šค์— DDD์˜ ๊ตฌ์ฒด์ ์ธ ์ „์ˆ ์  ํŒจํ„ด์ด๋‚˜ ์ƒ์„ธํ•œ ๋‚ด๋ถ€ ์›๋ฆฌ์— ๋Œ€ํ•œ ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.)* ## โš–๏ธ Trade-offs & Caveats * **๊ฐ€ํŒŒ๋ฅธ ํ•™์Šต ๊ณก์„ (Steep Learning Curve)**: DDD์— ์ต์ˆ™ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๊ทœ๋ชจ๊ฐ€ ์ž‘์€ ํŒ€์˜ ๊ฒฝ์šฐ, ๋””์ž์ธ ํŒจํ„ด๊ณผ ์ถ”์ƒํ™”์— ๋Œ€ํ•œ ์„ฑ์ˆ™ํ•œ ์ดํ•ด๊ฐ€ ์š”๊ตฌ๋˜๋ฏ€๋กœ ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜(Clean Architecture)์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ํ•™์Šต ๊ณก์„ ์œผ๋กœ ์ธํ•ด ํฐ ์–ด๋ ค์›€์„ ๊ฒช์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [6]. * **์ „๋ฌธ์„ฑ ๋ถ€์กฑ ์‹œ ๋„์ž… ์œ„ํ—˜**: ํŒ€ ๋‚ด์— DDD ์ „๋ฌธ์„ฑ์ด ๊ฒฐ์—ฌ๋˜์–ด ์žˆ๋‹ค๋ฉด, ์ด๋ฒคํŠธ ์†Œ์‹ฑ(Event Sourcing) ํŒจํ„ด๊ณผ ๊ฐ™์ด ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์˜ ์‚ฌ๊ณ ๋ฐฉ์‹ ์ „ํ™˜์ด ํ•„์š”ํ•œ ๋ณต์žกํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์€ ํ”ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [5, 8]. ํŠนํžˆ ๋‹จ์ˆœํ•œ CRUD ์ž‘์—… ์œ„์ฃผ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์€ ์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5]. ## ๐Ÿ”— Knowledge Connections ### Related Concepts #### [๊ด€๊ณ„ ์œ ํ˜•: ํ˜ธํ™˜ ๋ฐ ํ™•์žฅ ์•„ํ‚คํ…์ฒ˜ (Compatible Architectures)] * [[Hexagonal Architecture]] * ์—ฐ๊ฒฐ ์ด์œ : ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋ช…ํ™•ํ•œ ๊ฒฝ๊ณ„๋ฅผ ์ œ๊ณตํ•˜์—ฌ DDD ์›์น™์„ ์ ์šฉํ•˜๊ธฐ ์ข‹์€ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค [3]. * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: DDD์˜ ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์™ธ๋ถ€ ์ธํ„ฐํŽ˜์ด์Šค๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌํ˜„์œผ๋กœ๋ถ€ํ„ฐ ์–ด๋–ป๊ฒŒ ๊ธฐ์ˆ ์ ์œผ๋กœ ๋…๋ฆฝ์‹œํ‚ค๋Š”์ง€ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * [[Modular Monolith]] * ์—ฐ๊ฒฐ ์ด์œ : ๋„คํŠธ์›Œํฌ ๋ถ„๋ฆฌ ์—†์ด๋„ DDD ์›์น™์„ ํ†ตํ•ด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๊ฒฝ๊ณ„๋ฅผ ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ๋Š” ์„ค๊ณ„ ๋ชจ๋ธ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค [1]. * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: MSA์˜ ๋ถ„์‚ฐ ์‹œ์Šคํ…œ ๋ณต์žก์„ฑ์„ ํ”ผํ•˜๋ฉด์„œ๋„ ๋…ผ๋ฆฌ์  ๋„๋ฉ”์ธ ๋ถ„๋ฆฌ ์ด์ ์„ ์ทจํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * [[Microservices Architecture]] * ์—ฐ๊ฒฐ ์ด์œ : ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ๋น„์ฆˆ๋‹ˆ์Šค ์—ญ๋Ÿ‰์„ ์ค‘์‹ฌ์œผ๋กœ ์กฐ์ง๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™์ด DDD์™€ ์ง๊ฒฐ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค [2]. * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋…ผ๋ฆฌ์ ์ธ ๋„๋ฉ”์ธ ๋ชจ๋ธ ์„ค๊ณ„๊ฐ€ ๋ฌผ๋ฆฌ์ ์ธ ์„œ๋น„์Šค ๋ถ„๋ฆฌ ๋‹จ์œ„๋กœ ์–ด๋–ป๊ฒŒ ๋งตํ•‘๋˜๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #### [๊ด€๊ณ„ ์œ ํ˜•: ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ (Core Components)] * [[DDD Aggregates]] * ์—ฐ๊ฒฐ ์ด์œ : ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋‚ด์—์„œ ๊ตฌ์ฒด์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์„ ๊ตฌํ˜„ํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ์—”ํ‹ฐํ‹ฐ์˜ ๋ฌถ์Œ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค [4]. * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์‹œ์Šคํ…œ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ๋„๋ฉ”์ธ ๋‚ด๋ถ€์—์„œ ์–ด๋–ป๊ฒŒ ์บก์Аํ™”๋˜๊ณ  ์กฐ์งํ™”๋˜๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #### [๊ด€๊ณ„ ์œ ํ˜•: ๊ฒฐํ•ฉ ์‹œ ๋†’์€ ์ „๋ฌธ์„ฑ์ด ์š”๊ตฌ๋˜๋Š” ํŒจํ„ด (Patterns Requiring Expertise)] * [[Event Sourcing]] * ์—ฐ๊ฒฐ ์ด์œ : ๋ชจ๋“  ์ƒํƒœ ๋ณ€๊ฒฝ์„ ์ด๋ฒคํŠธ์˜ ์—ฐ์†์œผ๋กœ ์บก์ฒ˜ํ•˜๋Š” ํŒจํ„ด์œผ๋กœ, ๋„์ž… ์‹œ DDD ์ „๋ฌธ์„ฑ์ด ํ•„์ˆ˜์ ์œผ๋กœ ์š”๊ตฌ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค [5, 9]. * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋‹จ์ˆœํ•œ CRUD ๋ฐฉ์‹์—์„œ ๋ฒ—์–ด๋‚˜, ๋„๋ฉ”์ธ์˜ ์ƒํƒœ ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋ธ๋งํ•˜๋Š” ๋ฐฉ์‹์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Deeper Research Questions * DDD์˜ ํ•ต์‹ฌ ์š”์†Œ์ธ '์• ๊ทธ๋ฆฌ๊ฒŒ์ดํŠธ(Aggregates)'๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ ๊ฐ ์„œ๋น„์Šค ๊ฐ„ ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ๊ณผ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”๊ฐ€? * ์ด๋ฒคํŠธ ์†Œ์‹ฑ(Event Sourcing) ํŒจํ„ด์„ ๊ตฌํ˜„ํ•  ๋•Œ CRUD ๋งˆ์ธ๋“œ์…‹์„ ๋ฒ—์–ด๋‚˜๊ธฐ ์œ„ํ•ด DDD ์ „๋ฌธ์„ฑ์ด ํ•„์ˆ˜์ ์ธ ๊ตฌ์ฒด์  ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€? * ๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค(Modular Monolith) ์•„ํ‚คํ…์ฒ˜์—์„œ ๋„คํŠธ์›Œํฌ ๋ถ„ํ•  ์—†์ด DDD ์›์น™๋งŒ์œผ๋กœ ๋ชจ๋“ˆ ๊ฐ„ ๊ฐ•๊ฒฐํ•ฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ์„ค๊ณ„ ๊ธฐ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€? * ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜(Clean Architecture)๋‚˜ ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜(Hexagonal Architecture)์˜ ํฌํŠธ/์–ด๋Œ‘ํ„ฐ ๋ชจ๋ธ์ด DDD์˜ ๋„๋ฉ”์ธ ๋กœ์ง์„ ์™ธ๋ถ€ ๋ณ€ํ™”๋กœ๋ถ€ํ„ฐ ์–ด๋–ป๊ฒŒ ๋ณดํ˜ธํ•˜๋Š”๊ฐ€? * DDD์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์†Œ๊ทœ๋ชจ ๊ฐœ๋ฐœ ํŒ€์ด ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ฑ„ํƒํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ํ•™์Šต ๊ณก์„ (Learning Curve)์„ ์™„ํ™”ํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ๊ณ„์  ์ ‘๊ทผ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€? ### Practical Application Contexts * **Implementation:** ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์„ ๊ตฌํ˜„ํ•˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ์—”ํ‹ฐํ‹ฐ๋ฅผ DDD์˜ ์• ๊ทธ๋ฆฌ๊ฒŒ์ดํŠธ(Aggregates)๋กœ ์‹๋ณ„ํ•˜๊ณ  ๊ฐœ๋ฐœํ•˜์—ฌ ํ•ต์‹ฌ ๋กœ์ง์„ ์บก์Аํ™”ํ•ฉ๋‹ˆ๋‹ค [4]. * **System Design:** ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ๋˜๋Š” ๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ ์ปดํฌ๋„ŒํŠธ๋‚˜ ์„œ๋น„์Šค์˜ ๊ฒฝ๊ณ„๋ฅผ ๋ถ„ํ• ํ•˜๋Š” ๋…ผ๋ฆฌ์  ๊ธฐ์ค€์œผ๋กœ DDD์˜ ๋น„์ฆˆ๋‹ˆ์Šค ์—ญ๋Ÿ‰ ์ค‘์‹ฌ ๋ถ„ํ•  ์›์น™์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค [1-3]. * **Operation / Maintenance:** ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌ๋œ ๋น„์ฆˆ๋‹ˆ์Šค ๊ฒฝ๊ณ„ ๋•๋ถ„์— ์ˆ˜์ •์ด ๋‹ค๋ฅธ ๋ชจ๋“ˆ์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ์ด๋ฒคํŠธ ์†Œ์‹ฑ ๋“ฑ์„ ๊ฒฐํ•ฉํ•  ์‹œ ์šด์˜์— ๋Œ€ํ•œ ๋†’์€ ์ „๋ฌธ์„ฑ์ด ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค [1, 5]. * **Learning Path:** ํŒ€์— DDD ๊ฒฝํ—˜์ด ์—†๋‹ค๋ฉด ๋ณต์žกํ•œ ์•„ํ‚คํ…์ฒ˜(์˜ˆ: ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜, ์ด๋ฒคํŠธ ์†Œ์‹ฑ) ๋„์ž…์„ ์„ฃ๋ถˆ๋ฆฌ ์ง„ํ–‰ํ•˜๊ธฐ๋ณด๋‹ค, ์ถ”์ƒํ™” ๋ฐ ๋„๋ฉ”์ธ ๋ถ„๋ฆฌ ์›์น™์— ๋Œ€ํ•œ ์‚ฌ์ „ ํ•™์Šต์„ ์ถฉ๋ถ„ํžˆ ์ง„ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [5, 6]. * **My Project Relevance:** ํ”„๋กœ์ ํŠธ๊ฐ€ ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์„ ๋‹ค๋ฃจ๊ฑฐ๋‚˜ ํ–ฅํ›„ MSA๋กœ์˜ ์•ˆ์ „ํ•œ ์ „ํ™˜์„ ๊ณ ๋ คํ•˜๋Š” ๋ชจ๋“ˆํ˜• ๋ชจ๋†€๋ฆฌ์Šค๋กœ ์„ค๊ณ„๋  ๋•Œ ํ•ต์‹ฌ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ ์ฑ„ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Adjacent Topics * [[Clean Architecture]] * ํ™•์žฅ ๋ฐฉํ–ฅ: ๋„๋ฉ”์ธ ๋กœ์ง์„ ์ค‘์•™์— ๋ฐฐ์น˜ํ•˜๊ณ  ์™ธ๋ถ€ ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ DB๋ฅผ ์–ด๋Œ‘ํ„ฐ๋กœ ๋ฐ€์–ด๋‚ด๋Š” ์ถ”์ƒํ™” ๊ณ„์ธต ์„ค๊ณ„ ์›๋ฆฌ๋ฅผ ํ•™์Šตํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํ™•์žฅ. * [[Event-Driven Architecture (EDA)]] * ํ™•์žฅ ๋ฐฉํ–ฅ: ๋„๋ฉ”์ธ ๋‚ด์˜ ์ƒํƒœ ๋ณ€ํ™”(Event)๋ฅผ ์‹œ์Šคํ…œ ์ „์ฒด์— ๋น„๋™๊ธฐ์ ์œผ๋กœ ์ „ํŒŒํ•˜๊ณ  ๋‹ค๋ฅธ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ์ด์— ๋ฐ˜์‘ํ•˜๋„๋ก ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ํ†ต์‹  ๋ฐฉ์‹์— ๋Œ€ํ•œ ํ•™์Šต์œผ๋กœ ํ™•์žฅ. --- *Last updated: 2026-05-02*