MVC ํจํด์ด๋?
1. MVC ํจํด์ ์ ์
- ๋์์ธ ํจํด ์ค ํ๋๋ก, ํ๋ก์ ํธ์ ๊ตฌ์ฑ ์์๋ฅผ ๋ค์์ ๋ฐ๋ผ ๊ตฌ๋ถํ๋ ํจํด์
- Model(๋ชจ๋ธ)
- ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง์ ์ฒ๋ฆฌํจ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ์์ฉ ๋ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ํจ
- View(๋ทฐ)
- ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๋ฅผ ๋ด๋นํจ
- ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ญํ ์
- Controller(์ปจํธ๋กค๋ฌ)
- ์ฌ์ฉ์์ ์์ฒญ์ ์ฒ๋ฆฌํจ
- Model๊ณผ View๋ฅผ ์ฐ๊ฒฐํ๋ ์ค๊ฐ ์ญํ ์
- ๋์์ธ ํจํด์ด๋?
- ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ์์ฃผ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ฒ์ฆ๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ค๊ณ ๋ฐฉ๋ฒ
- ์ฃผ๋ก ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP)์์ ์ฌ์ฉ๋๋ฉฐ, ์ค๊ณ์ ํจ์จ์ฑ์ ๋์ด๊ณ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ๋ค
- ๋์์ธ ํจํด์ด๋?
- Model(๋ชจ๋ธ)
- ํ๋ฆ
- ์ฌ์ฉ์๊ฐ View๋ฅผ ํตํด ์์ฒญ์ ๋ณด๋
- Controller๊ฐ ์์ฒญ์ ๋ฐ๊ณ , ํ์ํ ๋ฐ์ดํฐ๋ฅผ Model์์ ๊ฐ์ ธ์ด
- Controller๊ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ์ฌ View์ ์ ๋ฌํจ
- View๊ฐ ์ฌ์ฉ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ํ์ํจ
- ์ฅ์
- ์ ์ฐ์ฑ์ด ๋๊ณ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํจ
- ๊ฐ๋ฐ์์ ๋์์ด๋์ ์์ ์์ญ์ ๋ถ๋ฆฌํ ์ ์์
- ๋จ์
- ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก Controller์ ๋น๋ํ
- Model๊ณผ View์ ์์กด์ฑ์ ์๋ฒฝํ๊ฒ ๋ถ๋ฆฌํ์ง ๋ชปํ์ฌ ์ ์ง๋ณด์๊ฐ ์ ์ ์ด๋ ค์์ง
MTV ํจํด์ด๋?
2. MTV ํจํด์ ์ ์
- django์์ ์ฌ์ฉํ๋ ๊ตฌ์กฐ๋ก, MVC ํจํด์ ๋ณํ์
- Model(๋ชจ๋ธ)
- MVC ํจํด์ Model์ ๋์ํจ
- DB์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํจ
- ๋ชจ๋ธ์ ํด๋์ค๋ก ์ ์๋๋ฉฐ, ํ๋์ ํด๋์ค๊ฐ ํ๋์ DB Table์
- DB๋ฅผ ์กฐ์ํ๊ธฐ ์ํด์ SQL์ ๋ค๋ฃฐ ์ค ์์์ผ ํ์ง๋ง ์ฅ๊ณ ๋ ORM(Object Relational Mapping)์ ์ง์ํ๊ธฐ
๋๋ฌธ์ ํ์ด์ฌ ์ฝ๋๋ก DB๋ฅผ ์กฐ์ํ ์ ์๋ค- ORM(Object Relational Mapping)๋?
- ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ํธ์์ฉ์ ๊ฐ์ฒด๋ก ์ถ์ํํ์ฌ, SQL์
์ง์ ์์ฑํ์ง ์๊ณ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ค๋ฃฐ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฒ์
- ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ํธ์์ฉ์ ๊ฐ์ฒด๋ก ์ถ์ํํ์ฌ, SQL์
- ORM(Object Relational Mapping)๋?
- DB๋ฅผ ์กฐ์ํ๊ธฐ ์ํด์ SQL์ ๋ค๋ฃฐ ์ค ์์์ผ ํ์ง๋ง ์ฅ๊ณ ๋ ORM(Object Relational Mapping)์ ์ง์ํ๊ธฐ
- Template(ํ
ํ๋ฆฟ)
- MVC ํจํด์ View์ ๋์ํจ
- ํ๋ก ํธ์๋ ์ญํ ์
- ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ณ HTML์ ๋ ๋๋งํ๋ค
- View(๋ทฐ)
- MVC ํจํด์ Controller์ ๋์ํจ
- ์ฌ์ฉ์์ ์์ฒญ์ ์ฒ๋ฆฌํจ
- Model์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ ๋ค Template์ ์ ๋ฌํ๋ค
- ๋ฐฑ์๋์์ ๋ฐ์ดํฐ๋ง ์ฃผ๊ณ ๋ฐ๋ ๊ฒฝ์ฐ๋ ์์
- Model(๋ชจ๋ธ)
- ํ๋ฆ
- ์ฌ์ฉ์๊ฐ ์์ฒญ์ ๋ณด๋
- View๊ฐ ์์ฒญ์ ๋ฐ์ Model์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ด
- ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ ํ Template์ ์ ๋ฌ
- Template์ด ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋งํ์ฌ ์ฌ์ฉ์์๊ฒ ํ์ํจ
+) URL ํจํด์ ์ ์ํ๊ณ , ํด๋น URL๊ณผ ๋ทฐ๋ฅผ ๋งคํํด์ฃผ๋ URLconf(URLconfiguration)
- URLconf(URLconfiguration)๋?
- ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ URL ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด URL ๊ฒฝ๋ก์ ํน์ ๋ทฐ(View)๋ฅผ ์ฐ๊ฒฐํ๋ ์ค์ ํ์ผ์ด๋ค
- Django์์๋ urls.py ํ์ผ๋ก ๊ตฌํ๋๋ฉฐ, URL ํจํด(URL Pattern)์ ์ ์ํ์ฌ ํด๋ผ์ด์ธํธ์ ์์ฒญ์
์ ์ ํ ๋ทฐ ํจ์๋ ํด๋์ค์ ๋งคํํ๋ค
- URLconf(URLconfiguration) ์ฃผ์ ์ญํ
- URL๊ณผ View ์ฐ๊ฒฐ
- ํด๋ผ์ด์ธํธ๊ฐ ์ ๋ ฅํ URL์ ๋ถ์ํ์ฌ ์ด๋ค ๋ทฐ(View) ํจ์๋ ํด๋์ค๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ ์ง ๊ฒฐ์ ํจ
- ๊ฐ๋
์ฑ ํฅ์
- URL์ ๊ณ์ธต์ ์ผ๋ก ์ค๊ณํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ธฐ ์ฝ๊ฒ ๋ง๋ ๋ค
- RESTful ์ค๊ณ์ง์
- ๋ช ํํ๊ณ ์ง๊ด์ ์ธ URL์ ์ค๊ณํ์ฌ RESTful API ๊ฐ๋ฐ์๋ ์ ์ฉํจ
- URL๊ณผ View ์ฐ๊ฒฐ
- URLconf ๊ตฌ์ฑ ์์
- urls.py ํ์ผ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'), # ๋ฃจํธ URL
path('about/', views.about, name='about'), # /about/ URL
path('blog/<int:id>/', views.blog_detail, name='blog_detail'), # ๋์ URL
]
- path() ํจ์
- URL ํจํด๊ณผ ์ฒ๋ฆฌํ ๋ทฐ๋ฅผ ์ฐ๊ฒฐํ๋ค
- ๋ทฐ(View)
- URL ์์ฒญ์ ์ฒ๋ฆฌํ๋ ํจ์๋ ํด๋์ค
- ๋์ ๊ฒฝ๋ก
- URL ๊ฒฝ๋ก์์ ๋ณ์ ๊ฐ์ ์ถ์ถํจ
- ๋ค์์คํ์ด์ค(name)
- URL ํจํด์ ์ด๋ฆ์ ์ง์ ํ์ฌ URL์ ๋์ ์ผ๋ก ์ฐธ์กฐ ๊ฐ๋ฅ
- ํ ํ๋ฆฟ์์ {% url 'name' %}์ ํจ๊ป ์ฌ์ฉํ๋ค
- path() ํจ์ ์ฌ์ฉ ์์
path('๊ฒฝ๋ก/', ๋ทฐ, ์ด๋ฆ)
- ํ๋ฆ
- ์ ์ ๊ฐ ํน์ url๋ก ์์ฒญ์ ๋ณด๋
- URLconf๋ฅผ ํตํด ํด๋น url๊ณผ ๋งคํ๋ View๋ฅผ ํธ์ถ
- ํธ์ถ๋ View๋ ์์ฒญ์ ๋ฐ๋ผ ์ ์ ๋ก์ง์ ์ํ, ๊ทธ ๊ณผ์ ์์ Model์๊ฒ CRUD๋ฅผ ์ง์
- Model์ ORM์ ํตํด DB์ ์ํตํ๋ฉฐ CRUD๋ฅผ ์ํ
- View๊ฐ ์ง์ ๋ Template์ ๋ ๋๋ง ํ
- ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ค
- CRUD ๋?
๐ฅ Create : ๋ฐ์ดํฐ ์์ฑ
๐ Read : ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๊ธฐ
โ๏ธ Update : ๋ฐ์ดํฐ ์์ / ๊ฐฑ์
๐ค Delete : ๋ฐ์ดํฐ ์ญ์ ํ๊ธฐ
- CRUD ๋?
++) ๋ฒ์ธ๋ก,,,
์ ์ฌ๋ ๋ ์๋๊น ?ใ ใ ใ
'[๋ด๋ฐฐ์บ ] ๋ณธ ์บ ํ (24.11.25 ~ 25.03.31) ๐๐ปโโ๏ธ > Django ๐ชข' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[241231] Classํ View์ ํจ์ํ View์ ์ฐจ์ด์ (0) | 2024.12.31 |
---|