ํ์ด์ง๋ค์ด์
์ด๋? - ์ฑ
์ ํ์ด์ง์ฒ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋๋ ์ ์ ๊ณตํ๋ ๊ฒ ํ์ด์ง๋ค์ด์
์ ์ข
๋ฅ - ์คํ์
๊ธฐ๋ฐ - ์ปค์ ๊ธฐ๋ฐ ์คํ์
๊ธฐ๋ฐ ํ์ด์ง ๋ค์ด์
์คํ์
์ ํ๋ง๋๋ก '์ง๊ธ๊น์ง ๋ฐ์์จ ๋ฐ์ดํฐ์ ๊ฐ์` ๋ฆฌ๋ฏธํธ(limit)๋ ๋ ๋ฐ์์ฌ ๋ฐ์ดํฐ์ ๊ฐ์ ์คํ์
๊ธฐ๋ฐ ํ์ด์ง ๋ค์ด์
์ ๋ฌธ์ ์ ๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ๋๋ฉด 21~30๋ฒ๊น์ง ๋ฐ์์์ผ ํ๋๋ฐ 20~29๊น์ง ๋ฐ์ 20์ด๋ผ๋ ๋ฐ์ดํฐ๊ฐ ์ค๋ณต๋๊ฒ ๋๋ค. ๊ธ์ด ์ญ์ ๋๋ฉด 21๋ฐ์ดํฐ๊ฐ ๋๋ฝ๋๊ฒ ๋๋ค. ์ปค์ ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์
์ปค์ = ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ฆฌํค๋ ๊ฐ = ์ง๊ธ๊น์ง ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ ์ฑ
๊ฐํผ ์ปค์ ๊ธฐ๋ฐ์ ์ฅ์ : ์์ ๋ฌธ์ ๋ค์ด ํด๊ฒฐ๋๋ค. ์ปค์ ๊ธฐ๋ฐ์ ๋จ์ : ์๋ฒ์
์ฅ์์๋ ๊ตฌํํ๊ธฐ ๊น๋ค๋กญ๋ค. ๋ฐ์ดํฐ๊ฐ ์์ฃผ ๋ฐ๋์ง ์๋๋ค๋ฉด ์คํ์
์ผ๋ก ์ถฉ๋ถํ๋ค. ์ ๋ฆฌํ์๋ฉด ์คํ์
์ ๋ฐ์์จ ๊ฐ์ ๊ธฐ์ค ์ปค์..
useEffect์ useRef๋ฅผ ์ฌ์ฉํ์ฌ ๋ ๋๋ง์ ์ด์ ๋ฅผ ๋ฐํ ์ ์์. memo๋ฅผ ์ฌ์ฉ ์ตํ์ ์๋จ์ผ๋ก useMemo์ฌ์ฉ react developers tool์์ ์ ๋ถ๋ค ์ด๋ก์ด๋ฉด ์ต์ ํ๊ฐ ๊ธํ์ง๋ ์์. ํ์ง๋ง ๋นจ๊ฐ์์ด๋ฉด ์ต์ ํ๋ฅผ ํด์ผํจ
fetch('url') .then((response) => response.text()) .then((result) => console.log(result)); ๋ธ๋ผ์ฐ์ api ์ด๋ฏ๋ก fetch() ๋ก ์ฌ์ฉ๊ฐ๋ฅํ๋ค. response.text()๋ promise๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ฏ๋ก then()์ ์ฌ์ฉํ๋ค. fetch()๋ promise ๋ฅผ ๋ฐํํ๋๋ฐ then์ ์ด์ฉํ๋ฉด response๊ฐ ๋์ฐฉํ์๋์ ํน์ ์์
์ ํ ์ ์๋ค.
๋ฆฌ์กํธ๋ก ๋ฐฐ์ด์ ๋ ๋๋ง ํ ๋ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ๊ตฌ๋ฅผ ๋ง์ฃผ์น์ ์ ์ด ์๋์? Warning: Each child in a list should have a unique "key" prop. ๋ธ๋ผ์ฐ์ ์ฝ์์ ์ด๋ฌํ ๊ฒฝ๊ณ ๊ฐ ๋์ค๊ฒ ๋ฉ๋๋ค. ์ด๋ ๋ฆฌ์กํธ์์ ๋ฐฐ์ด์ ๋ ๋๋ง ํ ๋ ๋ ๋๋งํ ๋ฆฌ์คํธ๋ค์ ์ถ๊ฐ, ์ฝ์
, ์ญ์ ์ ๊ธฐ์ค์ Key Prop์ ์ด์ฉํด์ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ ์ด์ฃผ์ง ์์์ ๋ํ๋๋ ์ค๋ฅ ์
๋๋ค. ์๋ฅผ๋ค์ด์ ์ํ๋ฆฌ๋ทฐ๋ค์ด ์๋ ๊ฒ์ํ์ด ์์ต๋๋ค. ๊ฐ๊ฐ์ ์ํ ๋ฆฌ๋ทฐ๋ค์ ๋ ๋๋ง ํ๋๋ฐ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋ ๋๋ง ํ ์ ์๊ฒ ์ฃ ? ์ด๋ key prop์ ์ง์ ํด์ฃผ์ง ์๊ณ ๋ฆฌ๋ทฐ์ ์๋ inputํ๊ทธ ์์ ํ
์คํธ๋ฅผ ์
๋ ฅํ๊ณ ๊ทธ ๋ฆฌ๋ทฐ๋ฅผ ์ญ์ ํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๋ฆฌ๋ทฐ๋ ์ญ์ ๊ฐ ๋ ์ ์์ด๋ input ํ๊ทธ ์์ ํ
์คํธ๋ ๋ค๋ฅธ ..
1. UI๊ฐ ๋ณต์กํ ์๋ก DOM ์กฐ์์ด ๋งค์ฐ ๋ถํธํด์ง๋ค. ํ์ด์ค๋ถ ๊ฐ์ด UI๊ฐ ๋ง๊ณ ์ด๋ฒคํธ๋ ๋ง์ ์น์์๋ DOM ์กฐ์์ด ๋งค์ฐ ๋ณต์กํฉ๋๋ค. ๊ฐ๋ น ํ๊ทธ๋ฅผ ๋ง๋ค๊ณ ๊ทธ ์์ ์ปจํ
์ธ ์ ํด๋์ค ์ด๋ฆ์ ๋ฃ๋๋ค๊ณ ํ๋ฉด ๋ฒ์จ ์ฝ๋๊ฐ 3์ค ์ด์์
๋๋ค. ํํ ๋ช
๋ นํ ๋ฐฉ์์ด๋ผ๊ณ ํ์ฃ . ํ์ง๋ง ๋ฆฌ์กํธ๋ ์ปดํฌ๋ํธ๋ก ์ ์ธ์ ์ผ๋ก ์์ฑํ์ฌ ์ ์ง๋ณด์๊ฐ ํจ์ฌ ์ฝ์ต๋๋ค. 2. SPA 1๋ฒ์ ์ฐ์ฅ์ ์ผ๋ก์ SPA๋ฅผ ์ฐ๋ฉด DOM์กฐ์์ด ๋งค์ฐ ๋น๋ฒํ๊ฒ ์ผ์ด๋๋๋ฐ ์ด๋ ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด ๊ตฌํํ์ฌ ๋งค์ฐ ๋ณต์กํด์ง๋๋ค. ๋ฐ๋ผ์ ๋ฆฌ์กํธ๋ก ์ฝ๊ฒ SPA๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. 3. ์ ๋ก์ด๊ฐ์๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ํ์ด์ค๋ถ ์น์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ฟจ๋๋ ์ ์ฉ์ด ์๋๋ ๋ถ๋ถ์ด ์์๋ค๋ ๊ฒ์
๋๋ค. ์๋ฅผ๋ค์ด ๋๋ค์์ ๋ฐ๊ฟจ๋๋ฐ ๋ด ํ๋กํ์๋ ์ ๋๋ก ๋ณ๊ฒฝ๋ ๋๋ค์์ด ๋ณด์ฌ์ง๊ณ ..
์์ค์ ๋ง์ ๋ฆฌ์กํธ ๊ฐ์๋ค์ ๋๋ถ๋ถ์ CRA๋ถํฐ ์ฌ์ฉํ์ฌ webpack์ ๋ํ ์ค์ ๊ณผ ๋ฐ๋ฒจ์ ๋ํ ์ค์ ์ ๊ฐ๋ฅด์น์ง ์๊ณ ๋ฐ๋ก ๋ฆฌ์กํธ์ ํต์ฌ ๊ธฐ๋ฅ๋ค์ ์ค๋ช
ํ๋ค. ๋๋ ์ฒ์์ ์ด๋ฌํ ๊ฐ์์ ๋ถ๋ง์ ๋๊ผ๊ณ ํผ์ ๊ตฌ๊ธ์์ CRA์์ด ๋ฆฌ์กํธ ํ๋ก์ ํธ ๋ง๋๋ ๋ฒ์ ์ฐพ์์๋ค. ์ด๋ฐ ๊ฐ์๋ค์ ๊ทธ์ ๋ฆฌ์กํธ์ ๊ธฐ๋ฅ๋ค์ ๋์ดํ์ฌ ๊ฐ๋ฅด์น๊ฒ ๋ค๋ ๊ฑฐ๊ณ ๊ทธ๋ ๋ค ๋ณด๋ ๊ฐ์๋ฅผ ๋ค์๋ค ํ ์ง๋ผ๋ ์ฐจํ์ ๊ฐ์๋ฅผ ๋ณด๊ณ ์ป์ ์ง์์ผ๋ก ๋ง๋ ํ๋ก์ ํธ์ ํ๋ฆฌํฐ๊ฐ (์ฌํ๊ฒ ๋งํ์๋ฉด)๋งค์ฐ ๊ตฌ๋ ธ๋ค. ๊ทธ๋ฆฌ๊ณ .. ๊ทธ๊ฑด ๋ฐ๋ก ๊ธฐ๋ณธ์ ์ ๋ค์ ธ์ ๊ทธ๋ ๋ค. ๋ฆฌ์กํธ์์ state๊ฐ ๋ญ์ง ์ ๋๋ก ์ดํดํด์ผ ํ๋๋ฐ ๋จ์ ๊ธฐ๋ฅ๋ง์ ์ค๋ช
ํ๋ ๊ฐ์์์๋ ๊ทธ๋ฐ ์ข
๋ฅ์ ์ต๋์ ๋ถ๊ฐ๋ฅ ํ๋ค. ๊ทธ ์์ค์ ๋๋ ์ ๋ก์ด๊ฐ์๋ฅผ ์๊ฒ๋์๋ค ์นํฉ ์ค์ ์ ๊ฐ๋ฅด์น๋ค๋!! ์ฌ๊ธฐ์ ๋ถํฐ ๋ค๋ฅธ ๊ฐ์..
์๋
ํ์ธ์!!์ค๋์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ ๊ฐ ๋ง๋ flappy bird ๊ฒ์์ ์๊ฐํด๋๋ฆฌ๊ณ ์ ํฉ๋๋ค.์ง๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌ๋ ฅ ํฌ๋ ๋ฆฌ์คํธ ์ดํ ์ค๋๋ง์ด๋ค์.์ค๋์ ์ง๋๋ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ์์ค๋ฅผ ๊ณต์ ํ๊ณ ์ ํฉ๋๋ค.์ ๋ ๊ฒ์์ ๋ง๋ค๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ด ์ ๋์ ๊ฒ์์ ๋ง๋ค ์ ์๋ ์ค๋ ฅ์ด ๋ ๊ฒ์ ๋ฟ๋ฏํจ์ ๋๊ผ์ต๋๋ค.๊นํ๋ธ ๋งํฌ๋ฅผ ์ฌ๋ฆดํ
๋ ์ฌ๋ฌ ๋ถ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์์ค๋ฅผ ์ฐธ๊ณ ํ์์ด ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋๋ฐ ์ค๋ ฅ์ ๋์ด๋ ๊ณ๊ธฐ๊ฐ ๋์ผ๋ฉด ์ข๊ฒ ๋ค์!์ดํ์๋ ํฉ๋งจ ๊ฒ์์ด๋ ํฌ์ผ๋ชฌ ๊ฒ์ ๋ฑ๋ ์
๋ก๋ํ ์์ ์
๋๋ค. ์์ค์ฝ๋https://github.com/kimtaejin3/Flappy_Bird_Clone GitHub - kimtaejin3/Flappy_Bird_Clone: Flappy Bird๊ฒ์ scratch๋ถํฐ ๋ง๋ค๊ธฐFlap..
[๋ฌธ์ ์ - ๊ฐ์ ์ ] JS๊ฒ์ ๋ง๋๋ ๊ฒ์ ์ฐฉ์คํ ํ์์ง๋ง ๋ฆฌ์กํธ์ ๋ํ ๊ณต๋ถ๊ฐ ๋ง์ด ๋ถ์กฑํ๋ ํ ์ฃผ์๋ค. ๋ JS๋ฌธ๋ฒ๋ ๊ธฐ๋๋งํผ ๊ฒฐ๊ณผ๋ฅผ ๋ด์ง ๋ชปํ๋ค. [์ด๋ป๊ฒ ํ ๊น?] ๊ทธ๋์ ์์ผ๋ก๋ ๋ฆฌ์กํธ ๊ณต๋ถ์ ๋น์ค์ ๋ง์ด ๋๋ ค๋ ๋ฌด๋ฆฌ๊ฐ ์๊ฒ ๋ค ์ถ์ด ๊ทธ๋ ๊ฒ ํ ์์ ์ด๋ค. ๋ ๋ฆฌ์กํธ๋ JS ๋ฐฐ์ด๊ฒ์ ํ์ ํ๋ค๊ณ ํ ์ง๋ผ๋ ๋ธ๋ก๊ทธ์ ํฌ์คํ
ํ์. 1์ฃผ์ผ์ 1๋ฆฌ์กํธ 1JS ํฌ์คํ
์ ๋ชฉํ๋ก ํ์.