์๊ณ ๋ฆฌ์ฆ ํ์ต๋ค์ด๋ฒ ํน๋ณ ์ธ์ ์ฐธ์ฌDOM, DOM ์กฐ์๋ฐฉ๋ฒ, DOM ์กฐ์์ ์ด์ฉํ ์ ํจ์ฑ ๊ฒ์ฌ ํ์ต๋ฒ๋ค๋ง๊ณผ ์นํฉ ํ์ตYouTube IFrame Player API ์ฌ์ฉ๋ฒ ํ์ต ๋ฐ ์ค์ตํญ์ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๋ฉด์ ์ฌ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ํ์ฅ์ด ์ฝ๋ค๋ ๊ฒ์ ๋ฌด์์ ์๋ฏธํ๋์ง? ์ ๋
input์ ํ ์คํธ๋ฅผ ์ ๋ ฅํ๊ณ ์ํฐํค๋ฅผ ์ ๋ ฅํ์๋ todoList์ todo๊ฐ ์ถ๊ฐ๋๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด event ๊ฐ์ฒด์ key ์์ฑ์ ์ฌ์ฉํ์ฌ Enter ํค์ ์ ๋ ฅ์ ์ฒดํฌํ์์ต๋๋ค.์์ด๋ฅผ ์ ๋ ฅํ๊ณ ์ํฐํค๋ฅผ ๋๋ ์๋๋ ์๋ฌด๋ฐ ๋ฌธ์ ๊ฐ ์๋๋ฐ ํ๊ตญ์ด๋ฅผ ์ ๋ ฅํ๊ณ ์ํฐ๋ฅผ
ํ๋ก๊ทธ๋๋จธ์ค์์ ์งํํ๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ์ํ ์๋ฐ์คํฌ๋ฆฝํธ(feat. VanillaJS) ์ ์ฐธ์ฌํ๊ฒ ๋์์ต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ํํํ๊ฒ ๋ค์ ธ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค ๐ฅ๐ฅ๐ฅ
\[new.target](http://new.target) , instanceof ๋ก new ํค์๋๋ฅผ ํตํด ํจ์๋ฅผ ํธ์ถํ๋์ง ํ์ธ์ด ๊ฐ๋ฅํ๋คECMAScript 6๋ถํฐ \[new.target](http://new.target) ์ฌ์ฉ์ด ๊ฐ๋ฅํฉ๋๋ค.\[ne
๊ฒ์์์ง, SEO ํ์ตํฌ๋กค๋ฌ๊ฐ ์ฌ์ดํธ์ ๋ค์ด๊ฐ์ ๋งํฌ๊ฐ ์์ผ๋ฉด ๋ชจ๋ ๋ค์ด๊ฐ ์ฌ์ดํธ๋ฅผ ์์งํ๊ณ ๊ฐ ํ์ด์ง์ ๊ดํ ์ ๋ณด(์ฝํ ์ธ , ์ด๋ฏธ์ง, ๋์์ ํ์ผ)๋ฅผ ๋ถ์ํ์ฌ ์ด๋ค ํ์ด์ง์ธ์ง ํ์ ํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๋ค๋ ์ฌ์ค์ ์ ๊ฐ ๊ฒ์์ฐฝ์ ๊ฒ์์ด๋ฅผ ์ ๋ ฅํ๋ฉด ํฌ๋กค๋ฌ๊ฐ ์์งํ ์น์ฌ์ด
๋๋ฃ ํผ๋๋ฐฑ ๋ฐ์๋ณด๊ธฐ์น๊ตฌ๋ ์ฌ์ด๋ ํ๋ก์ ํธ ํ๊ธฐํน์ฌ๋ ์ ๊ฐ ์ ๋ ๋ชจ๋ฅด๊ฒ ๋ง์ ๊ธฐ๋ถ๋์๊ฒ ํ์ง๋ ์์๋์ง? ์ ๋ฌด ์งํ์ ๋ถํธํจ์ ๋๋ฆฐ๊ฒ์ ์๋์ง๊ฐ ๊ถ๊ธํ์ฌ ์ค๋ฌธ์ง๋ฅผ ๋ง๋ค์ด์ ๊ฐ์ด ์์ ํ๋ ๋๋ฃ๋ถ๋ค๊ป ์์งํ ํผ๋๋ฐฑ์ ์์ฒญ๋๋ ธ์ต๋๋ค. ์๊ฐ๋ณด๋ค ์ข์ ํผ๋๋ฐฑ์ ๋ฐ์์ ๋๋ฌด ๊ธฐ๋ถ
์๋ฐ์คํฌ๋ฆฝํธ ๋ฅ๋ค์ด๋ธ 23์ฅ ์ฝ๊ณ ๋ธ๋ก๊น (์๋ฐ์คํฌ๋ฆฝํธ ์คํฐ๋ ๋ณต์ต)์๋ฐ์คํฌ๋ฆฝํธ ๋ฅ๋ค์ด๋ธ ์คํฐ๋ ์ฐธ์ฌ(22์ฅ this๊น์ง)ํ๋ฆฌ์จ๋ณด๋ฉ ๋ผ์ด๋ธ ์ธ์ ์ฐธ์ฌ
์ค๋ ํ ์ผ github ํ๋กํ ๊พธ๋ฏธ๊ธฐ ํก๋ฆฌ์คํธ ํ๋ฉด ๊ธฐํ์ ์์ฑํ๊ธฐ ๋๋ฉ์ธ ์ฃผ๋ ์ค๊ณ 1์ฅ ์ฝ๊ธฐ ์ค๋ ๋ฐฐ์ด๊ฒ ๋๋ฉ์ธ ๋ชจ๋ธ์ ์ด๋ค ํน์ ํ ๋ค์ด์ด๊ทธ๋จ์ด ์๋๋ผ ๋ค์ด์ด๊ทธ๋จ์ด ์ ๋ฌํ๊ณ ์ ํ๋ ์์ด๋์ด์ด๋ค ๋ชจ๋ธ์ ์ง์์ ์ ํ์ ์ผ๋ก ์ถ์ํํ๊ณ ์์์ ์ผ๋ก ๊ตฌ์กฐํํ ํํ๋ค.
์นด์นด์คํก๊ณผ ์ ์ ๋ฐฉ์์ ์ฌ์ฉํด ์ ๋ฌ ๋๋ ์์ ์ฐฝ๊ณ ์๋ค๊ณผ ํ์ ์ค์ธ ๊ธฐ์ ์์ ์ฌ๋ฌ ๊ณณ์์ ๋ค์ด์ค๋ ์นดํก์ ํ๊ณณ์์ ์ฝ๊ณ ๋ต์ฅํ๊ณ ๊ธฐ๋กํ ์ ์๋ ์๋น์ค๋ฅผ ์ค๊ณํด๋ณด๋ ํ๊ณผ์ ๋ฅผ ์งํํ์์ต๋๋ค๊ธฐ์ ๊ณผ์ ์ ์๊ตฌ์ฌํญ์ ์ข๋ ์๊ฐ์ ์ผ๋ก ํํํ๋ฉด ์ดํด๊ฐ ์ฌ์์ง๊ฑฐ๋ ์๊ฐ์ ์๊ตฌ์ฌํญ์ ์
udacity์ Website Performance Optimization Lesson2 ๊ฐ์๋ฅผ ๋ฃ๊ณ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.๐ก ์ด๋ฒ ๊ธ์์๋ 1๊ฐ๋ถํฐ 4๊ฐ๊น์ง์ ๋ด์ฉ๋ง ์ ๋ฆฌํฉ๋๋ค๋ธ๋ผ์ฐ์ ์ต์ ํ ๋ฐฉ๋ฒ๋ธ๋ผ์ฐ์ ๋์ ์๋ฆฌ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ป๊ฒ DOM์ ์์ฑํ๊ณ CSSOM, ๋ ์ด์์
function ํค์๋ํจ์ ์ด๋ฆ์๊ดํธ ์ด๊ณ ๋ซ๊ณ ์ค๊ดํธ ์ด๊ณ ๋ซ๊ณ ํจ์์ ๋ฐ๋ก ์ ์ํ ๊ฒ์ ํจ์ ์ ์ธ๋ฌธ์ด๋ผ ํ๋ค. ์์ ๋ชจ์์ ๊ธฐ์ตํด๋์์ ์ํ ํจ์๋ฅผ ๊ฐ์ผ๋ก ๋ณ์์ ํ ๋นํ๋ ๊ฒ์ ์๋ฏธํ๋คํธ์ด์คํ ์ ๋ณ์์ ์ ์ธ์ ๋์ด์ฌ๋ฆฌ๋ ๊ฒ์ ๋งํ๋ค์ ์ธ๋ถ๋ ๋์ด์ฌ๋ฆฌ๊ณ , ํ ๋น์ ์คํ๋๋ ์
์คํ ์ปจํ ์คํธ๋ ์คํํ ์ฝ๋์ ์ ๊ณตํ ๋ณ์ ์ ๋ณด๋ค์ ๋ด์๋์ ํ๊ฒฝํจ์๋ฅผ ์คํํ ๋๋ง๋ค ์คํ ์ปจํ ์คํธ๊ฐ ์์ฑ๋๋ค๊ฐ๊ฐ์ ํจ์๋ ๋ณธ์ธ์ ๊ณ ์ ํ ์ปจํ ์คํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค์ ์ญ ์ปจํ ์คํธ ์์ฑ์ ์ญ ์ปจํ ์คํธ ์คํํจ์ ์คํ ์ปจํ ์คํธ ์์ฑํจ์ ์คํ ์คํ ์ปจํ ์คํธ๋ ๋ ์์ปฌ ์ค์ฝํ ์์ ์ ์
์ ๊ท ํํ์์ ์ฃผ์ด์ง ๋ฌธ์์ด์์ ๋ฐ๊ฒฌํ ์ ์๋ ๊ธ์ ํจํด์ ํํํ ์์ ๋๋ค.( ๋ฐ๋ณต๊ฐ๋ฅ์ฑ ์๋ ์ซ์ + , ) ๊ทธ๋ฃน ๋ฐ๋ณต๋ฐ๋ณต๊ฐ๋ฅ์ฑ ์๋ ์ซ์ ? โ 11,111,22,2222...๋ง์ง๋ง์ , ์์ด ์ซ์ ๋ฐ๋ณต์ผ๋ก ๋๋๋ค๋ ์๋ฏธ๋ฉํ ๋ฌธ์๋ ์ ๊ท์ ์์ง์๊ฒ ์ด๋ค ๋จ์ผ ๋ฌธ์
์ค์ฝํ๋ณ์ ํธ์ด์คํ var, let, const ์ฐจ์ดํจ์ ํธ์ด์คํ
๋ฆฌ์กํธ๋ฅผ ์ ํํ๋ ์ด์ ์ ๋ํด ์ ๋ฆฌ๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์๊ธฐ์ ์ธ
ํ์ดํ๋ก๊ทธ๋๋ฐ๋๊ธ ๋ฆฌ์คํธ ๊ตฌํ๋๊ธ ๋ฌดํ์คํฌ๋กค ๊ธฐ๋ฅ ๊ตฌํํด๋ ๊ตฌ์กฐ์ ๋ํด ์์๋ณด๊ณ ์ ๋ฆฌํ๊ธฐIntersection Observer์ ๋ํด ์์๋ณด๊ณ ๊ตฌํ ๊ณผ์ ์ ๋ฆฌํ๊ธฐ์ํ ๋ฏน ๋์์ธ์ ์ด์ฉํ ํด๋ ๊ตฌ์กฐ ๋ถ๋ฆฌ Intersection Observer API ์ฌ์ฉ๋ฒIntersect
์ด๋ฒ ๊ณผ์ ๋ ์๋์ฒ๋ผ ๊ธฐ๋ฅ๋ณ๋ก ํด๋๋ฅผ ๋ถ๋ฆฌํด ๋ณด์์ต๋๋ค. ๊ธฐ๋ฅ๋ณ๋ก ๋ถ๋ฆฌํ์ฌ ๊ฐ ํ์ผ์์ ํ์ํ ๊ธฐ๋ฅ์ importํ์ฌ ์ฌ์ฉํจ์ผ๋ก์์จ ์ฌ์ฌ์ฉ์ฑ์ ๋์ผ ์ ์๋ค๊ณ ์๊ฐํ์์ต๋๋ค.\[React] 5๋จ๊ณ๋ก ๋ณด๋ ๋ฆฌ์กํธ ํด๋๊ตฌ์กฐ
๋ฌดํ ์คํฌ๋กค์ Intersection Observer API์ ์ฌ์ฉํ์ฌ ๊ตฌํํ๋ ๊ณผ์ ์ ์ค๋ช ํฉ๋๋ค.Intersection Observer API๋ ๋ทฐํฌํธ์ ํ๊ฒ์ผ๋ก ์ค์ ํ ์์์ ๊ต์ฐจ์ ์ ๊ด์ฐฐํ์ฌ, ํ๊ฒ ์์๊ฐ ๋ทฐํฌํธ์ ํฌํจ๋์๋๊ฐ๋ฅผ ํ๋จํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ
์ปค๋ฆฌ์ด์ ๋ํ ๊ณ ๋ฏผ, ์ข์ํ๋ ์ผ์ ์ฐพ๋ ๊ณผ์ (๊ณผ๊ฑฐ-๋ฏธ๋-ํ์ฌ) ๋ธ๋ก๊น ํ๋ฆฌ ์จ๋ณด๋ฉ ์ฝ์ค\_ํ๋ก ํธ์๋ ์ฝ์ค ์ค๋ฆฌ์ํ ์ด์ ์ฐธ์ฌํ์ด ํ๋ก๊ทธ๋๋ฐ \- ํด๋ ๊ตฌ์กฐ, ์ฝ๋ฉ ์ปจ๋ฒค์ (eslint, prettier) ์ค์ CSS ์์ฑ ๋ฐฉ๋ฒ ์ ํ - EmotionCommit Messag
์ ๊ฐ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ๊ฐ๊ณ ์๋์ง ์ฑ์ฅ ์ค์ธ์ง์ ๋ํ ์กฐ์ธ์ ํ์ฌ ๋ด์์๋ ์ป์ ์ ์๊ธฐ๋๋ฌธ์ ์ธ๋ถ์์ ์ป์ด๋ณด๋ ค๋ ๋ ธ๋ ฅ์ ์ ๋ง ๋ง์ด ํ์ต๋๋ค. ์ข์ ์ฝ๋, ์ฑ์ฅ, ์ข์ ํ๋ก๋ํธ ๋ฑ๋ฑ์ ๋ํด ์กฐ์ธ์ ๋ฃ๊ณ ์ ์ธํ๋ฐ ๋ฉํ ๋ง ์ ์ฒญ์ ํตํด ๊ณ ๋ฏผ ์๋ด๋ ํด๋ณด๊ณ , ์ฝ๋์จ ์ด๋ผ๋ ๊ต์ก