Search

MVC ํŒจํ„ด

๊ฐœ์š”

โ€ข
MVC ํŒจํ„ด
โ€ข
MVC vs REST
โ€ข
MVC๋Š” ์–ธ์ œ ์“ฐ์ด๋‚˜?
โ€ข
REST๋Š” ์–ธ์ œ ์“ฐ์ด๋‚˜?
โ€ข
MVC model1
โ€ข
MVC model2
โ€ข
Servlet/JSP ์—์„œ์˜ MVC

MVC ํŒจํ„ด

์†Œํ”„ํŠธ์›จ์–ด๋ฅผ โ€œ๋ชจ๋ธ, ๋ทฐ, ์ปจํŠธ๋กค๋Ÿฌโ€ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋ชจ๋“ˆํ™” ํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด
M - Model : ๋ชจ๋ธ โ†’ ๋ฐ์ดํ„ฐ
V - View : ๋ทฐ โ†’ ํ™”๋ฉด
C - Controller : ์ปจํŠธ๋กค๋Ÿฌ โ†’ ๋ชจ๋ธ, ๋ทฐ ์ œ์–ดํ•˜๋Š” ์—ญํ• 
MVC (Model-View-Controller) ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์€ ์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ตฌ์กฐ์  ํŒจํ„ด์œผ๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค:
์ด ํŒจํ„ด์€ ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ๋ฅผ ์ด‰์ง„ํ•˜์—ฌ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ, ์œ ์ง€๋ณด์ˆ˜์„ฑ, ํ™•์žฅ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์š”์†Œ

โ€ข
Model (๋ชจ๋ธ): ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
โ€ข
View (๋ทฐ): ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‹ด๋‹นํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
โ€ข
Controller (์ปจํŠธ๋กค๋Ÿฌ): ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋ชจ๋ธ๊ณผ ๋ทฐ ์‚ฌ์ด์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ตฌ์„ฑ ์š”์†Œ
์„ค๋ช…
์—ญํ• 
๋ชจ๋ธ (Model)
๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋กœ์ง์„ ๋‹ด๋‹น
- ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๋ฐ ์—…๋ฐ์ดํŠธ - ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ˆ˜ํ–‰ - ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฐ ์œ ์ง€ - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ƒํ˜ธ ์ž‘์šฉ
๋ทฐ (View)
์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(ํ™”๋ฉด)์„ ๋‹ด๋‹น
- ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œ์‹œ - ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ˆ˜์ง‘ ๋ฐ ์ „๋‹ฌ - ๋ชจ๋ธ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜์—ฌ ํ™”๋ฉด ๊ฐฑ์‹  - ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต
์ปจํŠธ๋กค๋Ÿฌ (Controller)
๋ชจ๋ธ๊ณผ ๋ทฐ ์‚ฌ์ด์˜ ์ค‘๊ฐœํ•˜๋Š” ์—ญํ• 
- ์‚ฌ์šฉ์ž ์ž…๋ ฅ ํ•ด์„ ๋ฐ ์ฒ˜๋ฆฌ - ๋ชจ๋ธ ์—…๋ฐ์ดํŠธ ๋ฐ ๊ด€๋ฆฌ - ๋ชจ๋ธ๊ณผ ๋ทฐ ๊ฐ„์˜ ์ƒํ˜ธ ์ž‘์šฉ ๊ด€๋ฆฌ - ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋ฐ ํ๋ฆ„ ์ œ์–ด

ํŒจํ„ด? (Pattern)

๋ชจ๋ฒ” ๋‹ต์•ˆ
์„ ํ—˜์ž๋‚˜ ์—ฐ๊ตฌ์ž๊ฐ€ ์‹œํ–‰์ฐฉ์˜ค๋‚˜ ์—ฐ๊ตฌ ๋์— ์ตœ์„ ์— ๊ฐ€๊นŒ์šด ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์œผ๋กœ ์ž๋ฆฌ ์žก์€ ๊ตฌ์กฐ

์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด

์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๋ชจ๋ฒ” ๋‹ต์•ˆ

๋””์ž์ธ ํŒจํ„ด

์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„์˜ ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋ชจ๋ฒ” ๋‹ต์•ˆ

MVC vs REST

MVC ๋Š” ํŽ˜์ด์ง€ ๊ธฐ๋ฐ˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•˜๋ฉฐ,ย  REST ๋Š” ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ตฌ์กฐ์—์„œ์˜ ๋ฆฌ์†Œ์Šค ๊ธฐ๋ฐ˜ ํ†ต์‹ ์„ ์œ„ํ•œ ์„ค๊ณ„ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ์„ค๋ช…

โ€ข
MVC: ํŽ˜์ด์ง€ ๋‹จ์œ„๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ์ฃผ๋กœ HTML ๊ธฐ๋ฐ˜์˜ ์›นํŽ˜์ด์ง€ ๋ Œ๋”๋ง์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
โ€ข
REST: HTTP ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ฐ„์— ๋ฆฌ์†Œ์Šค๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐฉ์‹์œผ๋กœ, ๋ฐ์ดํ„ฐ ์ „์†ก์— ํŠนํ™”๋˜์–ด ์žˆ์–ด ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ธฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

