๋ฆฌ์กํธ๋ก ํฌ๋ ๋ฆฌ์คํธ ๋ง๋ค๊ธฐ useState์ useRef ํ ๋ง์ ์ด์ฉํด์ ํฌ๋ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์๋ค. ๋ฐฐํฌ๋ ์ฃผ์๋ ์๋. https://todolist-phi-rouge.vercel.app/ ๋ค๋ฅธ ํ ์ ์ด์ฉํ์ง ์์๊ธฐ ๋๋ฌธ์ ์๋ก๊ณ ์นจ์ ํ์ ๋ ์ ์ง๊ฐ ๋๋ค๊ฑฐ๋.. ์ด๋ฐ ๋ถ๋ถ์ ์๋์ง๋ง! ํ๋์ ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ง ํ๋ค๊ฐ ๋ฆฌ์กํธ๋ก ๋ค์ ๋์์ค๋ State๋ ๋ ์์ด ์๋กญ๊ฒ ๋ค๊ฐ์์ ํฌ๋ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค๋ฉฐ ์ข ํค๋งจ ๋ถ๋ถ์ ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค. ํฌ๋ ๊ฐ์ฒด์ id๊ฐ ๋ฃ์ด์ฃผ๊ธฐ ํฌ๋๋ง๋ค ๊ฐ๊ฐ์ ์์ด๋๋ฅผ ๋ฌ์์ฃผ๊ธฐ ์ํด์ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์์ง๋ง, useRef ํ ์ ์ด์ฉํด๋ณด์๋ค. useRef() useRef๋ current๋ผ๋ ์์ฑ์ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. ์ด๋ ์ธ์๋ฅผ ๊ฐ๊ณ ์๋ค๋ฉด, ์ด ๊ฐ์ ์ด๊ธฐ๊ฐ์ผ๋ก current์ ..
PropTypes ๋ฆฌ์กํธ์์๋ props๋ฅผ ํตํด์ ๋ค๋ฅธ ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์ ์๊ณ , ์ด๋ฅผ ํตํด ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ์ ์๋ค. ์ฐ์ฐ์ฐฎ๊ฒ props์ ํ์ ๊ฒ์ฌ๋ฅผ ํ ์ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์ด ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค. props์ ํ์ ๊ฒ์ฌ๋ฅผ? ์์ ํซํ ํ์ ์คํฌ๋ฆฝํธ๋๋ฅผ ์ฐ๋ ์ด์ ์ค ํ๋๋ ํ์ ์ ์๊ฒฉํ๊ฒ ์ฒดํฌํด์ ์๋ฌ๋ฅผ ์ค์ด๊ธฐ ์ํจ๋ ์๋ค. props์ ํ์ ๊ฒ์ฌ๊ฐ ํ์ํ ์ด์ ๋ ์ด์ ๊ฒฐ์ด ๊ฐ๋ค๊ณ ๋ณธ๋ค. ์ปดํฌ๋ํธ๊ฐ ์๋ชป๋ ํ์ ์ props๋ฅผ ์ ๋ฌ๋ฐ๊ฑฐ๋, ํ์ํ props๊ฐ ๋๋ฝ๋๋ค๋ฉด ์๋์น ์์ ์๋ฌ๋ก ์ด์ด์ง ๊ฒ!.. PropTypes๋ ์ด๋ฐ ์๋ฌ๋ฅผ ๋ฐฉ์งํด์ค ์ ์๋ค. ์ฐธ๊ณ ๋ก ๋ฆฌ์กํธ ๊ณต์๋ฌธ์์ ๋ฐ๋ฅด๋ฉด PropTypes๋ React v15.5๋ถํฐ prop-types๋ผ๋ ํจํค์ง๋ก ๋ถ๋ฆฌ๋์๋ค!....
12์ ์ฒซ์งธ ์ฃผ๋ฅผ ๋ณด๋ด๋ฉฐ ๋ฐํ๋ ์ฑ๊ณต์ ์ผ๋ก ๋๋ง์น๊ณ , ์๋ก์ด ํ์ด ํธ์ฑ๋ ํ ์ฃผ์๋ค. ๋ฌด์๋ณด๋ค ๋ฒ์จ 12์์ด๋ผ๋... ์?....๐ฅบ ๐ Fact ์๋ฐ์คํฌ๋ฆฝํธ ์ฌํ ๊ฐ์๋ฅผ ๋ค์๋ค. ์๋กญ๊ฒ ํธ์ฑ๋ ํ์์๋ ํ์ฅ์ด ๋์๋ค. ๐ ํ๋ก์ ํธ ํ๊ฐ๋ฅผ ์ข๊ฒ ๋ฐ์๋ค. (์ผํธ!) ์๊ณ ๋ฆฌ์ฆ ์คํฐ๋๋ฅผ ์์ํ๋ค. ๐ Feeling ๋ฐํ๋ ์ธ์ ๋ ๋๋ฌด๋๋ฌด๋๋ฌด ๋จ๋ฆฐ๋ค.... ๐จ ์์ฑ๋ ๋์ ํ๋ก์ ํธ๋ผ๋ ํ๊ฐ๋ฅผ ๋ฐ์์ ๋๋ฌด ๊ธฐ๋ปค๋ค! ๋ ธ๋ ฅ์ ๊ฒฐ์ค ๐ ์๋ก์ด ํ์๋ค์ ๋ง๋ฌ๋ค.. ์ด๋ฒ ํ๋ก์ ํธ๋ ์.. ํด๋์ผ๋ฉด.... ๐ ํผ์ ๊ณต๋ถํ ๋๋ณด๋ค ํํฐ๋์ ๊ฐ์๋ก ๊น์ ์ดํด๋ฅผ ํ๊ฒ ๋์ด ๋๋ฌด ์ข๋ค.. ๐ ์๋กญ๊ฒ ์คํฐ๋๋ฅผ ์์ํ๋ค. ์์ง๊ฐ ๋ฟ๋ฟ!! ๐ Finding ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฐธ์กฐํ ๋ฐ์ดํฐ ํ ๋น์ ๋ํ ์ดํด!.. this์ ์ฉ๋ฒ.. ์คํ ์ปจํ ..
๋ฌธ์ ์ ์๊ฐ ๋ด๊ธด ๋ฐฐ์ด numbers์ ๋ฌธ์์ด direction๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ฐฐ์ด numbers์ ์์๋ฅผ direction๋ฐฉํฅ์ผ๋ก ํ ์นธ์ฉ ํ์ ์ํจ ๋ฐฐ์ด์ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ ์ถ๋ ฅ ์์ [1, 2, 3] "right" [3, 1, 2] [4, 455, 6, 4, -1, 45, 6] "left" [455, 6, 4, -1, 45, 6, 4] ํ์ด ์ฒ์์ ๋ฐฉํฅ์ ๋ฐ๋ผ ๋ฐฐ์ด์ด ์ด๋ป๊ฒ ๋ฐ๋๋ ๊ฒ์ธ์ง ์ดํด๋ฅผ ์ ๋ชปํ์๋ค. ๊ทธ๋์ ์ ์ฒด์ ์ผ๋ก for๋ฌธ์ ๋์์ผํ๋ ๊ฑธ๊น ??? ์ถ๋ค๊ฐ ๋ฌธ์ ๋ฅผ ๋ค์ ๋ณด๊ณ ํ์ ๋น์ทํ๊ฒ ๊ตฌ๋ ์๊ฒ ๋์๋ค. ํ ์นธ์ฉ ํ์ ์ํจ๋ค๋ ๋ง์ ์๋์ ๊ฐ๋ค. ๋ฐฉํฅ์ด ์ค๋ฅธ์ชฝ์ด๋ผ๋ฉด ๊ฐ์ฅ ๋ง์ง๋ง ์์๋ฅผ ๋นผ์ ๋งจ ์์ผ๋ก ๋ฃ์ด์ฃผ๊ณ , ์ผ์ชฝ์ด๋ผ๋ฉด ๊ฐ์ฅ ๋งจ ์ ์์๋ฅผ..
์๋ฐ์คํฌ๋ฆฝํธ์ '?' ES2020์์ ๋์ ๋ ์๋ก์ด ๋ฌธ๋ฒ๋ค ์ค ์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์ ?. ์ null ๋ณํฉ ์ฐ์ฐ์ ?? ๋ ๋ชจ๋ ๋ฌผ์ํ๋ฅผ ์ด๋ค. ์ฌ์ฉ๋๋ ๋ฐฉ์๋ null์ด๋ undefined ๊ฐ์ ์ฒดํฌํ ์ ์๋ค๋ ์ ์์ ๋น์ทํ ๊ฒ ์๋ ๊ฒ ๊ฐ์, ์ด ๋์ ํ๋ฒ ๋ฌถ์ด์ ์ ๋ฆฌํด๋ณด๋ฉด ์ข๊ฒ ๋ค ์ถ์ด์ ์์ฑํ๊ฒ ๋์๋ค. ๐ null ๋ณํฉ ์ฐ์ฐ์ ์ฐ์ null ๋ณํฉ ์ฐ์ฐ์(nullish coalescing) ??์ ๊ฐ๋จํ๊ฒ ๊ฐ์ด ํ ๋น๋์ด ์๋ ๋ณ์๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์๋ค. ์ฆ undefined์ด๋ null์ด ์๋ ๊ฐ์ด ํ ๋น๋ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค. a ?? b ์ด ์ฐ์ฐ์๋ ์์ ๊ฐ์ด ์ธ ์ ์๋๋ฐ, ์ด๋ฐ ์์ผ๋ก ํด์ํ ์ ์๋ค. a๊ฐ null ๋ ์๋๊ณ undefined๊ฐ ์๋๋ผ๋ฉด a ๊ทธ ์ธ(null์ด๋ undefined)..
์คํ ์ปจํ ์คํธ๋ฅผ ์์๋ณด์! ์คํ ์ปจํ ์คํธ๋ฅผ ์ํด ์ฑ ์ ์ฝ๋ ๋๋ ๋ค... ๊ทธ๋ฌ๋ ํ ์คํธ๋ง์ผ๋ก๋ ์ฝ๊ฒ ์ดํดํ ์ ์์๋ ๋.. ํ์ง๋ง ์ด๋๋ก ๋์ด๊ฐ ์ ์์ง.. ๐ค ์ด๋ฒ ๊ธฐํ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ์ ๋์ ์๋ฆฌ๋ฅผ ๋ณด๋ค ๊น๊ฒ ์ดํดํ๊ธฐ ์ํด ์คํ ์ปจํ ์คํธ์ ๋ํด ์ ๋ฆฌํด๋ณด์! ์คํ ์ปจํ ์คํธ๋ฅผ ์๊ธฐ ์ํด์๋ ๋จผ์ ์ฝ ์คํ์ ๋ํด์ ์์์ผ ํ๋ค. ์ฝ ์คํ ์ฐ์ ์คํ์ ์์ ๊ฐ์ด ํ๋ํ๋ ์ฐจ๋ก๋๋ก ์๊ณ ๋นผ๊ณ ๋ฅผ ๋ฐ๋ณตํ๋ ์๋ฃ๊ตฌ์กฐ๋ค. ์ฝ ์คํ์ ๊ฐ์ฅ ์์ ์์ฌ์๋ ์ปจํ ์คํธ์ ๊ด๋ จ๋ ์ฝ๋๋ฅผ ์คํํ์ฌ ์ฝ๋์ ์คํ ์์์ ํ๊ฒฝ์ ๊ด๋ฆฌํ๋ค. ํ์ฌ ์คํ์ค์ธ ์ฝ๋์ ์คํ ์ปจํ ์คํธ๊ฐ ์ฝ ์คํ์ ์ต์์์ ์กด์ฌํ๋ค! ์ด๋ฐ ์ฝํ ์คํธ๋ฅผ ์คํ ์ค์ธ ์คํ ์ปจํ ์คํธ (running execution context)๋ผ๊ณ ํ๋ค. ๊ทธ๋ผ ์ปจํ ์คํธ๊ฐ ๋ญ๊ธธ๋ ์ฝ ..
์ฐธ์กฐํ ๋ฐ์ดํฐ ๋จผ์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐ์ดํฐ ํ์ ์ค ์ฐธ์กฐํ์ผ๋ก๋ ์ด๋ฐ ๊ฒ๋ค์ด ์๋ค. Object Array ํจ์(function) Date ์ ๊ทํํ์ Map, Set ์๋ฃ ๊ตฌ์กฐ + null๋ object ํ์ ! ์ฐธ์กฐํ ํ์ ๋ค์ ์๋์ ๊ฐ์ ํํ๋ก ๊ฐ์ ์ฐธ์กฐํ๊ณ ์๋ค. ์ค์ ๊ฐ์ฒด ๋ด ํ๋กํผํฐ๋ค์ด ๋ด๊ธด ์ฃผ์ ๊ฐ๋ค์ ๋ฐ์ดํฐ๋ก ๊ฐ๊ณ ์๋ ์ฃผ์ ๊ฐ!.. ์ ๋ณต์ฌํด์ ์ฐธ์กฐํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ฐธ์กฐํ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. 1. obj1์ ์ํ ๋ณ๋์ ๋ฐ์ดํฐ ์์ญ ์์ ํ๋กํผํฐ๋ค์ ๋ ๊ทธ ์์์ ๊ฐ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น๋ฐ๊ณ ์๋ค. (์์ ์ฃผ์ 7103~7104 ๋ถ๋ถ) 2. ๋ฐ์ดํฐ ์์ญ ์์ ํ๋กํผํฐ๋ค์ ์ฃผ์ ๊ฐ์ด ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๋ฐ๋๋ค. 3. obj1์ 2์ ์ฃผ์ ๊ฐ์ ์ฐธ์กฐํ๋ค. ๊ฒฐ๊ตญ ๊ธฐ๋ณธํ๊ณผ์ ์ฐจ์ด๋ ๊ธฐ๋ณธํ์ ๊ฐ์ ๊ฐ๋ฆฌํค๋ ์ฃผ..
ํ๋ก์ ํธ swivee๋ฅผ ๊ฐ๋ฌด๋ฆฌํ๋ฉฐ ์ง๋ ๊ธ์์ผ๋ถํฐ ์์๋ ํ๋ก์ ํธ! ํ๋ก์ ํธ ๋ฐํ๊น์ง ๋ง์น๊ณ KPT ํ๊ณ ๋ฐฉ๋ฒ๋ก ์ ๋ฐ๋ผ ์์ฑํ ํ์ ๊ฐ์์ ํ๊ณ ๋ฅผ ์ทจํฉํด๋ณด์์ต๋๋ค. Keep ๋ ธ์ ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋ฌธ์ํํ ๊ฒ ์์ด์ดํ๋ ์ ์ดํ ๊ตฌ์ฒด์ ์ธ UI๋ฅผ ์ก์์ HTML ๋งํฌ์ ์ ์์ํ๊ฒ ํ ๊ฒ ํ์๋ค๊ณผ์ ์ ์ฐํ ์ํต, ์๋ก ๋ฐฐ๋ คํด์ฃผ๋ ํ์ ๋ฐฉ์ ํ์๋ค ๊ฐ์ ์ฑ์ทจ๋๋ฅผ ๊ณ ๋ คํด์ ์ ๋ฌด๋ฅผ ๋ถ๋ดํ ๊ฒ ์งํ์ฌํญ ์ฒดํฌ๋ฅผ ์์ฃผ ํ๋ฉฐ ํ๋ก์ ํธ๋ฅผ ์งํํ ๊ฒ ํ์ ๊ฐ ์ํต์ด ์ํํ์ฌ ๊ตฌํ์ด ์ด๋ ค์ด ๋ถ๋ถ์ ํจ๊ป ๊ณต์ ํ๊ณ ํด๋ต์ ๋์ถํ๋ ๋ถ์๊ธฐ ์ฃผ์ด์ง ์๊ฐ ์์ ์ต์ ์ ๋คํด ์์ฑ๋๋ฅผ ๋์ธ ๋ถ๋ถ ๊ฐ์์ ๋ธ๋์น๋ก ์์ ํ ๋ถ๋ถ ๋๊น์ง ํฌ๊ธฐํ์ง ์๊ณ ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ฒ ๋ค๋ ๋ง์๊ฐ์ง Problem ์ฑ์ทจ๋๋ฅผ ๊ณ ๋ คํ์์๋ ์ญ๋์ด ๋ถ์กฑํ ํ์๋ค์ ํ๋ก์ ํธ ์ฐธ์ฌ..
๊ธฐ์ด ํ๋ก์ ํธ๋ฅผ ๋ง์น๋ฉฐ ์์ฃผ ์ด์ฌํ ๋ฌ๋ฆฐ ๊ธฐ์ด ํ๋ก์ ํธ๊ฐ ๋์ด ๋ฌ๋ค!.. ํผ๊ณค๊ณผ ์คํธ๋ ์ค๋ก ์ธํด ์ธํ์ผ์ ์ป๊ณ ๋ง์์ง๋ง.. ๐ฅบ ์ง๋ ํ๋ก์ ํธ ํ๊ณ ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ ๊ณํ์ ์ด๊ณ ์์ฑ๋ ๋์ ํ๋ก์ ํธ๋ฅผ ๋ฐํํด์ ๊ธฐ์๋ค. ๋ฏธ๋ ํ๋ก์ ํธ์ฒ๋ผ ํํฐ๋์ ํผ๋๋ฐฑ์ ๋ฐํ์ผ๋ก, ๋ ๊ฐ์ธ์ ์ผ๋ก ์ข์๋ ๋ถ๋ถ๊ณผ ์์ฌ์ด ๋ถ๋ถ์ ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค. ์์ฌ์ ๋ ๋ถ๋ถ ๋ค๋ก ๊ฐ๊ธฐ๊ฐ ์ ๋๋ ์ ์ด๋ฒ ํ๋ก์ ํธ์ ํน์ฑ์ SPA๋ก ๊ตฌํ์ ํ๊ธฐ ๋๋ฌธ์ hash URL์ ์ด์ฉํด์ผ๋ง ํ๋๋ฐ, ์ฐ๋ฆฌ ํ๋ก์ ํธ๋ ๋ธ๋๋๋ณ ์ ๋ฐ > ๊ฐ ์ ๋ฐ๋ค์ ๋ชจ๋ ๋ฆฌ๋ทฐ > ๋ฆฌ๋ทฐ ์์ธํ์ด์ง๋ก ์ด์ด์ง๋ ๊ตฌ์กฐ์๊ธฐ ๋๋ฌธ์?.. ์ด๋ฒคํธ ํ๊ฒ์ผ๋ก ๊ฐ์ ์ง์ ํด์ ๋์ด๊ฐ ์๋ฐ์ ์์๋ค. ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์๊ฒ ์ง๋ง.. ๐ฅบ ์ง๊ธ์ ๋ชจ๋ฆ... ํ์ด์ด๋ฒ ์ด์ค ์๊ธ์ ์ฝ๊ธฐ ํ ๋น๋์ด ์ด๋ ๊ฒ ๋นจ๋ฆฌ ์ฑ..
11์ ๋ท์งธ ์ฃผ๋ฅผ ๋ณด๋ด๋ฉฐ ํ๋ก์ ํธ๋ก ์ ์ ์์ด ๋ณด๋ธ ํ ์ฃผ.... ์ ๋ง ์๊ฐ์ด ์ด๋ป๊ฒ ๊ฐ๋์ง ๋ชจ๋ฅด๊ฒ ๋ค. ๐ซ ๋๋์ด ๋ฐํ๋ฅผ ์๋๊ณ ์๋ค!... ๋ฐํ๋ฅผ ๋นจ๋ฆฌ ํด์น์๋ฒ๋ฆฌ๊ณ ์ถ์ ๋งด.. ๐ Fact ํ์ด์ด๋ฒ ์ด์ค์ DB API๋ฅผ ๋ค๋ฃฐ ์ ์๊ฒ ๋์๋ค. ๊นํ๋ธ๋ก ํ์ ์ ์ํํ๊ฒ ์งํํ๊ณ ์๋ค. ํ๋ก์ ํธ ๋ ธ์ ๊ด๋ฆฌ๋ฅผ ์ด์ฌํ ํ๋ค. ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ๋ ๋๋ง ํ๋ ์์ ์ ์งํํ๋ค. ํ์๋ค์๊ฒ ์ฝ๋๋ฅผ ์ค๋ช ํด์ฃผ๋ฉด์ ๋๋ ์ฝ๋์ ๋ํ ์ดํด๊ฐ ๋์ด๋ฌ๋ค. ๐ Feeling ํ์๋ค์ ์ ๋ง๋์ ๋๋ฌด๋ ์ข์๋ค. ์ด๋ ๊ฒ ์ ๊ตด๋ฌ๊ฐ๋ ํ๋ก์ ํธ๋ผ๋.. ๐ฅบ ์ฌ์ง์ด ์ฃผ๋ง์ ์์ธ์์ ๋ง๋๊ธฐ๊น์ง ํจ... ๋๋ฌด ์ฆ๊ฑฐ์ ๋ค! ๊นํ๋ธ์ ๋ํ ๋๋ ค์์ด ์ข ๋ ๊ฐ์ ๐ ๋ด๊ฐ ์ผ๋ ํ์ด์ด๋ฒ ์ด์ค ๊ธฐ๋ฅ๋ค์ ์ ๋ง ์ผ๋ถ์๊ตฌ๋... ๐ Finding ๊นํ๋ธ์์ ๋ด ๋ธ..
Comment