September 10, 2019

index.html
- js/app.js ํ์ผ์ type="module"๋ก ๋ก๋ํฉ๋๋ค.
- type="module"๋ก jsํ์ผ์ ๋ถ๋ฅด๋ฉด import๋ฅผ ์ฌ์ฉํ ์์๊ณ
- ๊ฐ ํ์ผ๋ง๋ค ์ค์ฝํ๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค.
- index.html
js/app.js
- ์ ์ผ๋จผ์ ์คํ๋ฉ๋๋ค.
- MainController๋ฅผ import ํฉ๋๋ค.
- DOM์ด ๊ทธ๋ ค์งํ MainController.init()์ ์คํํฉ๋๋ค
- js/app.js
js/controllers/MainController.js
- MVCํจํด์์ Controller ๋ถ๋ธ์ ๋งก๊ณ ์์ต๋๋ค.
- ๋ชจ๋ View ํ์ผ๋ค์ Import ํฉ๋๋ค.
- init()์์ ๋ชจ๋ Viewํ์ผ๋ค์ setup ํด์ค๋๋ค.
- setup์ ๊ฐ์ ๊ตฌํ์ด ๋ค๋ฅด์ง๋ง ๊ธฐ๋ณธ์ ์ผ๋ก this.el์ ๋ณธ์ธ์ ๋ฉ์ธํ๊ฒ์ ๋ฃ์ด์ค๋๋ค.
- Viewํ์ผ๋ค์ ๊ฐ๊ฐ ์ค์ฝํ์ CustomEvent๋ฅผ ๊ฐ๊ณ ์์ผ๋ฉฐ
- .on()์ ์ด์ฉํ์ฌ View๋ค์ CustomEvent๋ฅผ ๋ฐ์ผ๋ ค๊ณ ๋๊ธฐํ๊ณ ์์ต๋๋ค.
- renderView()๊ฐ ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ์ญํ ์ ํ๊ณ
- ์ด๋ฒคํธ ๋ฐ์์ ๋งค๋ฒ renderView()๋ฅผ ์ฌ์คํ ํ๋ ๊ตฌ์กฐ ์ ๋๋ค.
- js/controllers/MainController.js
js/models/TodoListModel.js
- MVCํจํด์์ Model ๋ถ๋ถ์ ๋งก๊ณ ์์ต๋๋ค.
- LocalData๋ฅผ ์ ์ฅ ์์ ๊ฒ์ ์ญ์ ํ๋ ์ญํ ์ ๋๋ค.
- ์ค์๊ฐ์ผ๋ก ๋ฐ์ํ๊ธฐ ํ๋ค์ด์ ๊ธฐ์กด LocalData๋ฅผ ๋ณ์๋ก ๋ฐ์ ์์ ํ ๋ณ์๋ฅผ LocalData๋ก ์ฌ๋ฆฌ๋ ์์ ์ ํฉ๋๋ค.
- DB๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ๋ ํธํ์๊ฑฐ ๊ฐ์ต๋๋ค.
- ๋ธ๋ผ์ฐ์ ๋ง๋ค ํ๊ฒฝ์ด ๋ฌ๋ผ ํฌ๋กฌ์์๋ง ์ ์์๋ ํฉ๋๋ค.
- js/models/TodoListModel.js
js/views/View.js
- ๊ฐ ์ญํ ์ ๋งก์ Viewํ์ผ๋ค์ด ์์ง๋ง ๋ชจ๋ ์ด View.js๋ฅผ ์์ ๋ฐ์ ์ฌ์ฉํฉ๋๋ค.
- init()์ ์ปจํธ๋กค๋ฌ์์ ๋์ด์จ ํ๊ฒ์ this.el ํ๋กํผํฐ์ ์ ์ฅํฉ๋๋ค.
- on()์ ์ด๋ฒคํธ๋ฆฌ์ค๋๋ฅผ ์์ฑํด์ CustomEvent๋ฅผ ๋ฐ๋ ์ญํ ์ ํฉ๋๋ค.
- emit()์ CustomEvent๋ฅผ ๋ง๋ค์ด์ ๋ฐฉ์ถํ๋ ์ญํ ์ ํฉ๋๋ค.
- hide()๋ this.elํ๋กํผํฐ์ ์ ์ฅ๋ ํ๊ฒ์ css๋ฅผ ์์ ํ์ฌ ํ์๋์ง ์๊ฒ ํฉ๋๋ค.
- show()๋ hide์ ๋ฐ๋๋ก ํ์๋๊ฒ ํฉ๋๋ค.
- js/views/View.js
์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฅ์ ๋ฃ๊ณ ์ถ์์ง๋ง ์ฐ์ toy ํ๋ก์ ํธ์ด๊ธฐ์
ํฌ๊ฒ ๋๊ฐ์ง Todo์ Calendar ๋๊ฐ์ง๋ง ๋ฃ์์ต๋๋ค.
์ด์ฐจํผ MVCํจํด์ ๋ง๋ ๊ฑฐ๊ธฐ์ ์ถ๊ฐํ๋ ค๋ฉด ํฌ๊ฒ ์ด๋ ต์ง ์๊ณ
๊ตณ์ด ๋ฌด๊ฒ๊ฒ ํ ํ์๊ฐ ์์์ต๋๋ค.
์ฝ๋๋ฅผ ์ง๋ฉฐ ๋ง์ ๊ณต๋ถ๊ฐ ๋์๊ณ ๋ง์ฝ ๋๊ตฐ๊ฐ๊ฐ ์ด ๊ธ์ ์ฝ๋๋ค๋ฉด
ํ๋ฒ ์ ์ฝ๋๋ฅผ ๋ฒ ์ด์ค๋ก ๋ ๋ฉ์ง ์ฝ๋๋ฅผ ๋ง๋ค์์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
๊ฐ์ธ ๊ณต๋ถ์ฉ์ด๊ณ ๋๊ตฐ๊ฐ์๊ฒ ๊ตณ์ด ์คํํ์ง ์๋ ๊ธ์ด๋ ์ํ์ง ๋ง์์ฃผ์ธ์
์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๐