๐ ์๋ง์กด ๋ฉ์ธ ํ์ด์ง์ ์บ๋ฌ์ ์ฌ๋ผ์ด๋ UI๊ณผ ๊ฒ์ ์๋ ์์ฑ ๊ธฐ๋ฅ์ ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๊ตฌํํ๊ธฐ
-
- ๊ฒ์ ์๋ ์์ฑ ๊ธฐ๋ฅ ํ ์คํธ์ b, i, j๋ก ์์ํ๋ ๋ฌธ์๋ฅผ ์ ๋ ฅํด์ฃผ์ธ์. ์์๋ก ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์์ต๋๋ค. (ex. bicycle, iphone, javascript ... )
-
์ฌ์ฉ๋ ์ธ์ด ๋ฐ ํ๋ ์ ์ํฌ: html, css, javascript, node.js, express
-
์๋ฒ ๋ฐฐํฌ: heroku
-
๋ฉ์ธ ๊ธฐ๋ฅ
- ํ์ด์ง๋ค์ด์ (Pagination)๊ณผ ์ข-์ฐ ๋ฒํผ์ผ๋ก ์บ๋ฌ์ ์ปจํ ์ธ ๋ณ๊ฒฝ
- ๋ฌดํ ๋ฃจํ๋ก ๋์
-
์ธ๋ถ ๊ธฐ๋ฅ
- ๋ฐ์ดํฐ ๋น๋๊ธฐ ์์ฒญ ํ, template์ ๋์ ์ผ๋ก ์์ฑ. ๋ฐ์ดํฐ์ ๊ฐฏ์๊ฐ ๋ณํ๋๋ผ๋ ๋์ผํ UI
- ์ฌ์ฉ์๊ฐ ๋ง์ฐ์ค๋ฅผ ๋น ๋ฅด๊ฒ ํด๋ฆญํ๋๋ผ๋ ์ ์์ ์ผ๋ก ๋์
-
Carousel: Controller์๊ฒ ๋ฐ์ ๋ฐ์ดํฐ๋ก ์ด๊ธฐํ. ์ฌ์ฉ์๊ฐ ์ข-์ฐ ๋ฒํผ์ ํด๋ฆญํ๋ฉด Controller์๊ฒ ์๋ฆผ
-
Pagination: Controller์๊ฒ ๋ฐ์ ๋ฐ์ดํฐ๋ก ์ด๊ธฐํ. ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ค์ด์ ์ ํด๋ฆญํ๋ฉด Controller์๊ฒ ์๋ฆผ
-
Controller: Carousel์์ ๋ณด์ฌ์ค ์ปจํ ์ธ ์ Pagination์์ scale up ํ ์ธ๋ฑ์ค๋ฅผ ๋๊ธฐํ ์ํค๊ธฐ ์ํ ๋ชจ๋ ์ ๋ณด(์์ฑ, ํจ์) ๊ด๋ฆฌ
- Carousel๊ณผ Pagination์๊ฒ ์๋ก์ด ์ฌ์ฉ์ ์ ๋ ฅ์ด ๋ฐ์ํ๋ค๋ ์๋ฆผ์ ๋ฐ์ผ๋ฉด Controller๋ ๋ค์ ๋ ํด๋์ค์๊ฒ ์ ๋ฐ์ดํธ๋ ์ ๋ณด ์ ๋ฌ
-
Caroseul์ Pagination์ ์์กด ๊ด๊ณ๋ฅผ ๋ฎ์ถ๊ธฐ ์ํ ๋ฐฉ๋ฒ
-
๋ ํด๋์ค๋ ์์ ์ ๋ณ๊ฒฝ๋๋ฉด ํญ์ ์๋ ํด๋์ค์ ์ํ ๋ณ๊ฒฝ์ ํ์๋ก ํ๋ค. ์ด๊ธฐ ์ค๊ณ์์๋ ์๋ก์ ์์กด์ฑ์ ์ฃผ์ ํ์ฌ ๊ตฌํ ํ์๋๋ฐ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์ ์ฐํจ๊ณผ ํ์ฅ์ฑ์ด ๋จ์ด์ง๋ค๊ณ ์๊ฐํ๋ค.
-
๋ฐ๋ผ์ 1-2. ์์ ์ค๋ช ํ ๊ฒ ์ฒ๋ผ ๋ ํด๋์ค์ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ Controller ํด๋์ค๋ฅผ ์์ฑํ์๊ณ , Carousel๊ณผ Pagination์ Controller์๊ฒ ์ ๋ฌ ๋ฐ์ ์ํ ์ ๋ณด์ ์ํด์๋ง ๋ ๋๋ง ๋๋๋ก ์ฌ์ค๊ณ ํ์๋ค.
-
-
๋ฉ์ธ ๊ธฐ๋ฅ
- express๋ก ์๋ฒ ํ๊ฒฝ ๊ตฌ์ฑ ๋ฐ ๊ฒ์ ์๋ ์์ฑ API ์ค๊ณ
- ์ฌ์ฉ์ ์ ๋ ฅ ๋ฐ์์ ์๋ ์์ฑ ๋ฐ์ดํฐ ๊ฐ ๋ณด์ฌ์ง๋ฉฐ, enterํค ๋๋ฅด๋ฉด ์ ํ๋ ๊ฒ์์ด๊ฐ ์ ๋ ฅ์ฐฝ์ผ๋ก ์ด๋
- ์ ๋ ฅ์ฐฝ์ ๊ฒ์์ด๊ฐ ์์ ์์ ๊ฒ์ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ต๊ทผ ๊ฒ์์ด ๋ก ์ ์ฅ
-
์ธ๋ถ ๊ธฐ๋ฅ
- ๋๋ฐ์ด์ค(debounce) ๊ธฐ๋ฅ์ผ๋ก 1.2์ด ๋์ ์ฌ์ฉ์ ์ ๋ ฅ์ด ์์ ์์๋ง API ์์ฒญ
- ๊ฐ ์ญํ ๋ณ๋ก ํด๋์ค(๋ชจ๋) ๋ถ๋ฆฌ
-
SearchView: ์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ์ผ๋ฉด Controller์๊ฒ ์๋ฆผ. autoCompleView ๋๋ recentSearchView์์ ์ ํํ ๊ฒ์์ด๋ฅผ ์ ๋ ฅ์ฐฝ์์ ๋ณด์ฌ์ค
-
AutoCompleteView: searchView์์ ์ ๋ ฅ ๋ฐ์ ๊ฒ์์ด์ ํด๋นํ๋ ์๋ ์์ฑ ๋ฐ์ดํฐ๊ฐ ์์ ์ ๋ณด์ฌ์ค
-
RecentSearchView: searchView์์ ๊ฒ์ ๋ฒํผ์ ํด๋ฆญํ์ ์์ ์ ์ฅ๋๋ ์ต๊ทผ ๊ฒ์์ด ๋ฐ์ดํฐ ๊ด๋ฆฌ. searchView๋ฅผ ํด๋ฆญํ์ ๋ ๋ณด์ฌ์ง
-
ModalView: autoCompleteView์ ModalView์ ๊ณตํต ๋ก์ง์ ์ ์ํ์ฌ, ๋ ํด๋์ค๊ฐ ์์ ๋ฐ์ ์ฌ์ฉํ๋๋ก ํจ
-
Controller: ์ฌ๋ฌ ๊ฐ์ง ์ด๋ฒคํธ(focus, blur, enter, click...)๊ฐ ๋ฐ์ํ์ ๋, ๊ฐ View๊ฐ ์๋ง์ ์ํ๋ฅผ ๊ฐ์ง๋๋ก ํ๋ ๋ชจ๋ ์ ๋ณด(์์ฑ, ํจ์) ๊ด๋ฆฌ
-
์ด๋ฒคํธ์ ๋ฐ๋ฅธ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ
- ๊ฒ์ ์๋ ์์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ๋ผ ์ฌ๋ฌ๊ฐ์ง ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ค. ํ๋์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด, ๊ด๋ จ๋ ๋ชจ๋ View ํด๋์ค์ ์ํฅ์ ์ฃผ๊ธฐ ๋๋ฌธ์ Controller์์ ์ ์ ํ ์ฒ๋ฆฌํด์ฃผ์ด์ผ ํ๋ค.
์ด๋ฒคํธ ๋ฐ์ ์ด๋ฒคํธ ๋ฐ์ ์ํฉ currentMode enter ์ ๋ ฅ์ฐฝ์ ๊ธ์ ์ ๋ ฅ entering click ์ ๋ ฅ์ฐฝ์ ๊ธ์ ์ ๋ ฅ ์๋ฃ ํ ๊ฒ์ ๋ฒํผ ํด๋ฆญ completing focus ์ ๋ ฅ์ฐฝ์ ํด๋ฆญ focusing blur ์ ๋ ฅ์ฐฝ์ ํด๋ฆญํ ํ ๋ค๋ฅธ ๊ณณ์ ํด๋ฆญ blured x x (์๋ฌด ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ์ง ์์ ์) pending
- ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ์์๋ก ์ ํ currentMode๋ฅผ ์ค์ ํ๊ณ , currentMode๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์ฐ๊ด๋ View๋ค์ ์๋ฆผ์ ์ฃผ๋๋ก ์ค๊ณํ์๋ค.
-
์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์น ์ฌ์ดํธ๋ฅผ ๋ง๋ค์ด ๋ณด๋ ๊ฐ์ง ๊ฒฝํ
-
ํ๋ก์ ํธ์ ๊ตฌ์กฐ๋ฅผ ์ก๋ ๋ฐฉ๋ฒ, javascript ํด๋๋ฅผ UI ์ปดํฌ๋ํธ๋ณ๋ก ๋ถ๋ฆฌํ๊ณ ๊ทธ ์์์ ํด๋์ค๋ฅผ ์ค๊ณํ๋ ๋ฐฉ๋ฒ, entry point๊ฐ ๊ฐ์ง๋ ์ค์์ฑ ๋ฑ ์ฒ์๋ถํฐ ๋ชจ๋ ๊ณผ์ ์ ๊ณ ๋ฏผํ๋ฉด์ ๊ตฌํํ๋ ๊ณผ์ ์ ๋ง์กฑ๊ฐ์ ์ ๋ง ์ปธ๋ค.
-
DOM์ ์ ์ดํ๋ ํจ์, this ๋ฐ์ธ๋ฉ, ES6์ ๋ฌธ๋ฒ์ ์ต์ํ๊ฒ ๋ค๋ฃฐ ์ ์๊ฒ ๋ ๊ฒ์ ํฐ ์ํ์ด๋ค. ์ด๋ก ์ ์ผ๋ก ๋๊ปด์ก๋ ๊ฒ๋ค์ ์ง์ ๊ตฌํํด๋ณด๋ฉด์ ์ฌ์ฉ๋ฒ์ ์ตํ๊ณ ๋๋ ์ ์์๋ค.
-
-
๋ฆฌ์กํธ๋ฅผ ์์ํ ํ ์ด ํ๋ก์ ํธ์ ๊ฒฝํ์ด ์ฃผ๋ ์ฅ์ ๋ค
-
Controller๊ฐ View๋ค์ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ์ค๊ณ ๋ฐฉ์์ด ๋ฆฌ์กํธ์์ ์์ ์ปดํฌ๋ํธ๊ฐ ํ์ ์ปดํฌ๋ํธ์ ์ํ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ๊ณผ ์ ์ฌํ๋ค๊ณ ๋๊ผ๋ค. ๋ฐ๋ผ์ ์์ ์ปดํฌ๋ํธ์ ์ํ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ํ์ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋๋ ๋งฅ๋ฝ์ ์ฝ๊ฒ ์ดํดํ ์ ์์๋ค.
-
UI๋ฅผ ๊ธฐ์ค์ผ๋ก ํด๋์ค๋ฅผ ์ง์ ๋ถ๋ฆฌํ๊ณ ์ค๊ณ ํด๋ณด๋ ๊ณผ์ ์ด ํ์ ๋ฆฌ์กํธ์์ ์ปดํฌ๋ํธ๋ฅผ ์ชผ๊ฐ๋๋ฐ ๋์์ ๋ฐ๊ณ ์๋ค.
-