Search
Duplicate

MVT ํŒจํ„ด

MVT ํŒจํ„ด

graph LR;
    A["๐Ÿ”„ ์š”์ฒญ/Request"] --> B["๐Ÿ“ฑ View"];
    B --> C["๐Ÿ“Š Model"];
    C --> B;
    B --> D["๐ŸŽจ Template"];
    D --> E["๐Ÿ’ซ ์‘๋‹ต/Response"];
Mermaid
๋ณต์‚ฌ
MVT(Model-Template-View)๋Š” Django ์›น ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ž…๋‹ˆ๋‹ค.
MVT๋Š” Model, Template, View์˜ ์•ฝ์ž๋กœ, ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค:
โ€ข
Model (๋ชจ๋ธ): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ด€๋ จ๋œ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ์™€ ์œ ํšจ์„ฑ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
โ€ข
Template (ํ…œํ”Œ๋ฆฟ): ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” UI ๋ถ€๋ถ„์„ ๋‹ด๋‹นํ•˜๋ฉฐ, HTML ํŒŒ์ผ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ํ‘œ์‹œ๋ ์ง€ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
โ€ข
View (๋ทฐ): ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋ชจ๋ธ๊ณผ ํ…œํ”Œ๋ฆฟ์„ ์—ฐ๊ฒฐํ•˜๋Š” ์ค‘๊ฐ„ ๊ด€๋ฆฌ์ž ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ๊ตฌ์กฐ๋Š” ๊ฐ ์—ญํ• ์„ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌํ•˜์—ฌ ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์—ฌ์ค๋‹ˆ๋‹ค.

Django์—์„œ์˜ MVT

Django MVT ํŒจํ„ด ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ฃผ์š” ์—ญํ• ๊ณผ ์ฑ…์ž„์„ ํ‘œ๋กœ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:
๊ตฌ์„ฑ ์š”์†Œ
์ฃผ์š” ์—ญํ• 
์ฑ…์ž„
Model
๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ
ยท๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ ์ •์˜ ๋ฐ์ดํ„ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ์กฐ์ž‘
Template
ํ™”๋ฉด ํ‘œ์‹œ
ยทHTML ๋ Œ๋”๋ง ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ์„ฑ ๋ฐ์ดํ„ฐ ํ‘œ์‹œ ํ˜•์‹ ์ง€์ •
View
๋กœ์ง ์ฒ˜๋ฆฌ
ยทHTTP ์š”์ฒญ ์ฒ˜๋ฆฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์‹คํ–‰ Model๊ณผ Template ์—ฐ๊ฒฐ

MVT vs MVC

MVT (Django)
MVC (์ผ๋ฐ˜์ ์ธ ํŒจํ„ด)
Model
Model
Template
View
View
Controller
Django์˜ MVT ํŒจํ„ด์€ ์ „ํ†ต์ ์ธ MVC ํŒจํ„ด์˜ ๋ณ€ํ˜•์œผ๋กœ, ๊ฐ™์€ ๊ฐœ๋…์„ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Template์€ MVC์˜ View์™€, Django์˜ View๋Š” MVC์˜ Controller์™€ ๋Œ€์‘๋ฉ๋‹ˆ๋‹ค.

MVT์™€ MVC์˜ ์ƒ์„ธ ๋น„๊ต

1. ๊ตฌ์กฐ์  ์ฐจ์ด์ 

MVC๋Š” Model-View-Controller, MVT๋Š” Model-Template-View๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์ง€๋งŒ, ์‹ค์ œ ์—ญํ•  ๋ถ„๋‹ด์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ์ปดํฌ๋„ŒํŠธ๋ณ„ ์—ญํ•  ๋น„๊ต

MVC ํŒจํ„ด์˜ ๊ตฌ์„ฑ
โ€ข
Model: ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋‹ด๋‹น
โ€ข
View: ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๋‹ด๋‹น
โ€ข
Controller: ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  Model๊ณผ View๋ฅผ ์—ฐ๊ฒฐ
MVT ํŒจํ„ด์˜ ๊ตฌ์„ฑ
โ€ข
Model: MVC์˜ Model๊ณผ ๋™์ผํ•œ ์—ญํ•  ์ˆ˜ํ–‰
โ€ข
Template: MVC์˜ View์— ํ•ด๋‹นํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜
โ€ข
View: MVC์˜ Controller ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, HTTP ์š”์ฒญ ์ฒ˜๋ฆฌ ๋ฐ ๋กœ์ง ์‹คํ–‰

3. ์ฃผ์š” ํŠน์ง• ๋น„๊ต

๋น„๊ต ํ•ญ๋ชฉ
MVC
MVT
ํ”„๋ ˆ์ž„์›Œํฌ ์˜ˆ์‹œ
Spring, Ruby on Rails
Django
๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹
Controller๊ฐ€ ์ค‘์‹ฌ
View๊ฐ€ ์ค‘์‹ฌ
ํ…œํ”Œ๋ฆฟ ์ฒ˜๋ฆฌ
View์—์„œ ์ฒ˜๋ฆฌ
๋ณ„๋„์˜ Template ์‹œ์Šคํ…œ
์ฝ”๋“œ ๊ตฌ์กฐ
๋” ์—„๊ฒฉํ•œ ๊ตฌ์กฐ
๋” ์œ ์—ฐํ•œ ๊ตฌ์กฐ

4. ์žฅ๋‹จ์ 

MVC ํŒจํ„ด์˜ ์žฅ๋‹จ์ 
MVT ํŒจํ„ด์˜ ์žฅ๋‹จ์ 