Bibi's DevLog ๐ค๐
์ ์ ์น, ๋์ ์น, MVC ์น ํ๋ ์์ํฌ ๋ณธ๋ฌธ
MVC ์น ํ๋ ์์ํฌ๊ฐ ๋ญ๊ฐ์?
MVC์ ๋ํด ๋๋ฌด ์ดํดํ์ง ๋ชปํ๊ณ ์๋ ๊ฒ ๊ฐ์์, ์ฝ๊ฒ ์ค๋ช ํด์ฃผ๋ ์์์ ๋ณด๊ณ ์ ๋ฆฌํ๋ค.
..๋ฅผ ๋ณด๋ ค ํ๋๋ฐ ์ด ์์์ ์ํด ์ ์ ์น์ ๋ญ๊ณ ๋์ ์น์ ๋ญ๊ฐ์?๋ฅผ ๋ด์ผ ํ๋ค๊ณ ํด์ ํจ๊ป ๊ฐ๋จํ ์ ๋ฆฌํด ๋ณด์๋ค.
์ ์ ์น static web, ๋์ ์น dynamic web
์ ์ ์น static web
์ธ์ ์ ์ํด๋ ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ๋ณด๋ด ์ฃผ๋ ์น ์ฌ์ดํธ.
ํธ์์ : ''์ค๋น๋ ์์''์ ๋ฐ๋ก ๋จน๊ฑฐ๋ ๋ด๊ฐ ๊ฐ๋จํ ์กฐ๋ฆฌํด ๋จน์ -> ์ ์ ์น
์๋ฒ๋ html, css, js ์ฝ๋ ๋ฐ ์ด๋ฏธ์ง&๋์์์ ์ค๋น๋ ๊ทธ๋๋ก ํด๋ผ์ด์ธํธ์ ๋ณด๋ด ์ค๋ค.
๋ง์น ์ง์ด๋์ ์ค๋น๋ ์ํ ๊ทธ๋๋ก ์ฌ๊ฐ๋ ๊ฒ๊ณผ ๊ฐ์.
โ ๋ค์ด๊ฐ ๋ ๋ง๋ค ๊ฐ์ ํ๋ฉด์ธ ๊ฒ = ์ ์ ์น์ธ๊ฐ?
โ ๊ผญ ๊ทธ๋ ์ง ์๋ค. ๊ธฐ์ค์ ''์๋ฒ๋ก๋ถํฐ ๋ฐ๋ html, css, js ์ฝ๋ ๋ฐ ์ด๋ฏธ์ง&๋์์์ด ๊ฐ์์ง''์ด๋ค.
์ ์ ์น์ ์์ : ํ๊ต / ํ์ฌ์ ์๊ฐ ํ์ด์ง
๋์ ์น dynamic web
์๋น : ''์ฃผ๋ฌธํ์ ๋'' ์์์ด ์กฐ๋ฆฌ๋์ด ๋์ด -> ๋์ ์น
์์ฒญ ์, ์๋ฒ๊ฐ html, css, js์ฝ๋๋ฅผ ๊ทธ ๋ ๊ทธ ๋ ๋ณํ์์ผ ํด๋ผ์ด์ธํธ์ ๋ณด๋ด ์ค๋ค.
๋์์์ด ์๋ก์ด ์ ๋ณด๊ฐ ์ฌ๋ผ์ค๋ SNS, ๊ฒ์ํ ๋ฑ์ด ๋์ ์น์ ์ํจ.
์๋ก์ด ์ ๋ณด๊ฐ ์ฌ๋ผ์ฌ ๋๋ง๋ค ์๋ก ์ฝ๋ฉํ ์ ์์ผ๋ฏ๋ก ๋์ ์น์ผ๋ก ๋ง๋ค์ด์ผ ํ๋ค.
์ ์ํ ๋ ๋ง๋ค/์ค์๊ฐ์ผ๋ก ์ต์ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ค๋ค๋ ํน์ง์ด ์๋ค
php ๋ฐ ๊ฐ์ข ํ๋ ์์ํฌ๋ค์ด ๋์ ์น์ ๊ฐ๋ฐํ๋ ์ธ์ด์ด๋ค.
๋์ ์น์ด ๋ฐ๋์ ์ ์ ์น๋ณด๋ค ์ข์๊ฐ?
- ๊ผญ ๊ทธ๋ ์ง ์๋ค.
- ์๋ฅผ ๋ค์ด ๋ธ๋ก๊ทธ์ ๊ฒฝ์ฐ ๋งค๋ฒ ๊ฐ์ ๊ธ์ ๋ณด์ฌ์ฃผ๋๋ฐ ๊ตณ์ด ๋์ ์ผ๋ก ๋ง๋๋ ๊ฒ ๋ญ๋น์ผ ์๋ ์๋ค. ๊ทธ๋์ ์ต๊ทผ์ ๊ฒฝ์ฐ ์ ์ ๋ธ๋ก๊ทธ ์์ฑ ํด (jekyll ๋ฑ)๋ ๋ง์ด ์ฌ์ฉ๋๋ค.
~github.io
๋ธ๋ก๊ทธ๋ค.
MVC ์น ํ๋ ์์ํฌ
๋จ์ํ ์น ์ฌ์ดํธ์ ๊ฒฝ์ฐ php๋ก ๊ฐ๋จํ ์ฝ๋ฉํ ์ ์์ง๋ง, ๋ค์ด๋ฒ์ฒ๋ผ ๋ณต์กํ๊ณ ๋ค์ํด์ง๋ฉด ๊ทธ๋ฌ๊ธฐ ์ด๋ ค์์ง๋ค.
์ฝ๋๊ฐ ๋ณต์กํด์ง์๋ก ํน์ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌํ๊ณ , ๋ชจ๋ํํด์ ์ ๊ทผํด์ผ ํ๋ค.
MVC ์ ๊ทผ๋ฒ : (์น์ฌ์ดํธ๋ฅผ ํฌํจํ)์ํํธ์จ์ด๋ฅผ ์ค๊ณํ๋ ์ ๊ทผ๋ฒ์ ํ๋.
- View : ๋์ ๋ณด์ด๋ ๊ฒ.
- ์น์ ๊ฒฝ์ฐ HTML, CSS๋ฅผ ๋งํ๋ค
- Controller : ์ ์ดํ๋ ๊ฒ.
- ํ๋ก๊ทธ๋๋ฐ์ ์ด ๋ถ๋ถ์์ ๊ฐ์ฅ ๋ง์ด ์ด๋ฃจ์ด์ง๋ค (์ฝ๋๋ก ์ ์ดํด์ผ ํ๋ฏ๋ก)
- Model : ์ํ๋ฅผ ์ ์ฅํ๋ ๊ฒ (?)
- ๊ทธ๋ฅ ''๋ฐ์ดํฐ''์ ๊ด๋ จ๋ ๋ถ๋ถ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
- DB๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ๋ถ๋ฌ์ค๊ณ , ํ์์ ์ง์ ํ๋ ๋ฑ์ ์ฝ๋๊ฐ Modelํํธ์์ ์ด๋ฃจ์ด์ง๋ค.
์ฆ,
- ๋ชจ๋ธ์ DB์ ์ฐ๊ฒฐ๋์ด ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ํํธ์ด๋ค
- ๋ทฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์๊ฐ ๋ณผ ์ ์๋๋ก ์๊ฐํํ๋ ํํธ์ด๋ค
- ์ปจํธ๋กค๋ฌ๋ ๋ชจ๋ธ๊ณผ ๋ทฐ๋ฅผ ์ฐ๊ฒฐํ๋ ํํธ์ด๋ค. ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ทฐ์ ์ฐ๊ฒฐํ๊ณ , ์ฌ์ฉ์๊ฐ GUI๋ฅผ ํตํด ๋ฐ์ดํฐ CRUD๋ฅผ ํ ์ ์๋๋ก ํ๋ค.
๋์ ์น = ์๋น ๋น์ ๋ฅผ ์์ฉํ์๋ฉด,
- ๋ชจ๋ธ : ์๋ฃํ ์ฐฝ๊ณ ๋ฅผ ๊ด๋ฆฌํ๊ณ , ์์์ ์๋ฆฌํ๋ ์ฃผ๋ฐฉ์ฅ
- ๋ทฐ : ์ฃผ๋ฐฉ์ฅ์ด ์๋ฆฌํ ์์์ ํ๋ ์ดํ ํ๋ ์ง์
- ์ปจํธ๋กค๋ฌ : ์ฃผ๋ฌธ๋ ๋ฐ๊ณ , ์๋น๋ ํ๋ ๋งค๋์
MVC ์น ํ๋ ์์ํฌ
MVC๋ ์ผ๋จ ์ด ๊ตฌ์กฐ๋ฅผ ๋ง๋ค๊ณ ๋๋ฉด ๊ด๋ฆฌ๊ฐ ์ฝ์ง๋ง, ๊ตฌ์กฐ๋ฅผ ๋ง๋๋ ๋ฐ์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
-> ์ ๋ฌธ๊ฐ๋ค์ด MVC์ ์์๋ฅผ ๋ฏธ๋ฆฌ ์ค๊ณํด ๋ ๊ฒ์ ์ฌ์ฉํ ์ ์๋ค. ์ด๊ฒ์ด MVC ์น ํ๋ ์์ํฌ!
์น ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค๋ง๋ค ๋ค์ํ MVC ์น ํ๋ ์์ํฌ๊ฐ ์กด์ฌํ๋ค.
(์๋ฐ-์คํ๋ง, PHP-๋ผ๋ผ๋ฒจ, ํ์ด์ฌ-์ฅ๊ณ , ๋ฃจ๋น-๋ฃจ๋น ์จ ๋ ์ผ, Scala-Play, C#-dotnet ... )
+ ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐจ์ด?
๋ ๋ค '๋จ์ด ๋ฏธ๋ฆฌ ์ง ๋์ ์ฝ๋'๋ผ๋ ๊ณตํต์ ์ด ์๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ Library
: "๊ฐ์ ธ๋ค ์ฐ๋ ๊ฒ". ๊ฐ๊ฐ ๊ฐ๋ณ์ ์ธ ๊ธฐ๋ฅ๋ค (๋ฌธ์ง, ์์กฐ.. ๋ฑ ๋ถ์ํ๋ค)์ ํด๋นํจ.
ํ๋ ์์ํฌ Framework
: "๊ธฐ๋ณธ ํ๋ก ์ผ๊ณ ๋ด๊ฐ ์ํ๋ ๋๋ก ๋ง๋ถ์ฌ ๋ง๋๋ ๊ฒ". ๊ฐ๋ณ์ ๊ธฐ๋ฅ์ด ์ฐ๊ฒฐ๋์ด ๊ธฐ์ด์ ์ ํ ๊ณจ๊ฒฉ(์ง)์ ๊ฐ์ถ ์ํ.
+ ๋ผ์ฐํ Routing์ด๋?
์ด๋ค ์ฃผ์๋ก ์ ์ํ์ ๋ ์ด๋ค ํ์ด์ง๋ฅผ ๋ณด์ฌ์ค์ง ๋ฏธ๋ฆฌ ์ ํด๋๋ ๊ฒ.
'๐ฅ BE ๋ฐฑ์๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Camel case, Kebab case, Snake case ๊ทธ๋ฆฌ๊ณ Pascal case (0) | 2021.03.17 |
---|---|
[HTML] input ๋นํ์ฑํํ๊ธฐ - disabled, readonly (0) | 2021.03.15 |
[ํ ํ๋ฆฟ ์์ง] handlebars , handlebars๋ก HTML ํ์ผ ๋๋๊ธฐ (์ค๋ณต์ ๊ฑฐ) (0) | 2021.03.11 |
[ํ ํ๋ฆฟ ์์ง] mustache ๊ธฐ๋ณธ ๋ฌธ๋ฒ (0) | 2021.03.09 |
๋ฐ๋๋ฝ์ด๋? (0) | 2021.03.02 |