2021๋ ์ฌ๋ฆ๋ฐฉํ FE๊ฐ๋ฐ(๊ณต๋ถ) ์ผ๊ธฐ์ฅ ์น ๊ตฌ์ถ
- Vanilla Javascript๋ก ๊ตฌํ
-
- OOP ๊ฐ๋ ์์ด ์ฌ๋ฌ ๊ธฐ๋ฅ ์ข ํฉํด๋์ ํจ์ ๋ช ๊ฐ์ง๋ก ์นํ์ด์ง ๊ตฌํ [version1]
- class๋ฅผ ์ด์ฉํด ๋ชจ๋ํ [version2]
-
- ๋ฐ์ดํฐ๋ฅผ jsํ์ผ์ ๋ณ์ ์ ์ธ ํ export, import๋ก ํธ์ถ, ์ ๋ณ ๋ณ์ ๋ฐ๋ก [version1]
- ๋ฐ์ดํฐ ํ์ผ ํตํฉ,
groupBy
๋ฅผ ์ด์ฉํด ์ ๋ณ ๋ฐ์ดํฐ ๊ตฌ๋ถ [version2] - json ํ์ผ์ ๋ ์ง๋ณ, id๋ณ ๋ฐ์ดํฐ ๊ตฌ๋ถํ์ฌ ์ ์ฅ(DB ๋ชจ๋ธ๋ง?), fetch()๋ฅผ ์ด์ฉํด ํธ์ถ [version3]
-
- ๋ชจ๋ Modal์ ๊ฐ
subject
์ ์ถ๊ฐํ๊ณ ์จ๊ฒจ๋์๋ค๊ฐ, click์hidden
ํด์ ํ์ฌ ๋ ธ์ถ [version1] result-section__list
์ Event๋ฅผ ๊ฑธ๊ณ ,Event Bubbling
์ ์ด์ฉํด์event.target.id
๋ฅผ ํ์ ๋ฐ ๋ฐ์ดํฐ ์ ๋ฌ์ ํตํด ๋ชจ๋ฌ ๊ตฌํ [version3]
- ๋ชจ๋ Modal์ ๊ฐ
[version 1]: ๋ฐ์ํ ํ์ด์ง(flexbox), Modal, Search, Loading, Web Storage API(Session Storage)
[version 2]: ๋ชจ๋ฐ์ผ ํ๋ฉด(media query)
[version 3]: Dark Mode, Slider
๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด ์๋น์ค๋ฅผ ๋ง๋ค์ด๋ณด๋ฉด์ ์ค์ ๊ฐ๋ ๋ค์ ํ์์ฑ์ ์ง์ ๋๋ ์ ์์๋ค. ์๋ฅผ ๋ค์ด, version1์์ ๊ฐ๋จํ ๊ธฐ๋ฅ์์๋ ๋ถ๊ตฌํ๊ณ oop ๊ฐ๋ ์์ด ๋ช ๊ฐ์ ํจ์๋ก ๊ธฐ๋ฅ ๊ตฌํ์ ํ์ ๋, ๋์์ด ์ด๋ป๊ฒ ์ด๋์ ๊ตฌํ๋๋์ง ๊ณ์ ํท๊ฐ๋ ธ๊ณ , ์ด๋ก ์ธํด ์ค๋ฅ๋ฅผ ํด๊ฒฐํ๋๋ฐ๋ ์ด๋ ค์์ด ๋ง์๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ค ๊ฐ์ฒด์งํฅ ์ฝ๋์ ํ์์ฑ์ ๋๋ผ๊ณ ๋ชจ๋ ๊ตฌ์กฐ์ ๋ํด ๊ณต๋ถํ๊ณ , ๊ฐ ๊ธฐ๋ฅ๋ณ๋ก component์ util์ ๊ตฌ์ฑํ์ฌ ์ฝ๋๋ฅผ ์งฐ๋ค. ์ด ํ์ Session Storage์ ์ ์ฅ ์ ๋ณด๋ฅผ ๋ณํ์ํค๋ ์์ ์ ํ ๋ ๊ฐ์ฒด์งํฅ ์ฝ๋์ ํธ๋ฆฌํจ์ ๋๋ ์ ์์๊ณ , version3๋ฅผ ์ํด ์ฝ ํ ๋ฌ๋ง์ ์ฝ๋๋ฅผ ๋ค์ ๋ดค์ ๋๋ ๊ธ๋ฐฉ ์ฝ๋๋ฅผ ์ดํดํ๊ณ ๋ฆฌํฉํ ๋ง๊ณผ ๊ธฐ๋ฅ ์ถ๊ฐ๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์์๋ค.
์๋ก์ด ๊ธฐ๋ฅ๊ณผ ์ค๋ฅ๋ค์ ์ง์ ์ฐพ์๊ฐ๋ฉด์ ์ผ์์ฑ?์ ๊ธฐ๋ฅผ ์ ์๋ ์ข์ ๊ฒฝํ์ด์๋ค.