--- category: Unified tags: [auto-consolidated, technical-documentation] title: [[Onion Architecture]] last_updated: 2026-05-02 --- # [[Onion Architecture]] ## ๐Ÿ“Œ Brief Summary ์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜(Onion Architecture)๋Š” ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ์™€ ์˜์กด์„ฑ ์—ญ์ „ ์›์น™์„ ๊ทน๋Œ€ํ™”ํ•˜์—ฌ ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ์•„ํ‚คํ…์ฒ˜์˜ ์ค‘์‹ฌ์— ๋ฐฐ์น˜ํ•˜๋Š” ๋„๋ฉ”์ธ ์ค‘์‹ฌ ์„ค๊ณ„ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์™ธ๋ถ€ ๊ธฐ์ˆ (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, UI ๋“ฑ)๋กœ๋ถ€ํ„ฐ ์™„์ „ํžˆ ๋ถ„๋ฆฌํ•˜๊ณ , ๋ชจ๋“  ์˜์กด์„ฑ์ด ๋ฐ”๊นฅ์ชฝ์—์„œ ์•ˆ์ชฝ(์ค‘์‹ฌ)์œผ๋กœ๋งŒ ํ–ฅํ•˜๋„๋ก ์—„๊ฒฉํ•œ ๊ณ„์ธต ๊ฐ„ ์ข…์†์„ฑ ๊ทœ์น™์„ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜(Hexagonal Architecture)์˜ ๊ฐœ๋…์„ ํ™•์žฅํ•˜์—ฌ ๊ณ ์•ˆ๋˜์—ˆ์œผ๋ฉฐ, ์ดํ›„ ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜(Clean Architecture)๋กœ ๋ฐœ์ „ํ•˜๋Š” ์ง•๊ฒ€๋‹ค๋ฆฌ ์—ญํ• ์„ ํ•œ ๋งˆ์ดํฌ๋กœ ๋ ˆ๋ฒจ์˜ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ## ๐Ÿ“– Core Content * **๋„๋ฉ”์ธ ๋ชจ๋ธ์˜ ์ค‘์‹ฌ ๋ฐฐ์น˜ ๋ฐ ์˜์กด์„ฑ ์—ญ์ „:** ์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜๋Š” ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง(๋„๋ฉ”์ธ ๋ชจ๋ธ)์„ ์•„ํ‚คํ…์ฒ˜์˜ ์ •์ค‘์•™์— ๋‘ก๋‹ˆ๋‹ค. ์™ธ๋ถ€ ๊ณ„์ธต(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์›น ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ)์—์„œ ๋‚ด๋ถ€ ๊ณ„์ธต์œผ๋กœ๋งŒ ์˜์กด์„ฑ์ด ํ–ฅํ•˜๋„๋ก ์—„๊ฒฉํ•œ ์ข…์†์„ฑ ๊ทœ์น™์„ ์ค€์ˆ˜ํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. [1] * **๊ธฐ์ˆ  ๋ฐ ์ธํ”„๋ผ๋กœ๋ถ€ํ„ฐ์˜ ์™„๋ฒฝํ•œ ๋…๋ฆฝ:** ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ์™ธ๋ถ€์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)์— ๋Œ€ํ•ด ์ „ํ˜€ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹ , ์ถ”์ƒํ™”๋œ ํฌํŠธ(Port)๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์†Œํ†ตํ•˜๋ฉฐ ์‹ค์ œ ๊ตฌํ˜„์ฒด๋Š” ์™ธ๋ถ€ ๊ณ„์ธต์—์„œ ์–ด๋Œ‘ํ„ฐ(Adapter)๋ฅผ ํ†ตํ•ด ์ฃผ์ž…๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ธฐ์ˆ  ์Šคํƒ์ด ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ํ•ต์‹ฌ ๋กœ์ง์„ ์ˆ˜์ •ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—†์ด๋„ ์™„๋ฒฝํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. [1] * **์•„ํ‚คํ…์ฒ˜์˜ ์ง„ํ™”์™€ ์œ„์น˜:** ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๋จผ์ € ๋“ฑ์žฅํ•˜์—ฌ ํฌํŠธ์™€ ์–ด๋Œ‘ํ„ฐ์˜ ๊ฐœ๋…์„ ์ •๋ฆฝํ–ˆ๋‹ค๋ฉด, ์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜๋Š” ์ด๋ฅผ ํ™•์žฅํ•˜์—ฌ ๋” ๋งŽ์€ ๊ณ„์ธต(layers)์„ ๊ตฌ์กฐํ™”ํ•œ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ์ดํ›„ ์ด ๊ฐœ๋…๋“ค์€ ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜๋กœ ๋”์šฑ ์ •์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. [2] * **๊ฑฐ์‹œ์  ์•„ํ‚คํ…์ฒ˜ ๋‚ด์˜ ๋ฏธ์‹œ์ (Micro) ์„ค๊ณ„:** ์ „ํ†ต์ ์ธ ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜(Layered Architecture)๊ฐ€ ์‹œ์Šคํ…œ ๊ตฌ์กฐ๋‚˜ ํŒ€์„ ๋‚˜๋ˆ„๋Š” ๊ฑฐ์‹œ์ (Macro) ์ˆ˜์ค€์˜ ์•„ํ‚คํ…์ฒ˜๋ผ๋ฉด, ์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜๋Š” ๊ทธ์ค‘ '๋น„์ฆˆ๋‹ˆ์Šค ๊ณ„์ธต' ๋‚ด๋ถ€๋ฅผ ์–ด๋–ป๊ฒŒ ๊ฒฌ๊ณ ํ•˜๊ฒŒ ์„ค๊ณ„ํ•  ๊ฒƒ์ธ์ง€์— ์ดˆ์ ์„ ๋งž์ถ˜ ๋ฏธ์‹œ์ (Micro) ์„ค๊ณ„ ํŒจํ„ด์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. [3] ## โš–๏ธ Trade-offs & Caveats * **๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ ์ฆ๊ฐ€:** ์˜์กด์„ฑ์ด ์™ธ๋ถ€์—์„œ ๋‚ด๋ถ€๋กœ๋งŒ ํ–ฅํ•˜๋„๋ก ๊ณ„์ธต์„ ๋ถ„๋ฆฌํ•˜๊ณ  ์บก์Аํ™”ํ•˜๋Š” ๊ณผ์ •์—์„œ, ์–‘ํŒŒ์˜ ๊ฐ ๊ณ„์ธต๋งˆ๋‹ค ์œ ์‚ฌํ•œ ๊ฐ€์น˜ ๊ฐ์ฒด(Value Objects)๋‚˜ POJO(Plain Old Java Object)๋ฅผ ์ค‘๋ณตํ•ด์„œ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๋ถ€์ž‘์šฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ๊ฐ ํŒจํ‚ค์ง€์— ๋˜‘๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด ์ดˆ๊ธฐ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. [2] * **๊ตฌ์กฐ์  ๋ณต์žก์„ฑ:** ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜์— ๋น„ํ•ด ๊ณ„์ธต์ด ๋” ์„ธ๋ถ„ํ™”๋˜์–ด ์žˆ์–ด, ๋‹จ์ผ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹จ์ˆœํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ์šฉํ•˜๊ธฐ์—๋Š” ์ง€๋‚˜์นœ ์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง(Over-engineering)์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. [2] * *์†Œ์Šค์— ๊ด€๋ จ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.* (์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜๋งŒ์˜ ๋…์ž์ ์ธ ์„ธ๋ถ€ ์ œ์•ฝ ์‚ฌํ•ญ์ด๋‚˜ ์„ฑ๋Šฅ์  ํ•œ๊ณ„์— ๋Œ€ํ•œ ์ถ”๊ฐ€์ ์ธ ๋ฐ์ดํ„ฐ๋Š” ์†Œ์Šค ๋‚ด์— ์ œํ•œ์ ์œผ๋กœ๋งŒ ์–ธ๊ธ‰๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.) ## ๐Ÿ”— Knowledge Connections ### Related Concepts #### [์•„ํ‚คํ…์ฒ˜/๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ] * [[Hexagonal Architecture]] * ์—ฐ๊ฒฐ ์ด์œ : ์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜์˜ ์‚ฌ์ƒ์  ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ๊ฐ€์žฅ ํฌ๊ด„์ ์ด๊ณ  ๋จผ์ € ๋“ฑ์žฅํ•œ ๋„๋ฉ”์ธ ์ค‘์‹ฌ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. [2] * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ํฌํŠธ(Port)์™€ ์–ด๋Œ‘ํ„ฐ(Adapter)๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ๋กœ์ง๊ณผ ์™ธ๋ถ€ ์ธํ”„๋ผ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * [[Clean Architecture]] * ์—ฐ๊ฒฐ ์ด์œ : ์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜์˜ ๊ฐœ๋…์„ ๋”์šฑ ํ™•์žฅํ•˜์—ฌ ์„ธ๋ถ€์ ์ธ ๊ทœ์œจ์„ ์ถ”๊ฐ€ํ•œ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. [1, 2] * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜์—์„œ ๋น„๋กฏ๋œ ์˜์กด์„ฑ ๊ทœ์น™์ด ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ํ™˜๊ฒฝ์—์„œ ์–ด๋–ป๊ฒŒ ์ตœ์ข…์ ์œผ๋กœ ์ •๋ฆฝ๋˜๋Š”์ง€ ๋น„๊ต ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * [[Layered Architecture]] * ์—ฐ๊ฒฐ ์ด์œ : ์ „ํ†ต์ ์ธ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์œผ๋กœ, ์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜๋Š” ๊ณ„์ธตํ˜• ๊ตฌ์กฐ์˜ ๋‹จ์ (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ข…์†์„ฑ)์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋Œ€์•ˆ์ด์ž, ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๊ณ„์ธต ๋‚ด๋ถ€๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์“ฐ์ž…๋‹ˆ๋‹ค. [3] * ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์˜์กด์„ฑ์ด ์œ„์—์„œ ์•„๋ž˜๋กœ(ํ”„๋ ˆ์  ํ…Œ์ด์…˜ -> ๋น„์ฆˆ๋‹ˆ์Šค -> ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค) ํ๋ฅด๋Š” ๋ฐฉ์‹๊ณผ ๋ฐ–์—์„œ ์•ˆ์œผ๋กœ ํ๋ฅด๋Š” ์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜์˜ ํŒจ๋Ÿฌ๋‹ค์ž„ ์ฐจ์ด๋ฅผ ๋ช…ํ™•ํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Deeper Research Questions * ์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜์—์„œ ์—ฌ๋Ÿฌ ๊ณ„์ธต์„ ๊ฑฐ์น˜๋ฉฐ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(POJO)์˜ ์ค‘๋ณต๊ณผ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค์šฉ์ ์ธ ๋งคํ•‘(Mapping) ์ „๋žต์€ ๋ฌด์—‡์ธ๊ฐ€? * ๋‹จ์ˆœํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์˜ค๋ฒ„์—”์ง€๋‹ˆ์–ด๋ง์ด ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ํ”„๋กœ์ ํŠธ ๋„์ž… ์‹œ ์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜์˜ ๋ณต์žก์„ฑ์„ ์ •๋‹นํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์ฒด์ ์ธ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๋ณต์žก๋„ ๊ธฐ์ค€์€ ๋ฌด์—‡์ธ๊ฐ€? * ์กฐ์ง ๊ตฌ์กฐ(Conway's Law)์˜ ๊ด€์ ์—์„œ, ๊ฑฐ์‹œ์  ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜์™€ ๋ฏธ์‹œ์  ์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ฒฐํ•ฉํ•  ๋•Œ ๊ฐœ๋ฐœ ํŒ€ ๊ฐ„์˜ ์—ญํ•  ๋ถ„๋‹ด๊ณผ ํ˜‘์—… ํ”„๋กœ์„ธ์Šค๋Š” ์–ด๋–ป๊ฒŒ ์„ค๊ณ„ํ•ด์•ผ ํ•˜๋Š”๊ฐ€? * ์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜ ๋‚ด์—์„œ ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์—†์ด ๋…๋ฆฝ์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•œ ์ตœ์ ์˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ(Unit Test) ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€? * ํ—ฅ์‚ฌ๊ณ ๋‚ , ์–‘ํŒŒ, ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๊ทผ๋ณธ์ ์œผ๋กœ ์œ ์‚ฌํ•œ ์•„์ด๋””์–ด๋ฅผ ๊ณต์œ ํ•œ๋‹ค๋ฉด, ๊ฐ ํŒจํ„ด์ด ๊ตฌ์ฒด์ ์ธ ์ฝ”๋“œ ๋ ˆ๋ฒจ์˜ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ์— ๋ฏธ์น˜๋Š” ์ฐจ์ด์ ๋ก  ๋ฌด์—‡์ธ๊ฐ€? ### Practical Application Contexts * **Implementation:** ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํ”„๋กœ์ ํŠธ์˜ ์ค‘์‹ฌ(๋‚ด๋ถ€ ํŒจํ‚ค์ง€)์— ๊ตฌํ˜„ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ €์žฅ์ด๋‚˜ UI ํ‘œ์‹œ์— ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์ธ ์ฝ”๋“œ๋Š” ๊ฐ€์žฅ ๋ฐ”๊นฅ์ชฝ ๊ณ„์ธต์— ๊ตฌํ˜„ํ•œ ๋’ค ์˜์กด์„ฑ ์ฃผ์ž…(DI)์„ ํ†ตํ•ด ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. * **System Design:** ๊ธฐ์ˆ  ์Šคํƒ์ด๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ์ž์ฃผ ๋ณ€๊ฒฝ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ฑฐ๋‚˜, ๋ณต์žกํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๊ทœ์น™์„ ์žฅ๊ธฐ์ ์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•ด์•ผ ํ•˜๋Š” ํ˜„๋Œ€์  ์‹œ์Šคํ…œ์„ ์„ค๊ณ„ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. * **Operation / Maintenance:** ๊ธฐ์ˆ  ์ข…์†์„ฑ์ด ์ค‘์•™ ๋„๋ฉ”์ธ ๋กœ์ง์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์šด์˜ ์ค‘์ธ ์„œ๋น„์Šค์˜ ์™ธ๋ถ€ ๊ฒฐ์ œ API, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒค๋” ๋“ฑ์„ ๊ต์ฒดํ•  ๋•Œ๋„ ์‹œ์Šคํ…œ ์ฝ”์–ด์˜ ์ˆ˜์ •์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ์„ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * **Learning Path:** Layered Architecture์˜ ๊ฐ•ํ•œ ๊ฒฐํ•ฉ์— ๋Œ€ํ•œ ๋ฌธ์ œ์ ์„ ๋จผ์ € ํ•™์Šตํ•œ ํ›„, ์˜์กด์„ฑ ์—ญ์ „ ์›์น™(DIP)์„ ๋ฐ”ํƒ•์œผ๋กœ Hexagonal -> Onion -> Clean Architecture ์ˆœ์œผ๋กœ ์ง„ํ™”ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„์˜ ํ๋ฆ„์„ ๋”ฐ๋ผ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. * **My Project Relevance:** ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์ด๋‚˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋‚ด์—์„œ ๊ฐ ์„œ๋น„์Šค์˜ ๋„๋ฉ”์ธ ๋กœ์ง์ด ์™ธ๋ถ€ ํ†ต์‹  ๋ฐฉ์‹์ด๋‚˜ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ์‹์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ๊ฒฌ๊ณ ํ•˜๊ฒŒ ๋™์ž‘ํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์„ ๊ตฌ์ถ•ํ•  ๋•Œ ์ง์ ‘์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Adjacent Topics * [[Domain-Driven Design (DDD)]] * ํ™•์žฅ ๋ฐฉํ–ฅ: ์–‘ํŒŒ ์•„ํ‚คํ…์ฒ˜์˜ ๊ฐ€์žฅ ์ค‘์‹ฌ์ด ๋˜๋Š” '๋„๋ฉ”์ธ ๋ชจ๋ธ'์„ ์–ด๋–ป๊ฒŒ ๋„์ถœํ•˜๊ณ  ์‹๋ณ„ํ•  ๊ฒƒ์ธ์ง€, ๋น„์ฆˆ๋‹ˆ์Šค ์˜์—ญ(Bounded Context)์„ ์–ด๋–ป๊ฒŒ ๋ถ„ํ• ํ•  ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ๋ถ„์„ ๋ฐ ์„ค๊ณ„ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ ํ•™์Šต์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --- *Last updated: 2026-05-02*