[Spring Boot] MVC ํŒจํ„ด

์˜ˆ๊ฒฝ๋ฏผยท2024๋…„ 2์›” 11์ผ

[Spring Boot](JAVA)

๋ชฉ๋ก ๋ณด๊ธฐ
1/2

MVC ํŒจํ„ด

๋ชจ๋ธ-๋ทฐ-์ปจํŠธ๋กค๋Ÿฌ(modelโ€“viewโ€“controller, MVC)๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจํ„ด์ด๋‹ค. ์ด ํŒจํ„ด์„ ์„ฑ๊ณต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋กœ๋ถ€ํ„ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹œ๊ฐ์  ์š”์†Œ๋‚˜ ๊ทธ ์ด๋ฉด์—์„œ ์‹คํ–‰๋˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์„œ๋กœ ์˜ํ–ฅ ์—†์ด ์‰ฝ๊ฒŒ ๊ณ ์น  ์ˆ˜ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
(์ถœ์ฒ˜ - ์œ„ํ‚ค๋ฐฑ๊ณผ)

MVC ํŒจํ„ด์€ ์œ„์˜ ์„ค๋ช…๊ณผ ๊ฐ™์ด Model, View, Controller๋กœ ๊ตฌ์„ฑ๋œ ๋””์ž์ธ ํŒจํ„ด์ด๋‹ค. MVC ํŒจํ„ด์˜ ์„ธ๊ฐ€์ง€ ๊ตฌ์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ๊ฐ€์ง„๋‹ค.

๐Ÿ“Œ๋ชจ๋ธ(Model)

๋ชจ๋ธ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด์ด๋‹ค. ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•œ ํ›„ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ปจํŠธ๋กค๋Ÿฌ์™€ ๋ทฐ์— ์ „๋‹ฌํ•œ๋‹ค.

๐Ÿ“Œ๋ทฐ(View)

๋ทฐ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” ์œ ์ € ์ธํ„ฐํŽ˜์ด์Šค(User interface)๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋ทฐ๋Š” ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

๐Ÿ“Œ์ปจํŠธ๋กค๋Ÿฌ(Controller)

์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ชจ๋ธ๊ณผ ๋ทฐ ์‚ฌ์ด๋ฅผ ์ด์–ด์ฃผ๋Š” ๋‹ค๋ฆฌ(bridge) ์—ญํ• ์ด๋‹ค. ๋ชจ๋ธ๊ณผ ๋ทฐ๋กœ ๋ช…๋ น์„ ์ „๋‹ฌํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ์„œ๋ฒ„์—์„œ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.

๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ด ๋ณธ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„๋  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ”ฅMVC ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ !๐Ÿ”ฅ

๋ชจ๋“  ์‹œ์Šคํ…œ๋“ค์€ ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•จ์— ๋”ฐ๋ผ ๊ฐ ๊ธฐ๋Šฅ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„(Coupling)๊ฐ€ ๋†’์•„์ง„๋‹ค. ์ด ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’์•„์ง„ ์‹œ์Šคํ…œ์€ ์œ ์ง€ ๋ณด์ˆ˜ ์‹œ ๋งŽ์€ ์‹œ๊ฐ„๊ณผ ๋น„์šฉ์„ ๋ฐœ์ƒ์‹œํ‚จ๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋ธ, ๋ทฐ, ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋ถ„๋ฆฌ๋œ MVC ํŒจํ„ด์€ ์„œ๋กœ์—๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ, ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํŽธ๋ฆฌํ•˜๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

[์ฐธ๊ณ ]
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=je_un&logNo=222035464249
https://junhyunny.github.io/information/design-pattern/mvc-pattern/

[๋„์„œ] '์Šคํ”„๋ง๋ถ€ํŠธ3 ์ž๋ฐ” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ์ž…๋ฌธ'

profile
๐Ÿง‘โ€๐Ÿ’ป์†Œํ”„ํŠธ์›จ์–ด / ๐Ÿ” ๋…์ผ์–ด

0๊ฐœ์˜ ๋Œ“๊ธ€