Search
Duplicate
๐Ÿ˜€

02. MVC Pattern

ํƒœ๊ทธ

Web Application Architecture

โ€ข
JSP๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” Web Application Architecture๋Š” ํฌ๊ฒŒ model1๊ณผ model2๋กœ ๋‚˜๋‰œ๋‹ค.
โ€ข
JSP๊ฐ€ client ์š”์ฒญ์— ๋Œ€ํ•œ Logic ์ฒ˜๋ฆฌ์™€ response page(view)์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ๋ชจ๋‘ ํ•˜๋Š๋ƒ, response page(view)์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋งŒ ํ•˜๋Š”์ง€๊ฐ€ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์ด๋‹ค.

Web Application Architecture - Model1

โ€ข
view์™€ logic์„ JSP ํŽ˜์ด์ง€ ํ•˜๋‚˜์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ
โ€ข
client๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๊ฒŒ ๋˜๋ฉด JSP ํŽ˜์ด์ง€๋Š” java beans๋‚˜ ๋ณ„๋„์˜ service class๋ฅผ ์ด์šฉํ•˜์—ฌ ์ž‘์—…์„ ์ฒ˜๋ฆฌ, ๊ฒฐ๊ณผ๋ฅผ client์— ์ถœ๋ ฅํ•œ๋‹ค.
์žฅ์ 
โ€ข
๊ตฌ์กฐ๊ฐ€ ๋‹จ์ˆœํ•˜๋ฉฐ ์ง๊ด€์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์šฐ๊ธฐ ์‰ฝ๋‹ค.
โ€ข
๊ฐœ๋ฐœ ์‹œ๊ฐ„์ด ๋น„๊ต์  ์งง๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ ๋น„์šฉ์ด ๊ฐ์†Œํ•œ๋‹ค.
๋‹จ์ 
โ€ข
์ถœ๋ ฅ์„ ์œ„ํ•œ view(html) ์ฝ”๋“œ์™€ ๋กœ์ง ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ java ์ฝ”๋“œ๊ฐ€ ์„ž์—ฌ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— JSP ์ฝ”๋“œ ์ž์ฒด๊ฐ€ ๋ณต์žกํ•ด ์ง„๋‹ค.
โ€ข
JSP ์ฝ”๋“œ์— Back-End(Developer)์™€ Front-End(Designer)๊ฐ€ ํ˜ผ์žฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ„์—…์ด ํž˜๋“ค์–ด์ง„๋‹ค.
โ€ข
project์˜ ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๊ฒŒ ๋˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•ด ์ง€๋ฏ€๋กœ ์œ ์ง€๋ณด์ˆ˜ ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค.
โ€ข
ํ™•์žฅ์„ฑ(์‹ ๊ธฐ์ˆ  ๋„์ž…, framework etc...)์ด ๋‚˜์˜๋‹ค.

Web Application Architecture - Model2

โ€ข
MVC(Model-View-Controller) Pattern์„ web ๊ฐœ๋ฐœ์— ๋„์ž…ํ•œ ๊ตฌ์กฐ
โ€ข
๋ชจ๋“  ์ฒ˜๋ฆฌ๋ฅผ JSP ํŽ˜์ด์ง€์—์„œ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, client ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ servlet์ด, logic ์ฒ˜๋ฆฌ๋Š” java class(Service, Dao,,,) client์—๊ฒŒ ์ถœ๋ ฅํ•˜๋Š” response ํŽ˜์ด์ง€๋ฅผ JSP๊ฐ€ ๋‹ด๋‹นํ•œ๋‹ค.
Search
Model2
MVC Pattern
์„ค๋ช…
Model
Logic(Business & DB Logic)์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ controller๋กœ๋ถ€ํ„ฐ ๋„˜์–ด์˜จ data๋ฅผ ์ด์šฉํ•˜์—ฌ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๊ทธ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ controller์— return
View
๋ชจ๋“  ํ™”๋ฉด ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹น. Client์˜ ์š”์ฒญ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ ๋ฟ ์•„๋‹ˆ๋ผ controller์— ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ํ™”๋ฉด๋‹จ๋„ jsp์—์„œ ์ฒ˜๋ฆฌํ•œ๋‹ค. Logic ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ java code๋Š” ์‚ฌ๋ผ์ง€๊ณ  ๊ฒฐ๊ณผ ์ถœ๋ ฅ์„ ์œ„ํ•œ code๋งŒ ์กด์žฌ
Contorller
Client์˜ ์š”์ฒญ์„ ๋ถ„์„ํ•˜์—ฌ Logic ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ Model ๋‹จ์„ ํ˜ธ์ถœ return ๋ฐ›์€ ๊ฒฐ๊ณผ data๋ฅผ ํ•„์š”์— ๋”ฐ๋ผ request, session ๋“ฑ์— ์ €์žฅํ•˜๊ณ , redirect ๋˜๋Š” forward ๋ฐฉ์‹์œผ๋กœ jsp(view) page๋ฅผ ์ด์šฉํ•˜์—ฌ ์ถœ๋ ฅ
์žฅ์ 
โ€ข
์ถœ๋ ฅ์„ ์œ„ํ•œ view(html) ์ฝ”๋“œ์™€ ๋กœ์ง ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ java ์ฝ”๋“œ๊ฐ€ ๋ถ„๋ฆฌ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ๊ฐ€ ๋ณต์žกํ•˜์ง€ ์•Š๋‹ค.
โ€ข
ํ™”๋ฉด๋‹จ๊ณผ Logic ๋‹จ์ด ๋ถ„๋ฆฌ ๋˜์—ˆ๊ธฐ์— ๋ถ„์—…์ด ์šฉ์ดํ•˜๋‹ค.
โ€ข
๊ธฐ๋Šฅ์— ๋”ฐ๋ผ code๊ฐ€ ๋ถ„๋ฆฌ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฌ์›Œ์กŒ๋‹ค. (์—๋Ÿฌ๊ฐ€ ๋‚˜๋„ ์–ด๋””์—์„œ ๋‚ฌ๋Š”์ง€ ์‰ฝ๊ฒŒ ์ฐพ์Œ)
โ€ข
ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜๋‹ค. (Mybatis ๋“ฑ)
๋‹จ์ 
โ€ข
๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•˜์—ฌ ์ดˆ๊ธฐ ์ง„์ž…์ด ์–ด๋ ต๋‹ค.
โ€ข
๊ฐœ๋ฐœ ์‹œ๊ฐ„์˜ ์ฆ๊ฐ€๋กœ ๊ฐœ๋ฐœ ๋น„์šฉ์ด ์ฆ๊ฐ€ํ•œ๋‹ค.