--- id: P-REINFORCE-AUTO-WIKI-ARCH-005 category: "10_Wiki/๐Ÿ’ก Topics/02_Architecture_Principles" confidence_score: 0.95 tags: [architecture, design-pattern, mvc, decoupling, ui-architecture, p-reinforce] last_reinforced: 2026-05-01 --- # [[MVC (Model-View-Controller)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > "๋ฐ์ดํ„ฐ(Model), ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(View), ๋กœ์ง ์ œ์–ด(Controller)๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ๊ด€์‹ฌ์‚ฌ๋ฅผ ๊ฒฉ๋ฆฌํ•จ์œผ๋กœ์จ, UI์˜ ๋ณ€ํ™”๊ฐ€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋„๋ก ์„ค๊ณ„ํ•˜๋Š” ๊ณ ์ „์ ์ด๊ณ  ๊ฐ•๋ ฅํ•œ ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ(SoC) ํŒจํ„ด." ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) MVC๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์กฐ์  ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์žฅ ๋„๋ฆฌ ์•Œ๋ ค์ง„ ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค. 1. **๊ตฌ์„ฑ ์š”์†Œ์˜ ์—ญํ• **: * **Model**: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ฐ ์ƒํƒœ ๋ณ€ํ™”๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. * **View**: ์‚ฌ์šฉ์ž์—๊ฒŒ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๋ ˆ์ด์–ด์ž…๋‹ˆ๋‹ค. ๋ชจ๋ธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ ๋กœ์ง์€ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. * **Controller**: ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ ๋ชจ๋ธ์„ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ๋ทฐ๋ฅผ ์„ ํƒํ•˜๋Š” ์ œ์–ด ํ๋ฆ„์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ๊ณผ ๋ทฐ ์‚ฌ์ด์˜ ์ค‘์žฌ์ž ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. 2. **๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ (Separation of Concerns)**: * ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ๋  ์ˆ˜ ์žˆ๋„๋ก ๊ฒฉ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. * ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์‹œ, ๋ทฐ์— ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ํฌํ•จ๋˜์–ด ์žˆ๊ฑฐ๋‚˜ ๋ชจ๋ธ์ด UI ์š”์†Œ๋ฅผ ์ง์ ‘ ์ฐธ์กฐํ•˜๋Š”์ง€ ๋“ฑ์„ ๊ฒ€ํ† ํ•˜์—ฌ ํŒจํ„ด์˜ ๋ฌด๊ฒฐ์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. 3. **์‹œ์Šคํ…œ ํ™•์žฅ์„ฑ**: * ์ผ๊ด€๋œ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•จ์œผ๋กœ์จ ์žฅ๊ธฐ์ ์ธ ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ์„ ๋‚ฎ์ถ”๊ณ , ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์‹œ์Šคํ…œ ์ „์ฒด์˜ ๋ณต์žก์„ฑ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๋น„๋Œ€ํ•œ ์ปจํŠธ๋กค๋Ÿฌ (Fat Controller)**: ๋กœ์ง์ด ์ปจํŠธ๋กค๋Ÿฌ์— ์ง‘์ค‘๋˜์–ด ์ฝ”๋“œ๊ฐ€ ๋น„๋Œ€ํ•ด์ง€๋Š” ํ˜„์ƒ์ด ์ž์ฃผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋น„์Šค ๋ ˆ์ด์–ด(Service Layer)๋ฅผ ์ถ”๊ฐ€๋กœ ๋„์ž…ํ•˜์—ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ชจ๋ธ์ด๋‚˜ ์„œ๋น„์Šค๋กœ ๋ถ„์‚ฐ์‹œํ‚ค๋Š” ์ „๋žต์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. - **ํ˜„๋Œ€์  ๋ณ€ํ˜•**: ์›น ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ฐœ์ „์— ๋”ฐ๋ผ MVP, MVVM ๋“ฑ ๋‹ค์–‘ํ•œ ๋ณ€ํ˜• ํŒจํ„ด์ด ๋“ฑ์žฅํ•˜์˜€์œผ๋‚˜, ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌ๋ผ๋Š” ํ•ต์‹ฌ ์ฒ ํ•™์€ MVC์—์„œ ๊ณ„์Šน๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - [[Design Patterns]]: ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์˜ ๋ฒ”์ฃผ. - [[Clean Architecture]]: MVC๋ฅผ ๋ณด๋‹ค ๊ณ ๋„ํ™”ํ•œ ๊ณ„์ธตํ™” ๊ตฌ์กฐ. - [[SOLID Principles]]: ๊ฐ ๊ณ„์ธต์˜ ๋‹จ์ผ ์ฑ…์ž„์„ ์ •์˜ํ•˜๋Š” ์›์น™. - [[Separation of Concerns (SoC)]]: ํŒจํ„ด์˜ ๊ทผ๋ณธ์ ์ธ ์„ค๊ณ„ ์ฒ ํ•™. - [[Code Health]]: ์ผ๊ด€๋œ ํŒจํ„ด ์ค€์ˆ˜๊ฐ€ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์Šคํ…œ์˜ ๊ฑด๊ฐ•์„ฑ. ---