MVC ๋ชจ๋ธ
์ ํ๋ฆฌ์ผ์ด์
์ Model View Controller ์ธ๊ฐ์ง๋ก ๋ถ๋ฅํด๋์ ๋ฐฉ๋ฒ
๋ชจ๋ธ1 : JSP (view) + JavaBean(Model) === ๊ตฌ์กฐ๊ฐ๋จ์ํ๋ค. but, ์ถ๋ ฅ๊ณผ ๋ก์ง ์ฝ๋๊ฐ ์์ฌ jsp์ฝ๋๊ฐ ๋ณต์กํด์ง๋ค.ํ๋ก ํธ์ ๋ฒก์๋๊ฐ ํผ์ฌ๋์ด ๋ถ์
์ด ์์ข๋ค. ์ ์ง๋ณด์๊ฐ ์ด๋ ต๋ค.
๋ชจ๋ธ2 : JavaBean(Model) + JSP(View) + ์๋ธ๋ฆฟ(Controler) === MVC : ๋ทฐ์ ๋ก์ง์ ๋ถ๋ฆฌ๋ก ๋ชจ๋ธ1์ ๋นํด ๋ ๋ณต์กํ๊ณ , ๋ถ์
์ด ์ฉ์ดํ๊ณ ๋ณด์๊ฐ ์ฝ๋ค. ๋ชจ๋ธ 1์ ๋นํด ์ต๋์ด ์ด๋ ต๊ณ ์์
๋์ด ๋ง๋ค.
MVC์ ํ๋ฆ :
- ์ฌ์ฉ์๋ ์ํ๋ ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ชจ๋ ์์ฒญ์ ์ปจํธ๋กค๋ฌ์ ๋ณด๋ธ๋ค.
- ์ปจํธ๋กค๋ฌ๋ ๋ชจ๋ธ์ ์ฌ์ฉํ๊ณ , ๋ชจ๋ธ์ ์๋ง์ ๋น์ฆ๋์ค ๋ก์ง์ ์ํํ๋ค.
- ์ปจํธ๋กค๋ฌ๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค ๋ทฐ๋ฅผ ์ ํํ๋ค.
- ์ ํ๋ ๋ทฐ๋ ์ฌ์ฉ์์๊ฒ ์๋ง๋ ๊ฒฐ๊ณผ ํ๋ฉด์ ๋ณด์ฌ์ค๋ค. ์ด๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค ๋ฐ์ดํฐ๋ ์ปจํธ๋กค๋ฌ๋ฅผ ํตํด์ ์ ๋ฌ ๋ฐ๋๋ค.
Model === ๊ฐ๊ณผ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด.
View === ๋ชจ๋ธ์ ํฌํจ๋ ๋ฐ์ดํฐ์ ์๊ฐํ
Controller === ๋ชจ๋ธ ๊ฐ์ฒด๋ก์ ๋ฐ์ดํฐ ํ๋ฆ์ ์ ์ด, ๋ทฐ์ ๋ชจ๋ธ์ ์ญํ ์ ๋ถ๋ฆฌ.
why MVC?
๊ฐ ์ปดํฌ๋ํธ์ ์ฝ๋ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ธฐ์ํด, ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ธฐ ์ํด ๊ตฌํ์๋ค ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์
ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํด
MVC์์ ์์ฃผ ์ค์ํ๋ ๋ถ๋ถ
- Model์์ View์ ์ ๊ทผ ๋๋ ์ญํ ์ํ
- View์์ ์ผ์ด๋๋ '๊ณผํ'๊ฐ ๊ฒ์ฆ๊ณผ ์์ธ ์ฒ๋ฆฌ -> ๋จ์ผ์ฑ ์์์น ์๋ฐ
- View์์ ์ผ์ด๋๋ ๋น์ฆ๋์ค ๋ก์ง
Sequelize
db.define ์คํค๋ง์์ฑ
Sequelize.INTEGER ๋ฑ ํ์
์ ํด์ค์์๋ค.
sync() ์ฝ๋์ ์คํค๋ง๋ฅผ ์ผ์น
.then์ ํตํด ๋น๋๊ธฐ์์
.create === INSERT INTO ~~
.findAll === SELECT * ~~
Association
JOIN ๊ธฐ๋ฅ
HasOne : ์ผ๋์ผ BelongsTo : A์์ B HasMany :์ผ๋๋ค BelongsToMany :๋ค๋๋ค
transaction
์ํ์
๋ฌด์ ๊ฐ์ ์์
short.ly
URL์ ์งง๊ฒ ๋จ์ถ์์ผ์ฃผ๋ ์ฑ
(POST links ์ปจํธ๋กค๋ฌ)
- URL์ ํฌ์คํธ ์์ฒญ์ผ๋ก ๋ฐ๋๋ค. {url:codestate.com}
- ์์ฒญ์ ์๋ ์ฃผ์๋ฅผ db์ ๋ ์ฝ๋๋ก ์์ฑํจ.
- url
- url์ ์์ด๋
- ํํ์ด์ง ํ์ดํ
- ๋ฐฉ๋ฌธํ์ -> ์ ๋ฐ์ดํธ
- ๋ง์ฝ ์ด๋ฏธ ์กด์ฌํ๋ url์ด๋ผ๋ฉด ๊ทธ๋ฅ ๋์ด๊ฐ๋ค.
(Get links/:id ์ปจํธ๋กค๋ฌ) 4. links/1 get์์ฒญ์ด ์ค๋ฉด 5. id๋ฅผ ํตํด ๋ ์ฝ๋๋ฅผ ์กฐํ 6. ํด๋น ๋ ์ฝ๋์ url์ 7. ์ปจํธ๋กค๋ฌ์์ ๋ฆฌ๋ค์ด๋ ํธ ์ํด 8. ๊ทธ๋ฆฌ๊ณ visits ํ๋๊ฐ 1์ถ๊ฐ.
๋ง์ด๊ทธ๋ ์ด์
์คํค๋ง๋ณ๊ฒฝ์ ๋ฐ๋ฅธ ๋ฐ์ดํฐ ์ด์ฃผ.
๋ฐ์ดํฐ๋ฅผ ์ ํ,์ค๋น,์ถ์ถ ๋ฐ ๋ณํํ์ฌ ํ ์ปค๋ฎคํจํฐ ์ ์ฅ ์์คํ
์์ ๋ค๋ฅธ ์ปดํจํฐ ์ ์ฅ์์คํ
์ผ๋ก ์๊ตฌ์ ์ผ๋ก ์ ์กํ๋ ํ๋ก์ธ์ค.
devdependencies์ dependencies์ ์ฐจ์ด
dev~๋ ๊ฐ๋ฐํ ๋๋ง ํ์ํ ๋ํ๋์..
๋ชจ๋ธ๋ช
๋ง์ด๊ทธ๋ ์ด์
์ํ๋ฉด ๋ณต์ํํ๊ฐ๋๋ฏ๋ก ๋จ์๋ฅผ์ด๋ค.
๋ง์ด๊ทธ๋ ์ด์ ๋ณต๊ตฌ
npx sequelize-cli dbLmigrate:undo:all --to XXXXXXXXX