React/2022-ไธ
์์ ์๋ฃํ vs ์ฐธ์กฐ ์๋ฃํ ์์ ์๋ฃํ ๊ณ ์ ๋ ์ ์ฅ ๊ณต๊ฐ์ ์ฐจ์งํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์์ ํ์
(primitive type) ๋ฐ์ดํฐ ๋ผ๊ณ ํ๋ค. ์์ ํ์
๋ฐ์ดํฐ : ๊ฐ์ฒด๊ฐ ์๋๋ฉด์ method๋ฅผ ๊ฐ์ง์ง ์๋ 6๊ฐ์ง์ ํ์
โ string โ number โ bigint โ boolean โ undefined โ symbol โ null ์์ ์๋ฃํ์ ๋ชจ๋ ํ๋์ ๋ฐ์ดํฐ๋ง์ ๋ด๊ณ ์๋ค. ์์ โ ์ ์์๋ฅผ ๋ณด๋ฉด, ๋ฐ์ดํฐ์ ํฌ๊ธฐ์๋ ๊ด๊ณ ์์ด ํ๋์ ๋ณ์์๋ ํ๋์ ๋ฐ์ดํฐ๋ง์ ๋ด์ ์ ์๋ค. โ ์์ ์๋ฃํ์ ๊ฐ ์์ฒด์ ๋ํ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅ(immutable)ํ์ง๋ง, ๋ณ์์ ๋ค๋ฅธ ๋ฐ์ดํฐ๋ฅผ ํ ๋นํ ์๋ ์๋ค. ์ฐธ์กฐ ์๋ฃํ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์์ ์๋ฃํ์ด ์๋ ๋ชจ๋ ๊ฒ๋ค์ ์ฐธ์กฐ ์๋ฃํ์ด๋ค. ๋ํ์ ์ผ๋ก๋ ๋ฐฐ์ด๊ณผ ๊ฐ..
Web Basic/JavaScript
Null & undefined ๊ณตํต์ ๋๋ค ๊ฐ๊ฐ์ ํ์
๋ช
(undefined, null)์ ๊ฐ์ด ์ ์ผํ๋ค. undefined ํ์
์ ๊ฐ์ undefined๊ฐ ์ ์ผํ๋ค. null ํ์
์ ๊ฐ์ null์ด ์ ์ผํ๋ค. undefined ํ์
undefined๋ ์์ ์๋ฃํ undefined๋ก ๋ถ๋ฅ๋๋ค. undefined๋ "์๋ฌด ๊ฐ๋ ํ ๋น๋ฐ์ง ์์ ์ํ"๋ฅผ ์๋ฏธํ๋ค. var ํค์๋๋ก ์ ์ธํ ๋ณ์๋ ์๋ฌต์ ์ผ๋ก undefined๋ก ์ด๊ธฐํ๋๋ค. ๋ณ์ ์ ์ธ์ ์ํด ํ๋ณด๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฒ์ ํ ๋น์ด ์ด๋ค์ง ๋๊น์ง ๋น ์ํ(๋๋ถ๋ถ ๋น์ด ์์ง ์๊ณ ์ฐ๋ ๊ธฐ ๊ฐ์ด ๋ค์ด ์๋ค.)๋ก ๋ด๋ฒ๋ ค๋์ง ์๊ณ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด undefined๋ก ์ด๊ธฐํํ๋ค. ๋ฐ๋ผ์, ๋ณ์๋ฅผ ์ ์ธํ ์ดํ ๊ฐ์ ํ ๋นํ์ง ์์ ๋ณ์๋ฅผ ์ฐธ์กฐํ๋ฉด undefined๊ฐ..
Web Basic/JavaScript
Js์ Node์ ์ฐจ์ด JavaScript : ๋ธ๋ผ์ฐ์ , ๋ฌธ์ ๋ฑ์ ๋ค๋ฃจ๋ ์ฆ, clinet์ ๋ํ ๊ฐ๋ฐ์ ํ๋ ๋๊ตฌ์ด๋ค. Nodejs : backend์์ server์ ๋ํ ๊ฐ๋ฐ์ ํ๋ ๋๊ตฌ์ด๋ค. ์ฐจ์ด์ Nodejs๋ chrome์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ธ v8์ ์ด์ฉํ๋ค. JavaScript๋ ์คํฌ๋ฆฝํธ ์ธ์ด๋ก์จ ํน์ ํ ํ๊ฒฝ(๋ธ๋ผ์ฐ์ )์์๋ง ์ฌ์ฉ๊ฐ๋ฅํ๋ฐ Nodejs๋ฅผ ํตํ์ฌ ํน์ ํ ํ๊ฒฝ(๋ธ๋ผ์ฐ์ ) ์์ด๋ ์คํ์ ํ ์ ์๊ฒ ๋๋ค. JavaScript๋ฅผ ํฌ๋กฌ(chrome)๊ฐ์ ๋ธ๋ผ์ฐ์ ์์๋ง ์ฐ๋ ๊ฒ์ด ์๋ ๋ธ๋ผ์ฐ์ ๋ฐ. ์ฆ, ๋ด ์ปดํจํฐ์์ ๋ค์ํ ์ฉ๋๋ก ํ์ฅํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๊ฒ์ด ๋ฐ๋ก Node.js์ด๋ค. Nodejs๋ฅผ ์ด์ฉํ์ฌ Express ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฐ์คํฌ๋ฆฝํธ ์ธ์ด๋ก ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ธฐ๋ ..
Web Basic/JavaScript
let, const, var JavaScript์์ ๋ณ์ ์ ์ธ ๋ฐฉ์์๋ let, const, var๊ฐ ์๋ค. ๋ณ์ ์ ์ธ ๋ฐฉ์ var๋ ๋ณ์ ์ ์ธ ๋ฐฉ์์ ์์ด์ ํฐ ๋จ์ ์ ๊ฐ์ง๊ณ ์๋ค. ๋ณ์๋ฅผ ํ ๋ฒ ๋ ์ ์ธํ์์๋ ๋ถ๊ตฌํ๊ณ , ์๋ฌ๊ฐ ๋์ค์ง ์๊ณ ๊ฐ๊ธฐ ๋ค๋ฅธ ๊ฐ์ด ์ถ๋ ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ด๋ ์ ์ฐํ ๋ณ์ ์ ์ธ์ผ๋ก ๊ฐ๋จํ ํ
์คํธ์๋ ํธ๋ฆฌ ํ ์ ์์ผ๋, ์ฝ๋๋์ด ๋ง์์ง๋ค๋ฉด ์ด๋์์ ์ด๋ป๊ฒ ์ฌ์ฉ ๋ ์ง๋ ํ์
ํ๊ธฐ ํ๋ค๋ฟ๋ง์๋๋ผ ๊ฐ์ด ๋ฐ๋ ์ฐ๋ ค๊ฐ ์๋ค. ๊ทธ๋์ ES6 ์ดํ, ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ถ๊ฐ ๋ ๋ณ์ ์ ์ธ ๋ฐฉ์์ด let๊ณผ const์ด๋ค. ์์ ์ฝ๋์์ ๋ณ์ ์ ์ธ ๋ฐฉ์์ ๋ฐ๊ฟ์ฃผ๋ฉด ์๋์ ๊ฐ๋ค. โ name์ด ์ด๋ฏธ ์ ์ธ ๋์๋ค๋ ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ณผ ์ ์๋ค. (const๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.) โ ๋ณ์ ์ฌ์ ์ธ์ด ..
React/2022-ไธ
Reduce Reduce ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ์ฃผ์ด์ง ๋ฆฌ๋์(reducer) ํจ์๋ฅผ ์คํํ๊ณ , ํ๋์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํ๋ค. ๋ฆฌ๋์ ํจ์๋ ๋ค ๊ฐ์ ์ธ์๋ฅผ ๊ฐ์ง๋ค. โ ๋์ฐ๊ธฐ accumulator (acc) โก ํ์ฌ ๊ฐ (cur) โข ํ์ฌ ์ธ๋ฑ์ค (idx) โฃ ์๋ณธ ๋ฐฐ์ด (src) reduce๋ผ๋ ์ด๋ฆ์ ์ด ๋ฉ์๋๊ฐ ๋ณดํต ๋ฐฐ์ด์ ๊ฐ ํ๋๋ก ์ค์ด๋ ๋ฐ ์ฐ์ด๊ธฐ ๋๋ฌธ์ ๋ถ์๋ค. ์๋ฅผ ๋ค์ด ๋ฐฐ์ด์ ๋ค์ด์๋ ์ซ์๋ฅผ ๋ํ๊ฑฐ๋ ํ๊ท ์ ๊ตฌํ๋ ๊ฒ์ ๋ฐฐ์ด์ ๊ฐ ํ๋๋ก ์ค์ด๋ ๋์์ด๋ค. ํ์ง๋ง, reduce๊ฐ ๋ฐํํ๋ ๊ฐ ํ๋๋ ๊ฐ์ฒด์ผ ์๋ ์๊ณ , ๋ค๋ฅธ ๋ฐฐ์ด์ผ ์๋ ์๋ค. โ callback : ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ์คํํ ํจ์, ๋ค์ ๋ค๊ฐ์ง ์ธ์๋ฅผ ๋ฐ๋๋ค. โ โ accumulator(๋์ฐ๊ธฐ) : ์ฝ๋ฐฑ์ ๋ฐํ๊ฐ์ ๋์ ํ..
React/2022-ไธ
Memoization ๊ธฐ์กด์ ์ํํ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๊ฐ์ ์ ์ฅํด๋๊ณ ๋์ผํ ์
๋ ฅ์ด ๋ค์ด์ค๋ฉด ์ฌํ์ฉํ๋ ๊ธฐ๋ฒ์ด๋ค. Memoized๋ ๋ด์ฉ์ ์ฌ์ฌ์ฉํ์ฌ ๋ ๋ํ ์, ๊ฐ์ DOM์์ ๋ฐ๋ ๋ถ๋ถ์ ํ์ธํ์ง ์์ ์ฑ๋ฅ์ด ํฅ์๋๋ค. Memoization ๋ฐฉ๋ฒ 1๏ธโฃ Redux - useSelector useSelector๋ก Redux๋ฅผ ์ต์ ํํ๋ ๋ฐฉ๋ฒ โ useSelector๋ฅผ ์ฌ๋ฌ๋ฒ ์ฌ์ฉ store์์ ๊ฐ์ฒด๋ฅผ ํต์งธ๋ก ๋ถ๋ฌ์ค๋ ๋์ , ํ์ํ ๊ฐ๋ค์ ์ชผ๊ฐ์ด์ useSelector๋ก ์ ์ธํด์ค๋ค. โ number ๋๋ diff๊ฐ ๋ฐ๋์์ ๋๋ง ๋ฆฌ๋ ๋๋ง ๋๋ค. โก shallowEqual ์ฌ์ฉ shallowEqual์ react-redux์ ๋ด์ฅ๋์ด์๋ ํจ์๋ก, ๊ฐ์ฒด ์์ ๊ฐ์ฅ ๊ฒ์ ์๋ ๊ฐ๋ค์ ๋น๊ตํด์ค๋ค. โข equality ..
React/2022-ไธ
Optimistic UI Optimistic UI(๋๊ด์ ์ธ UI ?)๋ ํน์ ์์ฒญ์ด ์ฑ๊ณต ํ ๊ฒ์ด๋ผ ๊ฐ์ ์ ํ๊ณ ๋จผ์ ๊ทธ ์์ฒญ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ UI์ด๋ค. ์ด๋ค ์์ฒญ์ด ์์ฃผ ๋์ ํ๋ฅ ๋ก ์ฑ๊ณตํ๋ค๋ ๋ณด์ฅ์ด ์์ ๋, ๊ทธ๋ฆฌ๊ณ ๊ทธ ์์ฒญ์ด ๋๋ฌด ๋ฆ์ง ์์ ์๊ฐ ์์ ์๋ต์ด ์จ๋ค๋ ๋ณด์ฅ์ด ์์ ๋ ์ฌ์ฉํ ์ ์๋ UI๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. Optimistic UI - ์ธ UI์ ์ด์ผ๊ธฐ ์ธ UI๋ ์ ์ง์ ๊ฐ๋ค. ์ฒซ UI๋ ์ ์ ํ ์ ์ฃผ๋ฌธํ๊ณ , ๊ทธ ํ๋ก๋ ๋ช ๋ฒ ๋ ์ฃผ๋ฌธํ๋ค. ๋ช ์๊ฐ ํ, ๊ทธ๋ ๊ณ์ฐ์ ํ๊ณ ์ทจํด์ ์ ์ง์ ๋์ ๋ค. ๋๋ค๋ฅธ UI๋ ํ ์์ ์ํค๋ฉด์ ๊ณ์ฐ์ ๋จผ์ ํ๊ณ , ์ดํ๋ก๋ ๋จผ์ ๊ณ์ฐํ๊ณ ๋ง์๊ธฐ๋ฅผ ๋ฐ๋ณตํ๋ค ์ทจํด์ ์ ์ง์ ๋๊ฐ๋ค. ๋ง์ง๋ง UI๋ ์ ์ง์ ๋ค์ด์์๋ง์ ์ทจํด์ ๋ฐ๋ก ๋ค์ ๋์จ๋ค. - ๊ทธ..
React/2022-ไธ
LazyLoad vs Preaload Preload ์น ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ๋ฉด, ํ์ํ ๋ฆฌ์์ค ์์์ ์๋ฒ์ ์์ฒญํ ๋ ์ฌ๋ฌ ์์์ ๋์์ ์์ฒญํ๊ฒ ๋๊ณ ์๋ฒ์์๋ ์์ฒญ ์์์ ์๊ด์์ด ์ค๋น๊ฐ ๋๋๋๋ก ์๋ต์ ํ๊ฒ ๋๋ค. ์ด ๋, ํน์ ๋ฆฌ์์ค๋ฅผ ๋น ๋ฅด๊ฒ ๋ก๋ฉํ๋๋ก ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๋ ๋ฐฉ๋ฒ์ด ๋ฐ๋ก PreLoad๋ฅผ ์ง์ ํ๋ ๋ฐฉ์์ด๋ค. Head ํ๊ทธ์ ๋น ๋ฅด๊ฒ ๋ก๋ฉ์ํฌ ํ์ผ์ PreLoad๋ก ์ง์ ํ๊ฒ ๋๋ฉด, ํ์ด์ง ์์ฒญ ์ ํด๋น ์์ค ์์์ ์ฐ์ ์ ์ผ๋ก ๋ก๋๋ฅผ ์ํํ๊ฒ ๋๋ค. โ "์ด๋ฏธ์ง ๋ณด์ฌ์ฃผ๊ธฐ" ๋ฒํผ์ ํด๋ฆญํ์ง๋ ์์๋๋ฐ ์ด๋ฏธ์ง๊ฐ ์ฐ์ ์ ์ผ๋ก ์์ฒญ์ด ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. Preload๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๊ธฐ ๋ถํ์ํ ๋ฆฌ์์ค์ Preload๋ ๊ฑธ์ง ์๊ธฐ ์ฐ์ preload๋ก ์ ์ธ๋๋ ์๊ฐ, ํด๋น ์์ค๊ฐ ์ค์ ๋ก ์ฌ์ฉํ๋ ..