๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

MVC Pattern

์‹œํ๋ฆฌํ‹ฐ์ง€ํ˜ธ 2024. 1. 28.

1. Model - View - Controller

 

 

Model

๊ฐœ๋ฐœํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์—์„œ ์š”๊ตฌ๋˜๋Š” ๊ด€์‹ฌ์‚ฌ์ด์ž ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ƒํ™”, ๋ชจ๋ธ๋งํ•˜์—ฌ ํ‘œํ˜„๋œ ๊ฒฐ๊ณผ ํด๋ž˜์Šค

 

View

Model์„ UI Presentation ์— ํ‘œ์‹œํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค

 

Controller

์‚ฌ์šฉ์ž์™€ ์‹œ์Šคํ…œ์„ ์ด์–ด์ฃผ๋Š” ๊ฐ€๊ต ์—ญํ• 

์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ž…๋ ฅ์„ ๋ฐ›์•„ Model ์กฐ์ž‘, View๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰

 

2. ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ

์ด๋Ÿฌํ•œ MVC ํŒจํ„ด์˜ ํ•ต์‹ฌ์€ ๋ณธ์งˆ์ ์œผ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ์—ญ ํ• ์„ ๋‹ด๋‹นํ•˜๋Š” ๋กœ์ง์„ ์—ญํ•  ๋ฏธ ์šฉ๋„์— ๋”ฐ๋ผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

๋””์ž์ด๋„ˆ๋Š” ์‹ฌ๋ฏธ์ ์ธ ์š”์†Œ์™€ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค, ํ™”๋ฉด ๋ฐฐ์น˜๋ฅผ ์œ„ํ•œ ๋ ˆ์ด์•„์›ƒ์—๋งŒ ์ง‘์ค‘ํ•˜๊ณ , ๊ฐœ๋ฐœ์ž๋Š” ์„œ๋น„์Šค์˜ ๋™์ž‘์— ํ•„์š”ํ•œ ๋กœ์ง ์ž‘์„ฑ์—๋งŒ ์ง‘์ค‘ํ•˜๋“ฏ์ด MVC๋Š” ์ด๋Ÿฌํ•œ ๊ฐ ์—ญํ• ์— ๋งž๊ฒŒ ๋ถ„๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

2-1 ์˜์กดํ•˜๋Š” ๋ฐฉํ–ฅ์— ๋”ฐ๋ฅธ ํŠน์„ฑ

 

ํ™”์‚ดํ‘œ์˜ ๋ฐฉํ–ฅ์„ ๋ณด๋ฉด, View๋Š” Model์— ์˜์กดํ•˜์ง€๋งŒ ๋ฐ˜๋Œ€๋กœ Model์€ View์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ์žˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ํ•ด์•ผ Model์ด View์— ์˜์กดํ•˜์ง€ ์•Š๊ฒŒ ๋˜๋ฉด์„œ, ๋‹ค๋ฅธ ํ‘œํ˜„์œผ๋กœ๋Š” ์ข…์†๋˜์ง€ ์•Š๊ฒŒ ๋˜๋ฉด์„œ View๊ฐ€ ์ˆ˜์ •๋จ์— ๋”ฐ๋ผ Model์ด ์ˆ˜์ •๋  ํ•„์š”๊ฐ€ ์—†์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

-> View์˜ ๋ ˆ์ด์•„์›ƒ์€ ๋‹ค์–‘ํ•˜๊ฒŒ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์œผ๋‚˜ ๊ทธ๋Ÿด ๋•Œ๋งˆ๋‹ค Model์ด ๊ฐ™์ด ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ณต์žกํ•ด์ง„๋‹ค.

 

3. MVC Pattern in Servlet / JSP

3-1 model 1

 

์„œ๋ธ”๋ฆฟ์„ ํ†ตํ•ด setAttribute๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์€ MVC ํŒจํ„ด ์ค‘ ์ดˆ๊ธฐ ๋ชจ๋ธ์ธ model1์˜ ๋ฐฉ์‹์„ ๋”ฐ๋ฅธ๋‹ค๊ณ  ๋ณธ๋‹ค.

 

3-2 model2

 

Servlet๊ณผ JSP ๊ธฐ์ˆ ์„ ๊ฐ™์ด ํ™œ์šฉํ•˜๋Š” ๋ฐฉ์‹์€ MVC ํŒจํ„ด ์ค‘ ๋ณด๋‹ค ๋ฐœ์ „๋œ model2 ์˜ ๋ฐฉ์‹์„ ๋”ฐ๋ฅธ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

๋Œ“๊ธ€