2 ๋ถ„ ์†Œ์š”

๐Ÿ“š WEB


๐Ÿ“š MVC ํŒจํ„ด

MVC Pattern ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

MVC ํŒจํ„ด์€ ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜์ด๋‹ค.
๋””์ž์ธ ํŒจํ„ด์ด๋ž€ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์–ด๋–ค ํŠน์ •ํ•œ ๊ฒƒ์„ ๊ฐœ๋ฐœํ•˜๋Š” ์ค‘์— ๋ฐœ์ƒํ–ˆ๋˜ ๋ฌธ์ œ์ ๋“ค์„ ์ •๋ฆฌํ•ด์„œ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ ์šฉํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์ •๋ฆฌํ•˜์—ฌ ํŠน์ •ํ•œ โ€œ๊ทœ์•ฝโ€์„ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ๋งŒ๋“  ๊ฒƒ์ด๋‹ค.
์ข€ ๋” ์‰ฝ๊ณ  ํŽธ๋ฆฌํ•˜๊ฒŒ ๋ฅผ ์ถ”๊ตฌํ•˜๋ฉฐ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋””์ž์ธ ํŒจํ„ด์ด๋‹ค.


MVC ๋Š” Model, View, Controller์˜ ์•ฝ์ž์ด๋‹ค.
ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•  ๋•Œ ์„ธ๊ฐ€์ง€์˜ ์—ญํ• ๋กœ ๊ตฌ๋ถ„ํ•œ ํŒจํ„ด์ด๋‹ค.

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

Model 1

view ์™€ logic ์„ JSP ํŽ˜์ด์ง€ ํ•˜๋‚˜์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ
Client๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๊ฒŒ ๋˜๋ฉด JSP ํŽ˜์ด์ง€๋Š” java beans ๋‚˜ ๋ณ„๋„์˜ service class ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž‘์—…์„ ์ฒ˜๋ฆฌ, ๊ฒฐ๊ณผ๋ฅผ Client ์— ์ถœ๋ ฅํ•œ๋‹ค.
๊ฐ„๋‹จํ•œ page๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๊ณผ๊ฑฐ์— ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜์—ˆ๋˜ architecture

  • ์žฅ์ 

    • ๊ตฌ์กฐ๊ฐ€ ๋‹จ์ˆœํ•˜๋ฉฐ ์ง๊ด€์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์šฐ๊ธฐ ์‰ฝ๋‹ค.
    • ๊ฐœ๋ฐœ ์‹œ๊ฐ„์ด ๋น„๊ต์  ์งง๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ ๋น„์šฉ์ด ๊ฐ์†Œ
  • ๋‹จ์ 

    • ์ถœ๋ ฅ์„ ์œ„ํ•œ view(html) ์ฝ”๋“œ์™€ ๋กœ์ง ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ java ์ฝ”๋“œ๊ฐ€ ์„ž์—ฌ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— JSP ์ฝ”๋“œ ์ž์ฒด๊ฐ€ ๋ณต์žกํ•ด ์ง„๋‹ค.
    • JSP ์ฝ”๋“œ์— Back-End(Developer)์™€ Front-End(Designer)๊ฐ€ ํ˜ผ์žฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ„์—…์ด ํž˜๋“ค์–ด์ง„๋‹ค.
    • project ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๊ฒŒ ๋˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด ์ง€๋ฏ€๋กœ ์œ ์ง€๋ณด์ˆ˜ ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ ์ง„๋‹ค.
    • ํ™•์žฅ์„ฑ ( ์‹ ๊ธฐ์ˆ ์˜ ๋„์ž…, framework๋“ฑ ) ์ด ๋‚˜์˜๋‹ค.

Model 2

