๋ฆฌ์กํธ(React)๋ ํ์ด์ค๋ถ์ด ๋ง๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค.
ํ์ง๋ง ์ด๋ ๊ฒ ๋งํด๋ ์์ง ๊ฐ์ด ์ ์ฌ ์ ์์ด์. ๊ทธ๋์ ์ฐจ๊ทผ์ฐจ๊ทผ ํ์ด๋ณผ๊ฒ์.
๐ ์น์ฌ์ดํธ๋ ์ด๋ป๊ฒ ๋์ํ ๊น?
์น์ฌ์ดํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋์ ๊ฐ์ ํ๋ฆ์ผ๋ก ๋์ํด์:
- ์ฌ์ฉ์๊ฐ ๋ฒํผ์ ๋๋ฅธ๋ค
- ํ๋ฉด์ ์ด๋ค ๋ด์ฉ์ด ๋ฐ๋๋ค
- ์ด๊ฑธ ์ํด HTML/CSS/JavaScript๊ฐ ํ๋ ฅํ๋ค
์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ์๊น๋๋ค.
- ๋ฒํผ์ ๋๋ฅผ ๋๋ง๋ค ํ๋ฉด์ ์ง์ ์กฐ์(DOM ์กฐ์) ํด์ผ ํด์.
- ์ํ๊ฐ ๋ง์์ง์๋ก ์ฝ๋๊ฐ ๋ณต์กํด์ง๊ณ ์ค์ํ๊ธฐ ์ฌ์์.
๐ ์ ํต์ ์ธ ๋ฐฉ์
- ์ฌ์ฉ์๊ฐ ๋ฒํผ์ ๋๋ฆ
- JavaScript๊ฐ ์ง์
<div>
์ ํ ์คํธ๋ฅผ ๋ฐ๊ฟ์ค - ์ฌ๋ฌ ๊ฐ์ ์ํ๋ฅผ ์ผ์ผ์ด ์ถ์ ํด์ผ ํจ
๐ ๊ทธ๋์ ๋์จ ๊ฒ ๋ฆฌ์กํธ!
๋ฆฌ์กํธ๋ ์ด๊ฑธ ํจ์ฌ ๊น๋ํ๊ณ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๊ฒ ํด์ค์.
- ๋ฐ์ดํฐ(state)๊ฐ ๋ฐ๋๋ฉด
- ๋ฆฌ์กํธ๊ฐ ์๋์ผ๋ก UI๋ฅผ ๋ค์ ๊ทธ๋ ค์ค์
โ๋ฐ์ดํฐ ์ค์ฌโ์ผ๋ก UI๋ฅผ ๋ง๋๋ ๋ฐฉ์์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ผ์.
๐ ๋น์ ๋ก ์ดํดํด๋ณด์
๋ฆฌ์กํธ๋ฅผ ์ฒ์ ๋ฐฐ์ฐ๋ ์ฌ๋์๊ฒ ๊ฐ์ฅ ์ข์ ๋น์ ๋ โ์๋ ๊ณ์ฐ๊ธฐโ์์.
- ๊ณ์ฐ๊ธฐ์ ์ซ์๋ฅผ ์ ๋ ฅํ๋ฉด ์๋์ผ๋ก ๊ฒฐ๊ณผ๊ฐ ๊ฐฑ์ ๋์ฃ ?
- ์ฐ๋ฆฌ๊ฐ ๋ฒํผ์ ๋๋ฅผ ๋๋ง๋ค ๊ฒฐ๊ณผ๋ฅผ ๋ค์ ๊ณ์ฐํ ํ์๋ ์์ด์.
- ๋ฆฌ์กํธ๋ ํ๋ฉด๋ ์ด๋ ๊ฒ ์๋์ผ๋ก ๋ค์ ๊ณ์ฐํด์ฃผ๋ ๋๊ตฌ์์.
๐งฉ ๋ฆฌ์กํธ์ ํต์ฌ ์์ 3๊ฐ์ง
๋ฆฌ์กํธ๋ ํฌ๊ฒ ์๋ 3๊ฐ์ง๋ก ๊ตฌ์ฑ๋ผ์:
์์ | ์ค๋ช |
---|---|
์ปดํฌ๋ํธ (Component) | ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ UI ์กฐ๊ฐ |
์ํ (State) | ๋ณํ ์ ์๋ ๋ฐ์ดํฐ |
๋ ๋๋ง (Rendering) | ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ์ผ |
๐ฆ ๊ฐ๋จํ ์์ ์ฝ๋
function Welcome() {
return <h1>์๋
ํ์ธ์, React!</h1>;
}
์ด๊ฑด โWelcomeโ์ด๋ผ๋ ์ด๋ฆ์ ์ปดํฌ๋ํธ๋ฅผ ์ ์ํ ๊ฑฐ์์.<Welcome />
์ด๋ผ๊ณ ์ฐ๋ฉด ํ๋ฉด์ โ์๋
ํ์ธ์, React!โ๊ฐ ๋ํ๋์ฃ .
๐ ๋ง์น ๋ด๊ฐ HTML ํ๊ทธ๋ฅผ ์๋ก ๋ง๋ ๊ฒ์ฒ๋ผ ์ธ ์ ์์ด์.
- ์ฌ์ฉ์ ์ ๋ ฅ โ
- ์ํ(state)๊ฐ ๋ฐ๋ โ
- ๋ฆฌ์กํธ๊ฐ ์๋ก์ด UI๋ฅผ ๊ณ์ฐ โ
- ํ๋ฉด์ด ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋จ
์ด ๋ชจ๋ ๊ฑธ ๋ฆฌ์กํธ๊ฐ ์๋์ผ๋ก ํด์ฃผ๋ ๊ฒ ํต์ฌ์ด์์.
โ ์ ๋ฆฌ
- ๋ฆฌ์กํธ๋ ๋ฐ์ดํฐ ์ค์ฌ์ผ๋ก UI๋ฅผ ๋ง๋๋ ๋๊ตฌ์์.
- ๋ณต์กํ ํ๋ฉด๋ ๋ ์์ธก ๊ฐ๋ฅํ๊ณ ํจ์จ์ ์ผ๋ก ๋ง๋ค ์ ์์ด์.
- ์ปดํฌ๋ํธ์ ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ํ๋ฉฐ, ๋ณํ์ ๋ฐ๋ผ UI๋ฅผ ๋ค์ ๊ทธ๋ ค์ค์.