๊ธฐ๋ฅ๋ง ์ ๊ตฌํํ๋ฉด ๋๋ ์ค ์์์ด์
webpack.. webpa..ck.. ๋๊ฐ ๋ชจ๋์ ๋ฌถ์ด์ฃผ๋ ์ญํ ์ ํ๋ ํ๋ ์์ํฌ์ธ ๊ฒ๋ง ์๊ณ ์์ธํ๋ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ๊ธฐ๋กํ๊ธฐ!
์ฑ๋ฅ ์ต์ ํ๋ฅผ ํ๊ธฐ ์ํด ์ด๋ค ๋ ธ๋ ฅ์ ํด๋ณด์ จ๋์?
์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์ URL ์ฐฝ์ URL์ ์ ๋ ฅํ๊ณ ์ํฐ๋ฅผ ์ณค์ ๋ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ๊น?๐ค๋งค๋ฒ ๋น์ฐํ๋ค๋ ๋ฏ์ด URL ์ณค๋ ๋... ํ๋กํ ์ฝ๋ค์ด ์ผ๋ง๋ ๋ฐ์ด๋ค๋๋ฉฐ ๐๐ป๐๐ปโโ๏ธ๐๐ปโโ๏ธ ๋ ธ๋ ฅ์ ํ๋์ง ์๊ธฐ ์ํด ์์ฑํ๋ค. ์ฌ์ฉ์๊ฐ URL์ ๊ฒ์ํ๊ณ ์ํ๋
๐ญ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง ์๋ฆฌ ๋ธ๋ผ์ฐ์ ๊ฐ ์น ํ์ด์ง๋ฅผ ๋ถ๋ฌ์ฌ ๋๋ ๋ ๋๋ง ์์ง์ด๋ผ๋ ์ํํธ์จ์ด ๋ชจ๋์ด ์ฌ์ฉ๋๋ค. ๋ ๋๋ง ์์ง์ HTML, CSS, JavaScript์ ๊ฐ์ ์น ํ์ด์ง์ ์์๋ค์ ํ์ฑํ๊ณ , ์ด๋ฅผ ๋ธ๋ผ์ฐ์ ํ๋ฉด์ ์๊ฐ์ ์ผ๋ก ํ์ํ๋ ์ญํ ์ ํ๋ค.
Node.js๋ Chrome V8 JavaScript ์์ง์ผ๋ก ๋น๋๋ JavaScript ๋ฐํ์์ด๋ค.์ฆ, Node.js๋ JS๋ฅผ ๋ธ๋ผ์ฐ์ ๋ง๊ณ ๋ ๋ก์ปฌ PC์์๋ ์คํ์์ผ ์ค ์ ์๋ค. ๋ฐ๋ผ์ Node.js๋ฅผ ํตํ์ฌ ๋ค์ํ JS ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์๋ฒ๊น์ง ์คํํ ์ ์๋ค.ํฌ
FE์์ HTTP ํต์ ์ ์์์ผํ ๊น? ํ์ง๋ง BE์ ์ด์ผ๊ธฐ๋ฅผ ํ๋ ค๋ฉด ๊ธฐ์ด์ ์ธ ์ง์์ ์์๋์ด์ผ ํ๋ค ์๊ฐํ๊ธฐ์ .. ๋ผ๋ ์ด์ ์ ์ ํต๊ณผ์์ ํต์ ์ ๋ํด์ ๋ง~์ด๋ ๋ฐฐ์ ์ง๋ง ์๊ฐ์ด ์ง๋ ์๋ก ์ํ์ ธ์ ์ ๋ฆฌํด๋๋ ค๊ณ ํ๋ค. ๊ธ์์ ๋์ค๋ ํด๋ผ์ด์ธํธ๋ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ปํ๋ค.HT
์น์ด๋ ์ปดํจํฐ ์์คํ ์ ์ ์ฅ๋ ์ ๋ณด๋ฅผ ์ฐพ์์ฃผ๋ ํ๋ก๊ทธ๋จ์ ์๋ฏธํ๋ค. ์ฝ๊ฒ ๋งํ์๋ฉด ๊ตฌ๊ธ ๊ฒ์, ๋ค์ด๋ฒ ๊ฒ์, ๋ค์ ๊ฒ์ ๋ฑ์ด ์ฐ๋ฆฌ๊ฐ ํํ ์ฌ์ฉํ๋ ๊ฒ์ ์์ง์ด๋ค.์ธํฐ๋ท์ด ๋ฐ์ ํ๋ฉด์ ์ ๋ง์ ์ ๋ณด๊ฐ ์น์๋ฒ์ ์ ์ฅ๋๊ณ ์๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด์ ๋ ์ ๋ณด์ ์๋ณด๋ค ์ข์ ์ ๋ณด๋ฅผ
API์ ๋คํธ์ํฌ ์์ฒญ์ด ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๋ Axios ๋ฐ Fetch์ ๊ฐ์ HTTP ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ๋ค.
1. ๊ฒ์ ์์ ๊ตฌ๊ธ์์ ์ด๋ฏธ์ง๋ฅผ ๊ฒ์ํ ๋ alt์์ฑ์ด ๊ฒ์ ์์์ ์ํฅ์ ์ค๋ค. ์ด๋ ๊ณง "๊ฒ์ ์์ง ์ต์ ํ"์ธ SEO ๋๋ฌธ์ด๋ผ๋ ๋ฏ์ด๋ค. ๐ ๊ฒ์ ์์ง์ด๋? ์น์ด๋ ์ปดํจํฐ ์์คํ ์ ์ ์ฅ๋ ์ ๋ณด๋ฅผ ์ฐพ์์ฃผ๋ ํ๋ก๊ทธ๋จ์ ์๋ฏธํ๋ค. ์ฝ๊ฒ ๋งํ์๋ฉด ๊ตฌ๊ธ ๊ฒ์, ๋ค์ด๋ฒ
๋ฒ๋ธ๋ง๊ณผ ์บก์ณ๋ง์ ๋ฌด์์ผ๊น?
(1) ํ์ ๊ด๋ฆฌ ๋๊ตฌ๋ ์ ์ฌ์ฉํ ๊น? > ํ์๊ด๋ฆฌ๋๊ตฌ์์ ํ์๊ด๋ฆฌ๋ ์์ค์ ๋ณํ๋ฅผ ๋์์์ด ๊ด๋ฆฌํ๋ ๊ฒ์ ๋งํ๋ฉฐ ์์ค๋ฅผ ๋ฒ์ ๋ณ๋ก ๊ด๋ฆฌํ ์ ์์ด์ ๊ฐ๋ฐํ ๋ ์ค์๋ก ์์ค๋ฅผ ์ญ์ ํ๊ฑฐ๋, ์์ ํ๊ธฐ ์ด์ ์ผ๋ก ๋์๊ฐ์ผ๋๋ ๊ฒฝ์ฐ ์ ์ฉํ๊ฒ ์ฐ์ธ๋ค. (2) ์ด๋ค ์ข ๋ฅ๊ฐ ์์
๋ด๊ฐ ๋ง๋ ํ๋ก์ ํธ์์ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ API๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ป๊ฒ ํต์ ํ๋์ง ๊ถ๊ธํด์ ธ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค.ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ HTTP ํต์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค. ์ด๋ HTTP ํ๋กํ ์ฝ์ ์ด์ฉํ์ฌ API๋ก ์๋ฒ์๊ฒ ์์ฒญ์ ๋ณด๋ด๋๋ฐ, API์ ์๋๊ณผ์ ์ ๋ํ
(1) SPA๊ฐ ๋ฌด์์ผ๊น? SPA๋ ์ฑ๊ธ ํ์ด์ง ์ดํ๋ฆฌ์ผ์ด์ ์ผ๋ก(html ํ์ผ์ด ํ๊ฐ), ์๋ฒ๋ก๋ถํฐ ์๋ก์ด ํ์ด์ง๋ฅผ ๋ถ๋ฌ์ค์ง ์๊ณ ํ๋ฉด์ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด ํ์ํ ๋ฐ์ดํฐ๋ง ์๋ฒ์์ ์ ๋ฌ๋ฐ์ ์ ๋ฐ์ดํธํ๋ ๋ฐฉ์์ธ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ๋งํ๋ค. (2) SPA์ ์ฅ๋จ์ ์? > #### SPA ์ฅ์ ๋ชจ๋ํ ๋ฐ ์ปดํฌ๋ํธ ๊ฐ๋ฐ์ ์ฉ์ด ์ ์ฒด ํ์ด์ง๋ฅผ ์ ๋ฐ์ดํธ ํ ํ์๊ฐ ์...
CSR, SSR, SSG ๋ ๋๋ง ๋ฐฉ์์ ์๊ธฐ ์ ์ SPA์ MPA์ ๊ฐ๋ ๋ถํฐ ์์์ผ ํ๋ค. ์ด๋ค์ ๋ฌด์์ผ๊น? 1. SPA, MPA SPA SPA(Single Page Application)์ ๋จ์ผ ํ์ด์ง๋ก ๊ตฌ์ฑ๋ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ด๋ค. ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ๋ชจ๋ ๋ฆฌ์์ค๋ฅผ ์ต์ด ๋ ๋๋ง ์, ํ๋ฒ์ ๋ค์ด๋ก๋ ํ๊ณ ์ดํ ์๋ก์ด ํ์ด์ง ์์ฒญ์ด ์์ ๋ ๊ฐฑ์ ์...
๊ฐ๊ฐ์ ์ปดํฌ๋ํธ์๋ ์ปดํฌ๋ํธ์ ์๋ช ์ฃผ๊ธฐ๊ฐ ์กด์ฌํฉ๋๋ค. Mount(ํ์) โ Update ๋ฐ Re-render โ Unmmount(์ฃฝ์)๋ก ํ๋ก๊ทธ๋จ์ด ์คํ๋๊ณ ์ข ๋ฃ๋๋ ๊ณผ์ ์ ๋งํฉ๋๋ค. ์๋ช ์ ๋ณดํต ํ์ด์ง์์ ๋ ๋๋ง๋๊ธฐ ์ ์ธ ์ค๋น ๊ณผ์ ์์ ์์ํ์ฌ ํ์ด์ง์์ ์ฌ๋ผ์ง ๋
๊นํ๋ธ์์ ์๋ก์ด ๋ ํ์งํ ๋ฆฌ๋ฅผ ์์ฑํ๋ค.์ด ๋ ํฌ์งํ ๋ฆฌ์ ์ฎ๊ธฐ๊ณ ์ถ์ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์ฎ๊ธธ ๊ฒ์ด๋ค.์ด๋, ์๋ก์ด ๋ ํ์งํ ๋ฆฌ๋ฅผ "๋ถ๋ชจ", ๊ธฐ์กด์ ์๋(์ฎ๊ฒจ์ง) ๋ ํ์งํ ๋ฆฌ๋ฅผ "์์"์ด๋ผ ๋ถ๋ฅด๊ฒ ๋ค.๐จ ๊ธฐ์กด์ ์๋ ๋ ํ์งํ ๋ฆฌ A์ ๊ธฐ์กด์ ์๋ ๋ ํ์งํ ๋ฆฌ B๋ฅผ ์ฎ๊ธด๋ค๋ฉด, ๋ ํ์งํ
01. Pages ์ฌ์ฉํ์ฌ ์น ํ์ด์ง ์์ฑํ๊ธฐ 01. Git bash์์ ํ์ผ ์์ฑ > mkdir [ ์์ฑํ ํด๋๋ช ]
1. GitHub์์ repo ์์ฑ 2. repo ์ฃผ์ ๋ณต์ฌ 3. ์๊ฒฉ ์ ์ฅ์ ์ง์ 4. ์๊ฒฉ ์ ์ฅ์ ๋ด์ฉ์ ๋ก์ปฌ ์ ์ฅ์์ ๋ฐ์ (๊ทธ๋์ผ push ์๋จ)
01. React 01. ๋ฆฌ์กํธ์ ์ฌ์ฉ ์ด์ ์ฝ๋๋ฅผ ์์ฑํ ๋ ์ํ์ ๋ฐ๋ผ ๋งค๋ฒ DOM์ ์ ๋ฐ์ดํธ ํ๋ ๊ฒ์ ์ฝ๋๊ฐ ๋์กํด์ง๊ณ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์์ง๋ค๋ ๋จ์ ์ด ์์๋ค. ์ด๋๋ , " ์ํ๊ฐ ๋ฐ๋ ๋๋ง๋ค ๋งค๋ฒ DOM์ ์ ๋ฐ์ดํธ ํ์ง๋ง๊ณ , ์์ ๋ค ๋ ๋ ค๋ฒ๋ฆฌ๊ณ ์๋ก ๋ง๋ค์ด์
01. JSX๋? 01. JSX ๋ฌธ๋ฒ JavaScript XML์ ์ฝ์๋ก, ๋ฆฌ์กํธ์์ ์ฌ์ฉํ๋ ํน์ํ ๋ฌธ๋ฒ์ด๋ค. JSX๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฌธ๋ฒ์ ํ์ฅํด์ฃผ๋ Babel์ ํตํด JavaScript๋ก ๋ณํํ ์ ์๋ค. * 02. JSX ๊ท์น JSX ๊ฐ JavaScript
01. Redux๋ ๋ฌด์์ผ๊น? ๐1. ๊ณต์ ํํ์ด์ง์ Redux ์ ์ Redux๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฑ์ ์ํ ์์ธก ๊ฐ๋ฅํ ์ํ ์ปจํ ์ด๋์ด๋ค. Redux๋ ์ฐ๋ฆฌ๊ฐ ์ผ๊ด์ ์ผ๋ก ๋์ํ๊ณ , ์๋ก ๋ค๋ฅธ ํ๊ฒฝ(์๋ฒ, ํด๋ผ์ด์ธํธ)์์ ์๋ํ๊ณ , ํ ์คํธํ๊ธฐ ์ฌ์ด ์ฑ์ ์์ฑํ๋๋ก ๋์
๋ฆฌ๋์ค์ ๋ํ์ฌ ๊ณต๋ถํ๋ ์ค, ๋ฆฌ๋์ค๋ฅผ ์ฌ์ฉํ ๋์ ์ฝ๋์ ์ฌ์ฉํ์ง ์์ ๋์ ์ฝ๋ ์ฐจ์ด๊ฐ ๊ถ๊ธํ์ฌ ์ค์ต์ ํด๋ณด์๋ค. ์ค์ต์ ๋ด์ฉ์ red ๋ฒํผ , green ๋ฒํผ , blue ๋ฒํผ์ ๋ง๋ค๊ณ ๊ฐ๊ฐ์ ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ชจ๋ ๋ฒํผ์ ์์ญ์ด ๋๋ฅธ ๋ฒํผ์ ์์ผ๋ก ๋ณํ๋ ๊ฒ์ด
์ด์ ์ ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ToDo-List๋ฅผ ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์ด ์์๋ค. ๊ทธ๋๋ ๋ฉ๋ชจ์ฅ์ ์ถ๊ฐํ๊ณ , ์ญ์ ํ ์ ์๋ ๊ธฐ๋ฅ๊น์ง๋ง ๊ตฌํ์ ํ์๋๋ฐ, ๋ฆฌ๋์ค๋ก ๋ง๋ค์ด๋ณผ๊น? ํ๋ ์๊ฐ์ด ๋ค์๋ค. ๊ฒฐ๋ก ์ ... ์ ๋ง ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์์ ์ค ์์์ง๋ง ์๊ฐ๋ณด๋ค ๋ ๋ณต์กํ
Redux : ์ํ ๊ด๋ฆฌ์๋ก Redux๋ JS ํ๋ก์ ํธ๋ผ๋ฉด ์ด๋์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ์ง๋ง Redux ์์ฒด๋ React ์ ๋ฌด๊ดํ๋ค.React Redux : Redux๋ฅผ React์ ์ฌ์ฉํ๊ธฐ์๋ ์ด๋ ค์์ด ์๋ค.Redux Toolkit : ์์์ ๋งํ ์ด๋ ค์์ ํด๊ฒฐํด์ฃผ๊ธฐ ์
01. ํ์ผ ๊ตฌ์ฑ `App.js` :
CH 01. ๋ฐ์ดํฐ ํ์ ๐์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ํตํด ๊ธฐ๋ณธํ๊ณผ ์ฐธ์กฐํ ํ์ ์ ๋ค๋ฅธ ๋์ ๋ฐฉ์ ์ดํด 01. ๋ฐ์ดํฐ ํ์ ์ ์ข ๋ฅ ์๋ฐ์คํฌ๋ฆฝํธ๋ ํฌ๊ฒ ๋ ๊ฐ์ง ๋ฐ์ดํฐ ํ์ ์ผ๋ก ๋๋๋ค. ๊ธฐ๋ณธํ (์ซ์, ๋ฌธ์์ด, ๋ถ๋ฆฌ์ธ, null, undefined, +
01. ๋น๋๊ธฐ ์ดํด 01. ๋๊ธฐ์ ๋น๋๊ธฐ ๋๊ธฐ์(Synchronous)์ ๋จผ์ ์์๋ ๋์์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ ํ, ๋ค์ ์์ ์ ์ํํ๋ฉฐ ํ ๋ฒ์ ํ๋์ฉ๋ง ์ฒ๋ฆฌํ๋ค. ๋น๋๊ธฐ์(Asynchronous)์ ๋จผ์ ์คํ๋ ๋์์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ , ๋ค์ ์์ ์
02. ์ฝ๋ฐฑ ํจ์ 01. ์ฝ๋ฐฑ ํจ์ ์ดํด ์ฝ๋ฐฑ ํจ์ : ๋ค๋ฅธ ํจ์์ ๋งค๊ฐ๋ณ์( ์ธ์ )๋ก ์ ๋ฌ๋๋ ๊ทธ ํจ์ ์์ฒด ๋งค๊ฐ๋ณ์๋ก ๋๊ฒจ๋ฐ์ ํจ์๋ ์ผ๋จ ๋๊ฒจ๋ฐ๊ณ , ๋๊ฐ ๋๋ฉด ๋์ค์ ํธ์ถ(called back)ํ๋ค๋ ๊ฒ์ด ์ฝ๋ฐฑํจ์์ ๊ฐ๋ ํจ์์ ๋งค๊ฐ๋ณ์๋ null, undefi