โ€ข
MVC ์ „ํ†ต์ ์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„ ๋ฐฉ์‹์œผ๋กœ, ๊ฐ ํŽ˜์ด์ง€๋งˆ๋‹ค ์„œ๋ฒ„์—์„œ HTML์„ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ˜ํ™˜.
โ€ข
REST React์™€ ๊ฐ™์€ ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋งŒ ์š”์ฒญํ•˜๋Š” API ์„œ๋ฒ„.ย  GET /usersย ์š”์ฒญ ์‹œ JSON ๋ฐ์ดํ„ฐ ๋ฐ˜ํ™˜. ํ”„๋ก ํŠธ์—”๋“œ (React) ๋ฐฑ์—”๋“œ (SpringBoot)

MVC๋Š” ์–ธ์ œ ์“ฐ์ด๋‚˜?

MVC๋Š” ์„œ๋ฒ„์—์„œ ์ง์ ‘ HTML์„ ๋ Œ๋”๋งํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ์„ค๋ช…

MVC ํŒจํ„ด์€ ์ฃผ๋กœ ์ฝ˜ํ…์ธ  ๋ Œ๋”๋ง์ด ์„œ๋ฒ„์—์„œ ์ด๋ฃจ์–ด์ง€๊ณ , ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๊ฐ€ ํ†ตํ•ฉ๋œ ํ™˜๊ฒฝ์—์„œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง์„ ํ†ตํ•ด ํŽ˜์ด์ง€๊ฐ€ ์™„์„ฑ๋˜๋ฏ€๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•  ๋•Œ ์ดˆ๊ธฐ ์‘๋‹ต ์†๋„๊ฐ€ ๋น ๋ฆ…๋‹ˆ๋‹ค.

์˜ˆ์‹œ

โ€ข
์‡ผํ•‘๋ชฐ ์›น์‚ฌ์ดํŠธ: ์ œํ’ˆ ๋ชฉ๋ก, ์ƒ์„ธ ํŽ˜์ด์ง€, ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋“ฑ ์„œ๋ฒ„์—์„œ ๋ Œ๋”๋ง๋œ ํŽ˜์ด์ง€๋ฅผ ์ œ๊ณต.
โ€ข
ํšŒ์‚ฌ ํ™ˆํŽ˜์ด์ง€: ์„œ๋ฒ„์—์„œ ์ง์ ‘ HTML ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•˜์—ฌ SEO์— ์œ ๋ฆฌํ•˜๊ฒŒ ์ œ๊ณต.

REST๋Š” ์–ธ์ œ ์“ฐ์ด๋‚˜?

REST๋Š” ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ JSON, XML ๋“ฑ์˜ ํ˜•์‹์œผ๋กœ ์ฃผ๊ณ ๋ฐ›๋Š” API ์„ค๊ณ„์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ์„ค๋ช…

REST๋Š” ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•  ๋•Œ, ํŠนํžˆ ๋‹ค์–‘ํ•œ ํด๋ผ์ด์–ธํŠธ(๋ชจ๋ฐ”์ผ, ์›น ๋“ฑ)์—์„œ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋™์ ์ธ ํŽ˜์ด์ง€๋ฅผ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋ Œ๋”๋งํ•  ๋•Œ REST API๋Š” ๋ฐ์ดํ„ฐ๋งŒ์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ํšจ์œจ์ ์œผ๋กœ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

โ€ข
๋ชจ๋ฐ”์ผ ์•ฑ: ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” API ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ๋ชจ๋ฐ”์ผ ์•ฑ๊ณผ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ .
โ€ข
์‹ฑ๊ธ€ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(SPA): React, Vue ๊ฐ™์€ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ REST API ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜์—ฌ JSON ๋ฐ์ดํ„ฐ๋ฅผ ๋ Œ๋”๋ง.

MVC Model1

MVC Model1์€ Controller๊ฐ€ ์—†๋Š” ๊ตฌ์กฐ๋กœ, JSP(๋˜๋Š” Servlet)์—์„œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  View๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ตํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ์„ค๋ช…

MVC Model1์€ JSP ํŽ˜์ด์ง€์—์„œ ์š”์ฒญ์„ ๋ฐ›์•„์„œ ์ง์ ‘ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๊ณ  HTML์„ ์ƒ์„ฑํ•˜๋Š” ์ดˆ๊ธฐ ํ˜•ํƒœ์˜ MVC ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. Controller๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ฝ”๋“œ์˜ ๋ชจ๋“ˆํ™”๊ฐ€ ์–ด๋ ต๊ณ , ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋‚ฎ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ

โ€ข
์ดˆ๊ธฐ JSP ๊ธฐ๋ฐ˜์˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์š”์ฒญ์ด JSP๋กœ ์ง์ ‘ ์ „๋‹ฌ๋˜๊ณ , JSP์—์„œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ๋ทฐ๋ฅผ ๋™์‹œ์— ๋‹ด๋‹น.