model2๋Š” ๋ชจ๋“  ์ฒ˜๋ฆฌ๋ฅผ JSP ํŽ˜์ด์ง€์—์„œ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, Client ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋Š” servlet์ด, logic ์ฒ˜๋ฆฌ๋Š” java class(Service, Dao โ€ฆ), Client ์—๊ฒŒ ์ถœ๋ ฅํ•˜๋Š” response page๋ฅผ JSP๊ฐ€ ๋‹ด๋‹นํ•œ๋‹ค.
model2 ๊ตฌ์กฐ๋Š” MVC( Model - View - Controller ) pattern์„ ์›น ๊ฐœ๋ฐœ์— ๋„์ž…ํ•œ ๊ตฌ์กฐ์ด๋ฉฐ ์™„์ „ํžˆ ๊ฐ™์€ ํ˜•ํƒœ๋ฅผ ๋ณด์ธ๋‹ค.

  • Model ( Service, Dao or Java Beans )

  • View ( JSP )

    • ๋ชจ๋“  ํ™”๋ฉด ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹น
    • Client์˜ ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ ๋ฟ ์•„๋‹ˆ๋ผ Controller์— ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ํ™”๋ฉด๋‹จ๋„ jsp์—์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค.
    • Logic ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ java code๋Š” ์‚ฌ๋ผ์ง€๊ณ  ๊ฒฐ๊ณผ ์ถœ๋ ฅ์„ ์œ„ํ•œ code๋งŒ ์กด์žฌ
  • Controller ( Servlet )

  • ์žฅ์ 

    • ์ถœ๋ ฅ์„ ์œ„ํ•œ view ( html ) ์ฝ”๋“œ์™€ ๋กœ์ง ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ java ์ฝ”๋“œ๊ฐ€ ๋ถ„๋ฆฌ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— JSP๋Š” Model1 ์— ๋น„ํ•ด ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•˜์ง€ ์•Š๋‹ค.
    • ํ™”๋ฉด๋‹จ๊ณผ Logic ๋‹จ์ด ๋ถ„๋ฆฌ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ถ„์—…์ด ์šฉ์ดํ•ด์กŒ๋‹ค.
    • ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ code๊ฐ€ ๋ถ„๋ฆฌ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์‰ฌ์›Œ์กŒ๋‹ค.
    • ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜๋‹ค.
  • ๋‹จ์ 

    • ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•˜์—ฌ ์ดˆ๊ธฐ ์ง„์ž…์ด ์–ด๋ ต๋‹ค.
    • ๊ฐœ๋ฐœ ์‹œ๊ฐ„์˜ ์ฆ๊ฐ€๋กœ ๊ฐœ๋ฐœ ๋น„์šฉ ์ฆ๊ฐ€

MVC ๋งˆ๋ฌด๋ฆฌ

ํ˜„์žฌ ๋งŽ์€ ๊ธฐ์—…๊ณผ ์„œ๋น„์Šค์—์„œ MVC ํŒจํ„ด๋ฅผ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์•Œ๊ณ  ์žˆ๋‹ค.
์™œ MVC ํŒจํ„ด์„ ํ™œ์šฉํ• ๊นŒ?
๊ทธ๊ฒƒ์€ model2์˜ ์žฅ์ ์„ ๋ณด๋ฉด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.
model, view, controller ๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ๊ฐ์ž์˜ ์—ญํ• ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ฐœ๋ฐœ์„ ํ•œ๋‹ค๋ฉด ์œ ์ง€๋ณด์ˆ˜์„ฑ, ํ™•์žฅ์„ฑ, ์œ ์—ฐ์„ฑ ๋“ฑ์ด ์ฆ๊ฐ€ํ•  ๊ฒƒ์ด๋‹ค.
๊ฒฐ๊ตญ ์ค‘์š”ํ•œ ๊ฒƒ์€ โ€˜์–ด๋–ป๊ฒŒ ๋‚˜๋ˆŒ ๊ฒƒ ์ธ๊ฐ€โ€™ ์ด๋‹ค. ๊ทธ๊ฒƒ์˜ ๊ฐ€์ด๋“œ๋ผ์ธ์ด MVC ํŒจํ„ด์ธ ๊ฒƒ์ด๊ณ ..
์›น ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชฉํ‘œ๋ผ๋ฉด ํ•„์ˆ˜ of ํ•„์ˆ˜์ ์ธ ์ง€์‹์ด๋‹ค !!





๐Ÿ‘ ์ฐธ์กฐ
https://m.blog.naver.com/jhc9639/220967034588

ํƒœ๊ทธ: , ,

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: