--- id: P-REINFORCE-WIKI-80601CA7 category: Unified confidence_score: 0.95 tags: ['anaemic-domain-model', 'transaction-script', 'domain-model', 'microservice-architecture', 'domain-driven-design-(ddd)', 'software-engineering'] last_reinforced: 2026-05-02 --- # [[Anaemic Domain Model]] ## ๐Ÿ“Œ Brief ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. (์†Œ์Šค ๋ฐ์ดํ„ฐ ๋‚ด ํ•ด๋‹น ์ฃผ์ œ์— ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์ด๊ณ  ์ƒ์„ธํ•œ ์ •์˜๋Š” ์—†์œผ๋ฉฐ, ๋…์ž ๋Œ“๊ธ€ ํ† ๋ก ์˜ ์ผ๋ถ€๋กœ๋งŒ ์งง๊ฒŒ ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๋‚ด์šฉ์€ ์ œํ•œ๋œ ๋‹จ์„œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.) Anaemic Domain Model(๋นˆ์•ฝํ•œ ๋„๋ฉ”์ธ ๋ชจ๋ธ)์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์•„ํ‚คํ…์ฒ˜ ๋‚ด์—์„œ ์•ˆํ‹ฐํŒจํ„ด(anti-pattern)์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ฉฐ, ํŠธ๋žœ์žญ์…˜ ์Šคํฌ๋ฆฝํŠธ(Transaction Script)์™€ ๋™์ผํ•œ ๊ฐœ๋…์œผ๋กœ ์–ธ๊ธ‰๋ฉ๋‹ˆ๋‹ค [1]. ๊ทœ๋ชจ๊ฐ€ ์ž‘๊ณ  ๋‹จ์ˆœํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์œ ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ๋ถ„์‚ฐ๋œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ ๋„๋ฉ”์ธ ๋กœ์ง์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ๋Š” ์ ํ•ฉ์„ฑ์— ๋Œ€ํ•œ ๋…ผ์Ÿ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค [1, 2]. ## ๐Ÿ“– Core Content **์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.** ์ œ๊ณต๋œ ์†Œ์Šค์—์„œ๋Š” Anaemic Domain Model ์ž์ฒด์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์„ค๋ช…ํ•˜์ง€ ์•Š์œผ๋ฉฐ, ๋‹จ์ง€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA)์—์„œ์˜ ํ™œ์šฉ ์—ฌ๋ถ€์— ๋Œ€ํ•œ ๊ฐœ๋ฐœ์ž ๊ฐ„์˜ ํ† ๋ก ์—์„œ๋งŒ ๋“ฑ์žฅํ•ฉ๋‹ˆ๋‹ค. * **๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ์˜ ์ ์šฉ ๊ฐ€๋Šฅ์„ฑ์— ๋Œ€ํ•œ ์˜๋ฌธ:** ๋ชจ๋†€๋ฆฌ์‹(Monolithic) ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ๋ณต์žก์„ฑ์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ์ •๊ตํ•œ ๊ตฌ์กฐ๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ, ๋‹จ์ผ ๋„๋ฉ”์ธ์œผ๋กœ ๋ถ„ํ• ๋œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋‚ด๋ถ€์—์„œ๋Š” ๋กœ์ง์ด ํฌ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— Anaemic Model(ํŠธ๋žœ์žญ์…˜ ์Šคํฌ๋ฆฝํŠธ)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ถฉ๋ถ„ํžˆ ํ•ฉ๋ฆฌ์ ์ด์ง€ ์•Š์€์ง€์— ๋Œ€ํ•œ ์˜๊ฒฌ์ด ์ œ๊ธฐ๋œ ๋ฐ” ์žˆ์Šต๋‹ˆ๋‹ค [1]. * **๋ถ„์‚ฐ๋œ ํŠธ๋žœ์žญ์…˜ ์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•œ ๋น„ํŒ:** ๋ฐ˜๋ฉด, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ถ„ํ•ดํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ๊ฑธ์ณ 'ํŠธ๋žœ์žญ์…˜ ์Šคํฌ๋ฆฝํŠธ ์กฐ๊ฐ'๋“ค์„ ํฉ๋ฟŒ๋ ค ๋†“๋Š” ๊ฒƒ์€ ์ข‹์€ ์„ค๊ณ„๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๋ฐ˜๋ก ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค [2]. * **๋Œ€์•ˆ์  ์ ‘๊ทผ:** ๋นˆ์•ฝํ•œ ๋„๋ฉ”์ธ ๋ชจ๋ธ ๋Œ€์‹  '์ž˜ ํ‘œํ˜„๋œ ๋„๋ฉ”์ธ ๋ชจ๋ธ(well represented domain model)'์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์†Œํ”„ํŠธ์›จ์–ด ๊ฒฝ๊ณ„๋ฅผ ์ ์ ˆํžˆ ์„ค๊ณ„ํ•˜๊ณ  ๊ฐœ๋ณ„ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๊ฑด๊ฐ•ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ์„ฑ์žฅ์‹œํ‚ค๋Š” ๋ฐ ๋” ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค [2]. ## โš–๏ธ Trade-offs & Caveats **์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.** ์†Œ์Šค ๋‚ด์šฉ์—์„œ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ์ œ์•ฝ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. * **๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ํŒŒํŽธํ™” ์œ„ํ—˜:** Anaemic Domain Model ๊ธฐ๋ฐ˜์˜ ํŠธ๋žœ์žญ์…˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ํ™˜๊ฒฝ์— ์ ์šฉํ•  ๊ฒฝ์šฐ, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ๊ฐ ์„œ๋น„์Šค ๋‹จ์œ„๋กœ ์ž‘๊ฒŒ ์ชผ๊ฐœ์ ธ ๋ถ„์‚ฐ๋˜๊ธฐ๋งŒ ํ•  ๋ฟ, ์ ์ ˆํžˆ ๊ทธ๋ฃนํ™”๋˜๊ฑฐ๋‚˜ ๋ช…ํ™•ํ•œ ๋„๋ฉ”์ธ ๊ฒฝ๊ณ„๋ฅผ ๊ฐ–์ถ”์ง€ ๋ชปํ•ด ๊ฑด๊ฐ•ํ•œ ์„œ๋น„์Šค ํ™•์žฅ์„ ์ €ํ•ดํ•  ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค [2]. ## ๐Ÿ”— Knowledge Connections ### Related Concepts #### [์„ค๊ณ„ ์ฒ ํ•™ ๋ฐ ํŒจํ„ด] - [[Transaction Script]] - ์—ฐ๊ฒฐ ์ด์œ : ์†Œ์Šค์—์„œ Anaemic Domain Model๊ณผ ๋™์ผํ•œ ์˜๋ฏธ ํ˜น์€ ์œ ์‚ฌํ•œ ๋ช…์นญ์œผ๋กœ ์–ธ๊ธ‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค [1]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ๋„๋ฉ”์ธ ๋ชจ๋ธ์ด ์•„๋‹ˆ๋ผ ์ ˆ์ฐจ์ ์œผ๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹จ์ˆœ ์„ค๊ณ„ ํŒจํ„ด์˜ ํŠน์„ฑ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - [[Domain Model]] - ์—ฐ๊ฒฐ ์ด์œ : Anaemic Domain Model์˜ ์•ˆํ‹ฐํŒจํ„ด์  ํŠน์„ฑ์„ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€์•ˆ์œผ๋กœ '์ž˜ ํ‘œํ˜„๋œ ๋„๋ฉ”์ธ ๋ชจ๋ธ'์˜ ํ•„์š”์„ฑ์ด ์ œ๊ธฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค [2]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ƒ์„ฑ ์‹œ์ ์„ ๊ฒฐ์ •ํ•˜๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์‘์ง‘๋ ฅ ์žˆ๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ธฐ์ค€์ ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #### [์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ] - [[Microservice Architecture]] - ์—ฐ๊ฒฐ ์ด์œ : ์†Œ์Šค์—์„œ Anaemic Domain Model์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ์ ˆํ•œ์ง€๋ฅผ ๋…ผ์˜ํ•˜๋Š” ํ•ต์‹ฌ ํ™˜๊ฒฝ์  ๋ฐฐ๊ฒฝ์ž…๋‹ˆ๋‹ค [1, 2]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ž‘๊ฒŒ ๋ถ„๋ฆฌ๋˜์—ˆ๋‹ค๊ณ  ํ•ด์„œ ๋‚ด๋ถ€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์„ค๊ณ„๊นŒ์ง€ ๋‹จ์ˆœํ™”(์Šคํฌ๋ฆฝํŠธํ™”)ํ•ด๋„ ๋˜๋Š”์ง€์— ๋Œ€ํ•œ ์•„ํ‚คํ…์ฒ˜์  ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋ฅผ ํƒ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Deeper Research Questions ์†Œ์Šค์— ์ •๋ณด๊ฐ€ ๋งค์šฐ ๋ถ€์กฑํ•˜์—ฌ ์›๋ก ์ ์ธ ์‹ฌ์ธต ์งˆ๋ฌธ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ํ•œ๊ณ„๊ฐ€ ์žˆ์œผ๋‚˜, ์†Œ์Šค์˜ ๋ฌธ๋งฅ์„ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ›„์† ์กฐ์‚ฌ ์งˆ๋ฌธ์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - Anaemic Domain Model(ํŠธ๋žœ์žญ์…˜ ์Šคํฌ๋ฆฝํŠธ)์ด ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ํŒŒํŽธํ™”๋ฅผ ์ผ์œผํ‚ค๋Š” ๊ตฌ์ฒด์ ์ธ ๊ธฐ์ˆ ์  ์›์ธ์€ ๋ฌด์—‡์ธ๊ฐ€? - ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋‚ด๋ถ€์˜ ๋ณต์žก๋„๊ฐ€ ๋‚ฎ์€ ๊ฒฝ์šฐ์—๋„ Anaemic Domain Model ๋Œ€์‹  ์™„์ „ํ•œ Domain Model์„ ์ฑ„ํƒํ•ด์•ผ ํ•˜๋Š” ์‹ค๋ฌด์  ๊ธฐ์ค€์€ ์–ด๋””์— ์žˆ๋Š”๊ฐ€? - ํŠธ๋žœ์žญ์…˜ ์Šคํฌ๋ฆฝํŠธ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“ˆ์„ฑ ํ•œ๊ณ„๊ฐ€ ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(DDD)์˜ Bounded Context์™€ ์–ด๋–ป๊ฒŒ ์ƒ์ถฉํ•˜๋Š”๊ฐ€? - ์†Œ๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ Anaemic Domain Model์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด '์ถฉ๋ถ„ํžˆ ์ข‹๋‹ค(good enough)'๊ณ  ํ‰๊ฐ€๋ฐ›๋Š” ๊ธฐ์ˆ ์ /๋น„์šฉ์  ๊ทผ๊ฑฐ๋Š” ๋ฌด์—‡์ธ๊ฐ€? - '์ž˜ ํ‘œํ˜„๋œ ๋„๋ฉ”์ธ ๋ชจ๋ธ'์„ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋‚ด์— ๊ตฌ์ถ•ํ•  ๋•Œ, ๋ฐ์ดํ„ฐ์˜ ๋…์ ์  ์ƒํƒœ(Exclusive State) ์›์น™๊ณผ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐฉ์‹์€ ๋ฌด์—‡์ธ๊ฐ€? ### Practical Application Contexts - **Implementation:** ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. (๋‹ค๋งŒ, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋‚ด๋ถ€์˜ ์ฝ”๋“œ๋ฅผ ์งค ๋•Œ ๋„๋ฉ”์ธ ๋ชจ๋ธ๋ง์„ ์ƒ๋žตํ•˜๊ณ  ์ ˆ์ฐจ์  ์Šคํฌ๋ฆฝํŠธ๋กœ ์งค์ง€ ๊ณ ๋ฏผํ•˜๋Š” ์ƒํ™ฉ๊ณผ ์—ฐ๊ด€๋ฉ๋‹ˆ๋‹ค [1].) - **System Design:** ์†Œํ”„ํŠธ์›จ์–ด ๊ฒฝ๊ณ„๋ฅผ ๋ถ„ํ• ํ•  ๋•Œ ๋‹จ์ˆœํžˆ ์ฝ”๋“œ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์— ๊ทธ์น˜์ง€ ์•Š๊ณ , ๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๊ฐ€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ž˜ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๊ฐ€์ง€๋„๋ก '์ž˜ ํ‘œํ˜„๋œ ๋„๋ฉ”์ธ ๋ชจ๋ธ'์„ ์„ค๊ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [2]. - **Operation / Maintenance:** ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. - **Learning Path:** ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. - **My Project Relevance:** ์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค. ### Adjacent Topics - [[Domain-Driven Design (DDD)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: Anaemic Domain Model์ด ์ดˆ๋ž˜ํ•˜๋Š” ๋กœ์ง ํŒŒํŽธํ™”๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ , ์†Œ์Šค์— ์–ธ๊ธ‰๋œ "๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ์ ์ ˆํ•œ ๊ทธ๋ฃนํ™”"๋ฅผ ์‹คํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋„๋ฉ”์ธ ๊ฒฝ๊ณ„๋ฅผ ๋„์ถœํ•˜๋Š” ์›๋ฆฌ(Bounded Context ๋“ฑ)๋ฅผ ์—ฐ๊ตฌํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ง€์‹์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [2-4]. --- *Last updated: 2026-05-02*