MVC Model2

MVC Model2๋Š” Controller๊ฐ€ ์ถ”๊ฐ€๋œ MVC ๊ตฌ์กฐ๋กœ, ์š”์ฒญ์„ Controller์—์„œ ์ฒ˜๋ฆฌํ•œ ํ›„ ์ ์ ˆํ•œ View๋ฅผ ์„ ํƒํ•˜์—ฌ ์‘๋‹ตํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์ฃผ์š” ์„ค๋ช…

MVC Model2๋Š” Model1์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•œ ๊ตฌ์กฐ๋กœ, JSP์—์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ถ„๋ฆฌํ•ด Controller๊ฐ€ ์š”์ฒญ์„ ๊ด€๋ฆฌํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๊ฐ€ ๋” ๊น”๋”ํ•˜๊ณ  ๋ชจ๋“ˆํ™”๋˜๋ฉฐ, ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํ˜„๋Œ€ MVC ํŒจํ„ด์ด Model2๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์˜ˆ์‹œ

โ€ข
Spring MVC ํ”„๋ ˆ์ž„์›Œํฌ:ย @Controller๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ๋ฐ›๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š”ย Model์„ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•œ ํ›„ย View๋ฅผ ์„ ํƒํ•˜์—ฌ ์‘๋‹ต.

Servlet/JSP ์—์„œ์˜ MVC

โ€ข
MVC ํŒจํ„ด - model1
โ€ข
MVC ํŒจํ„ด - model2

MVC ํŒจํ„ด - model1

JSP ์‚ฌ์šฉ ์ข…๋ฅ˜

1.
HTML + Java
: Controller ์˜ ์—ญํ• ๊ณผ View ์—ญํ• ์„ ๋ชจ๋‘ ๋‹ด๋‹น
ex) ๋ฐ์ดํ„ฐ ๋ชฉ๋ก ํ™”๋ฉด ๋“ฑ
2.
HTML
: View ์—ญํ• ๋งŒ ๋‹ด๋‹น
ex) ๋ฉ”์ธ ํ™”๋ฉด, ๋กœ๊ทธ์ธ ํ™”๋ฉด ๋“ฑ
3.
Java
: Controller ์˜ ์—ญํ• ๋งŒ ๋‹ด๋‹น
ex) โ€œxxx_pro.jspโ€ ์ด๋ฆ„์œผ๋กœ ์ฃผ๋กœ ์š”์ฒญ ์ฒ˜๋ฆฌ ๋‹ด๋‹นํ•˜๋Š” jsp

Controller ์—ญํ• ์˜ ์ฝ”๋“œ

โ€ข
์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ •๋ณด ์ถ”์ถœ
โ€ข
DB ์—ฐ๋™ ์ฒ˜๋ฆฌ
โ€ข
ํ™”๋ฉด ์ด๋™

model1 ์˜ ํ•œ๊ณ„

: Controller ์™€ View ๊ฐ€ ํ˜ผ์šฉ๋œ jsp ํŽ˜์ด์ง€๋“ค์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ž๋ฐ” ๋กœ์ง๋งŒ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ํ™”๋ฉด๋งŒ ์ˆ˜์ •ํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ์ฆ‰, ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.
MVC ํŒจํ„ด mode1 ๋ฐฉ์‹์˜ ํ•œ๊ณ„๋ฅผ ํ•ด๊ฒฐ ๋ฐ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ, ์ปจํŠธ๋กค๋Ÿฌ์™€ ๋ทฐ๋ฅผ ํ˜ผ์šฉํ•œ JSP ํŽ˜์ด์ง€์—์„œ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋ถ„๋ฆฌ์‹œํ‚จ ํŒจํ„ด์ด MVC ํŒจํ„ด model2 ๋ฐฉ์‹์ด๋‹ค.

MVC ํŒจํ„ด - model2

Model

: ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง
โ€ข
Service ์™€ DAO ๋กœ ๊ตฌ์„ฑ
โ€ข
DAO : ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๊ฐ์ฒด๋กœ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์š”์ฒญ์„ ํ•˜๊ณ  ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ „๋‹ฌ ๋ฐ›๋Š” ๊ฐ์ฒด
โ€ข
Service : ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ์ฒด. ์ฆ‰ ๊ธฐ๋Šฅ(์—…๋ฌด ํ”„๋กœ์„ธ์Šค)๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ์ฒด

View

: ๋ ˆ์ด์•„์›ƒ๊ณผ ํ™”๋ฉด
โ€ข
HTML, CSS
โ€ข
์ปจํŠธ๋กค๋Ÿฌ ๊ธฐ๋Šฅ์ด ์—†๋Š” JSP

Controller

: ๋ชจ๋ธ๊ณผ ๋ทฐ๋ฅผ ์ œ์–ด
โ€ข
์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ •๋ณด ์ถ”์ถœ
โ€ข
ํ™”๋ฉด ์ด๋™
โ€ข
DB ์—ฐ๋™ ์ฒ˜๋ฆฌ