--- id: P-REINFORCE-AUTO-WIKI-ARC-001 category: "10_Wiki/๐Ÿ’ก Topics/02_Architecture_Principles" confidence_score: 0.95 tags: [architecture, clean-architecture, design-patterns, mvc, separation-of-concerns, p-reinforce] last_reinforced: 2026-05-01 --- # [[Clean Architecture & Patterns|Clean Architecture & Patterns]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > "๊ธฐ์ˆ ์  ์„ธ๋ถ€ ์‚ฌํ•ญ(DB, Framework)์œผ๋กœ๋ถ€ํ„ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ฒฉ๋ฆฌํ•˜์—ฌ, ์‹œ์Šคํ…œ์˜ ์ˆ˜๋ช…์„ ์—ฐ์žฅํ•˜๊ณ  ๋ณ€ํ™”์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ(Separation of Concerns)์˜ ์ •์ ." ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์€ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์‹œ ์ƒˆ๋กœ์šด ์ฝ”๋“œ๊ฐ€ ์‹œ์Šคํ…œ์˜ ์ „์ฒด์ ์ธ ์„ค๊ณ„ ๋ฐฉํ–ฅ๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ‰๊ฐ€ํ•˜๋Š” ๊ฐ€์žฅ ๊ณ ์ˆ˜์ค€์˜ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. 1. **ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜ (Clean Architecture)**: * **์˜์กด์„ฑ ๊ทœ์น™**: ์˜์กด์„ฑ์€ ํ•ญ์ƒ ์•ˆ์ชฝ(๋„๋ฉ”์ธ/์—”ํ‹ฐํ‹ฐ)์„ ํ–ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€์˜ ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณ€๊ฒฝ์ด ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋„๋ก ๊ฒฉ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. * **๊ณ„์ธต ๋ถ„๋ฆฌ**: ์—”ํ‹ฐํ‹ฐ(Entity), ์œ ์ฆˆ์ผ€์ด์Šค(Use Case), ์ธํ„ฐํŽ˜์ด์Šค ์–ด๋Œ‘ํ„ฐ, ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ๋“œ๋ผ์ด๋ฒ„ ๋ ˆ์ด์–ด๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ฐ๊ฐ์˜ ์—ญํ• ์„ ๋ช…ํ™•ํžˆ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. 2. **MVC (Model-View-Controller)**: * ๋ฐ์ดํ„ฐ(Model), ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(View), ๋กœ์ง(Controller)์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฐ ์ปดํฌ๋„ŒํŠธ์˜ ๋…๋ฆฝ์  ๊ฐœ๋ฐœ๊ณผ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. 3. **์ฝ”๋“œ ๋ฆฌ๋ทฐ์—์„œ์˜ ์—ญํ• **: * ๋ฆฌ๋ทฐ์–ด๋Š” ์ƒˆ๋กœ์šด ์ฝ”๋“œ๊ฐ€ ํ™•๋ฆฝ๋œ ๋””์ž์ธ ํŒจํ„ด๊ณผ ์ •๋ ฌ๋˜๋Š”์ง€, ๊ณ„์ธต ๊ฐ„์˜ ์‹ ๋ขฐ ๊ฒฝ๊ณ„๋ฅผ ์นจ๋ฒ”ํ•˜์ง€ ์•Š๋Š”์ง€ ๋น„ํŒ์ ์œผ๋กœ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๋„ํ•œ ๊ณ„์ธตํ™” (Over-layering)**: ๋‹จ์ˆœํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๋•Œ๋„ ๋ชจ๋“  ๋ ˆ์ด์–ด๋ฅผ ์—„๊ฒฉํžˆ ์ ์šฉํ•˜๋ฉด ์ฝ”๋“œ ๋ณต์žก๋„๊ฐ€ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ์™€ ๋ณต์žก๋„์— ๋”ฐ๋ผ ์•„ํ‚คํ…์ฒ˜์˜ ์—„๊ฒฉํ•จ์„ ์กฐ์ ˆํ•˜๋Š” ์‹ค์šฉ์ ์ธ ์ ‘๊ทผ(Pragmatism)์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. - **์•„ํ‚คํ…์ฒ˜ ๋ถ€ํŒจ (Architectural Decay)**: ์‹œ๊ฐ„์ด ํ๋ฆ„์— ๋”ฐ๋ผ ํŽธ์˜๋ฅผ ์œ„ํ•ด ๊ณ„์ธต์„ ์šฐํšŒํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์Œ“์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค PR๋งˆ๋‹ค ์•„ํ‚คํ…์ฒ˜ ๋ฌด๊ฒฐ์„ฑ์„ ์ ๊ฒ€ํ•˜์—ฌ ๋ถ€ํŒจ๋ฅผ ์กฐ๊ธฐ์— ์ฐจ๋‹จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - [[SOLID Principles|SOLID Principles]]: ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง€ํƒฑํ•˜๋Š” ์„ธ๋ถ€ ์„ค๊ณ„ ์›์น™. - [[Architecture Review (แ„‹แ…กแ„แ…ตแ„แ…ฆแ†จแ„Žแ…ฅ แ„†แ…ตแ†พ แ„‰แ…ฅแ†ฏแ„€แ…จ แ„…แ…ตแ„‡แ…ฒ)|Architecture Review]]: ์•„ํ‚คํ…์ฒ˜ ์ผ๊ด€์„ฑ์„ ๊ฒ€์ฆํ•˜๋Š” ํ”„๋กœ์„ธ์Šค. - [[Dependency Management (DI & DIP)|Dependency Management (DI & DIP]]: ๊ณ„์ธต ๊ฐ„ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ๊ธฐ์ˆ ์  ์ˆ˜๋‹จ. - [[Single Responsibility Principle (SRP)|Single Responsibility Principle (SRP]]: ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ์˜ ๊ทผ๊ฑฐ. - Abstraction & Over-engineering: ์•„ํ‚คํ…์ฒ˜ ๋„์ž… ์‹œ ๊ฒฝ๊ณ„ํ•ด์•ผ ํ•  ํ•จ์ •. ---