๐ ๋ฆฌ์กํธ ๋ง์คํฐ ์๋ฒฝ ๊ฐ์ด๋: ์ด๋ณด๋ถํฐ ์ ๋ฌธ๊ฐ๊น์ง, ์ค๋ฌด ํ๋ก์ ํธ๋ก ๋ฐฐ์ฐ๋ React.js ์ ๋ณต๋ฒ
A. ๋ฆฌ์กํธ(React) ์๊ฐ
React.js๋ Facebook์์ ๊ฐ๋ฐํ JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ์ ๊ฐ์ DOM์ ํ์ฉํ์ฌ ํจ์จ์ ์ด๊ณ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ์ด ๊ฐ์ด๋์์๋ ๋ฆฌ์กํธ์ ํต์ฌ ๊ฐ๋ ๊ณผ ์ค์ ํ๋ก์ ํธ ์ ์ฉ ๋ฐฉ๋ฒ์ ์์ธํ ์์๋ด ๋๋ค.
B. JSX ๋ฐฐ์ฐ๊ธฐ
JSX(JavaScript XML)๋ React์์ ์ฌ์ฉ๋๋ ํน์ง์ ์ธ ๋ฌธ๋ฒ์ ๋๋ค. JavaScript ์ฝ๋ ๋ด์ XML๊ณผ ์ ์ฌํ ๋ฌธ๋ฒ์ ์ฌ์ฉํ์ฌ UI๋ฅผ ์ง๊ด์ ์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค. JSX๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋ ๊ฐ๋ ์ฑ์ ๋์ด๊ณ ๊ฐ๋ฐ ์๋๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค. ๋ณธ ์ฅ์์๋ JSX์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ๊ณผ ์ฌ์ฉ ์์๋ฅผ ์ดํด๋ด ๋๋ค.
{/* JSX ์์ */}
Hello, world!
C. ์ปดํฌ๋ํธ ๊ธฐ๋ณธ
React ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ปดํฌ๋ํธ๋ UI์ ํน์ ๋ถ๋ถ์ ๋ด๋นํ๋ฉฐ, ๋ ๋ฆฝ์ ์ผ๋ก ๊ฐ๋ฐ ๋ฐ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ๋ณธ ์ฅ์์๋ ์ปดํฌ๋ํธ ์์ฑ, ์ฌ์ฉ, ๊ทธ๋ฆฌ๊ณ ์ปดํฌ๋ํธ ๊ฐ์ ๋ฐ์ดํฐ ์ ๋ฌ ๋ฐฉ๋ฒ์ ๋ค๋ฃน๋๋ค.
D. ์ํ ๊ด๋ฆฌ
์ปดํฌ๋ํธ์ ์ํ(state)๋ ์ปดํฌ๋ํธ๊ฐ ํ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ํ๋ ๋๋ค. ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ปดํฌ๋ํธ๋ ์๋์ผ๋ก ๋ค์ ๋ ๋๋ง๋ฉ๋๋ค. ๋ณธ ์ฅ์์๋ ์ํ ๊ด๋ฆฌ ๋ฐฉ๋ฒ, ์ํ ์ ๋ฐ์ดํธ, ๊ทธ๋ฆฌ๊ณ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์: Redux, Context API)์ ๋ํด ์์๋ด ๋๋ค.
E. Props ์ดํดํ๊ธฐ
Props(properties)๋ ์ปดํฌ๋ํธ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ์ฌ ์ปดํฌ๋ํธ ๊ฐ์ ์ํธ ์์ฉ์ ๊ตฌํํ ์ ์์ต๋๋ค. ๋ณธ ์ฅ์์๋ Props์ ์ฌ์ฉ ๋ฐฉ๋ฒ๊ณผ ํ์ฉ ์์๋ฅผ ์ดํด๋ด ๋๋ค.
F. ๋ผ์ฐํ ์ค์
React Router๋ React ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ๋ฌ ํ์ด์ง๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ๋ณธ ์ฅ์์๋ React Router๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ค ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
G. Hooks ํ์ฉ
Hooks๋ ํจ์ํ ์ปดํฌ๋ํธ์์ ์ํ์ ๋ถ์ ํจ๊ณผ๋ฅผ ๊ด๋ฆฌํ๋ ์๋ก์ด ๋ฐฉ๋ฒ์ ๋๋ค. useState, useEffect ๋ฑ ๋ค์ํ Hooks๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ๋์ฑ ๊ฐ๊ฒฐํ๊ณ ํจ์จ์ ์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค. ๋ณธ ์ฅ์์๋ ์ฃผ์ Hooks์ ์ฌ์ฉ ๋ฐฉ๋ฒ๊ณผ ํ์ฉ ์์๋ฅผ ๋ค๋ฃน๋๋ค.
H. ์ค๋ฌด ํ๋ก์ ํธ ์์
์ค์ ํ๋ก์ ํธ๋ฅผ ํตํด ๋ฆฌ์กํธ์ ํ์ฉ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ๊ฐ๋จํ ํฌ๋๋ฆฌ์คํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค๋ฉด์ ๋ฐฐ์ด ๋ด์ฉ์ ์ ์ฉํด ๋ด ๋๋ค.
I. ๋ง๋ฌด๋ฆฌ
์ด ๊ฐ์ด๋๊ฐ ๋ฆฌ์กํธ ํ์ต์ ๋์์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋์ฑ ์ฌ๋ ์๋ ํ์ต์ ์ํด ๊ด๋ จ ๋ฌธ์์ ์ปค๋ฎค๋ํฐ๋ฅผ ํ์ฉํ์ธ์.
“`
..