MVC Model1 vs MVC Model2

์œ ๊ด‘์ง„ยท2023๋…„ 9์›” 6์ผ
0

๐Ÿ“Œ 1. MVC

MVC๋ž€ Model-View-Controller์˜ ์•ฝ์ž๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ธ ๊ฐ€์ง€ ์—ญํ• ๋กœ ๊ตฌ๋ถ„ํ•œ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•์ด๋‹ค.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ Controller๋ฅผ ์กฐ์ž‘ํ•˜๋ฉด Controller๋Š” Model์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ View๋ฅผ ํ†ตํ•ด ์‹œ๊ฐ์  ํ‘œํ˜„์„ ์ œ์–ดํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋‹ค์‹œ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

๐Ÿ“– Model

Model์€ ๋‚ด๋ถ€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ํ•ด๋‹นํ•œ๋‹ค.

๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋กœ์ง์œผ๋กœ์จ ์ฒ˜๋ฆฌ๋˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋ฐ์ดํ„ฐ, DB์™€์˜ ์ƒํ˜ธ์ž‘์šฉ ๋“ฑ์„ ๋‹ด๋‹นํ•œ๋‹ค.

๐Ÿ“– View

View๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

์š”์ฒญ(Request)์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๊ฒฐ๊ณผ๋ฅผ View๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ™”๋ฉด์„ ํ†ตํ•ด ๋ณด์—ฌ์ค€๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ๊ฒฐ๊ณผ๋ฌผ์„ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์–ป์–ด์˜จ๋‹ค.

๐Ÿ“– Controller

Controller๋Š” Model๊ณผ View์‚ฌ์ด์—์„œ ์ค‘๊ณ„์ž ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์‚ฌํ•ญ์„ ํŒŒ์•…ํ•œ ํ›„์— ๊ทธ ์š”์ฒญ์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ Model์„ ์˜๋ขฐํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ View์— ๋ฐ˜์˜ํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์•Œ๋ ค์ค€๋‹ค.

๊ทธ๋Ÿผ MVC ํŒจํ„ด์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋Œ€์ฒด ๋ฌด์—‡์ผ๊นŒ?

๋ฐ”๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง(Back-end)๊ณผ UI๋กœ์ง(Front-end)์„ ๋ถ„๋ฆฌํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ์ˆ˜ํ–‰๊ฐ€๋Šฅํ•˜๋‹ค.

๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์™€ ์—ญํ• ์„ ๋ถ„๋ช…ํ•˜๊ฒŒ ์ •์˜ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ํŠน์ • ๋ถ€๋ถ„์— ์ง‘์ค‘ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ MVCํŒจํ„ด์€ 2๊ฐ€์ง€๋กœ ๋‚˜๋ˆ„์–ด์ง„๋‹ค. ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž.

๐Ÿ“Œ 2. MVC Model1

MVC Model1์€ View์™€ Controller๋ฅผ JSP์—์„œ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›๊ณ  JSP, Model๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜์—ฌ ๋ณ€๊ฒฝ๋œ Model์„ ์‚ฌ์šฉํ•˜์—ฌ View๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋Š”๊ฒƒ์„ ๋งํ•œ๋‹ค.

์ฆ‰, ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์ฒ˜๋ฆฌ์™€ Model์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์ฒ˜๋ฆฌ๋ฅผ JSP์—์„œ ๋ชจ๋‘ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿ“Œ 3. MVC Model2

MVC Model2 MVC Model1๊ณผ ๋‹ค๋ฅด๊ฒŒ Controller, View๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌ, ํ๋ฆ„์ œ์–ด๋ฅผ ํ•˜๋ฉด์„œ ํ•„์š”์‹œ Model๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๋Š” Controller๋Š” View์™€ ๋ถ„๋ฆฌ๋˜์–ด Servlet์—์„œ ๋‹ด๋‹นํ•˜๊ณ , ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” View๋Š” JSP์—์„œ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ์—ญํ• ์ด ๋ถ„๋ฆฌ๋˜์–ด M, V, C ์ค‘์—์„œ ์ˆ˜์ •ํ•ด์•ผ ํ•  ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด, ๊ทธ๊ฒƒ๋งŒ ์„ ํ…ํ•˜์—ฌ ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค.

profile
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ์œ ๊ด‘์ง„ ์ž…๋‹ˆ๋‹ค.

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