๐ฉโ๐ป ์ด ํฌ์คํ ์์๋ ๋น๋๊ธฐ์ ๊ด๋ จ๋ ๊ฐ๋ ๋ค์ ๋ํด ์ ๋ฆฌํ์์ต๋๋ค.๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ(- ๋น๋๊ธฐ ๋ฐฉ์(- AJAX(- ์ฝ๋ฐฑํจ์(- Promise(- async / await(๋๊ธฐ์ ํ๋ก๊ทธ๋๋ฐ ์ด๋ ํ ์ฝ๋๊ฐ ์คํ๋๊ณ ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๋ค์ ์ฝ๋๊ฐ ์์ฐจ์ ์ผ๋ก ์ฒ
๐ฉโ๐ป ์ด ํฌ์คํ ์์๋ Virtual DOM์ ๋ํด ์ ๋ฆฌํ์์ต๋๋ค. Virtual DOM? ๐ ์ค์ DOM ๋ณํ๋ฅผ ์ต์ํ ์์ผ์ฃผ๋ ์ญํ ์ ํ๋ค. ๋ธ๋ผ์ฐ์ ๋ HTMLํ์ผ์ ๋ณด์ฌ์ฃผ๊ธฐ์ํด ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์ DOM ํธ๋ฆฌ ์์ฑ โ ๋ ๋ ํธ๋ฆฌ ์์ฑ โ Layout โ
ํด๋์ค๋ฅผ ํตํด ์์ ์ ํค์ฐ๋ ํ์ค ์บ๋ฆญํฐ ๋น๋์ ์๋น์คํด๋์ค101 ์ฌ์ดํธ๋ฅผ ๋ชจํฐ๋ธ๋ก ํ ํ๋ก์ ํธuseNavigate ์ฟผ๋ฆฌ ์คํธ๋ง ํ์ด์ง ์ด๋2์ฐจ ํ๋ก์ ํธ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฒ์ ์ฌ์ฉํด๋ณด์๋ค! slick ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด์ ๋ฉ์ธ ํ์ด์ง์ ๋ํ๋๋ ๋ฐฐ๋๋ฅผ ๋ง๋ค์๋ค. ์ด๋ฒ์
์คํ์ผ์ ์ ๊ณตํ๋ CSS-in-JS ์คํ์ผ๋ง์ ์ํ ํ๋ ์์ํฌstyled-components ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ React ์ปดํฌ๋ํธ๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์๊ณ , CSS๊ตฌ์ฑ ์์์ ์คํ์ผ์ ์ง์ ํ ์ ์๋ค.css-in-js๋ 2018๋ ์ดํ ํญ๋ฐ์ ์ผ๋ก ์ฑ์ฅํด์๊ณ , ๊ทธ ์ค S
baGETTT ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ๊ฒฐ์ ์๋ฃ ํ์ด์ง ๊ตฌํ์ ๋ด๋นํ๋ค.์ฅ๋ฐ๊ตฌ๋ ํ์ด์ง์์ ๊ฒฐ์ ํ๊ธฐ ๋ฒํผ์ ๋๋ฅด๋ฉด,๊ตฌ๋งค ์ ๋ณด ๋ฐ์ดํฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒฐ์ ์๋ฃ ํ์ด์ง๋ก ์ด๋์ ํ๊ฒ ๋๋ค.๊ทธ ๊ณผ์ ์์ ๊ตฌ๋งค ์ ๋ณด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์์ผ ํ๋๋ฐ ๋ฐฑ์๋์์ GETํ๋ ๋ฐฉ์์ด ์๋,์ฅ๋ฐ๊ตฌ๋์
์น์ฌ์ดํธ๋ฅผ ๋ง๋ค๋ค ๋ณด๋ฉด ํ๋ฉด์ ๋ณด์ผ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์์ ๋ฐ์์ค๊ธฐ๋ ํด์ผ ํ๊ณ , state๊ฐ ๋ฐ๋ ๋๋ง๋ค ํจ์๋ฅผ ์คํ์ํค๊ฑฐ๋, ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ on off ํ๋ ๋์์ด ํ์ํ ์ ์๋ค. ์ด ๋ useEffect hook์ด ํ์ํ๋ค!๊ณต์ ๋ฌธ์์์ useEffect๋ฅผ
์์คํ๊ทธ๋จ ํ์ด์ง์ ๋๊ธ ๋ถ๋ถ์ ์ปดํฌ๋ํธํ ์ํค๋ฉด์ map ํจ์๋ก ๋๊ธ ๋ชฉ๋ก์ผ๋ก ๊ตฌํํ์๋ค.โ๏ธ mapํจ์๋ฅผ ์ ์ฉํ ๋๋ key๊ฐ์ ๋ถ์ฌํด์ผํ๋ค. ๋ง์ฝ key ๊ฐ์ ์ฃผ์ง ์์๋ ํ๋ฉด์๋ ๋ฌธ์ ์์ด ํ๋ฉด์ ์ถ๋ ฅ ๋์ง๋ง ํฐ๋ฏธ๋์ ์๋์ ๊ฐ์ ์ค๋ฅ ๋ฉ์ธ์ง๊ฐ ๋จ๊ฒ ๋๋ค.Key๋
ํ๋ฉด์ ๋ํ๋๋ ์ปดํฌ๋ํธ์ UI ์ ๋ณด์ปดํฌ๋ํธ์ ์ํ๊ฐ์ปดํฌ๋ํธ ์์ ์์์ ์ํ๊ฐ์ ๋ฐ์ํด์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋ ๋ ๋ง๋ค ํจ์จ์ ์ผ๋ก UI์ ๋ํ๋ด๊ธฐ ์ํด State๋ฅผ ์ค์ ํ๋ค.useState ํจ์๋ฅผ import ํ ํ ์ฌ์ฉํด์ผ ํ๋ค.useState ํจ์๋ function St
Facebook์์ ๊ฐ๋ฐํ Libraryโ์ง์์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ๋ณํํ๋ ๋๊ท๋ชจ ์ดํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถํ๋ ๊ฒโ์ ๋ชฉํ๋ก ๊ฐ๋ฐ์ค๋ก์ง View๋ง ๋ด๋นํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ๊ทธ๋งํผ ๋ด์ฅ๋์ด ์๋ ๊ธฐ๋ฅ์ด ๋ถ์กฑํด third-party ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ค.์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ๊ทธ๋๋ก ์ฌ