๐ค React ๋?
- ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋, ์น ํ๋ ์์ํฌ
- ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด ํ์ด์ค๋ถ(์กฐ๋ ์ํฌ)์์ ๊ฐ๋ฐ
- ์ฑ๊ธ ํ์ด์ง ์ดํ๋ฆฌ์ผ์ด์ ๋ฐ ๋ชจ๋ฐ์ผ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๊ธฐ๋ฅ
- 2011๋ ํ์ด์ค๋ถ์ ๋ด์คํผ๋์ ์ฒ์ ์ ์ฉ, 2012๋ ์ธ์คํ๊ทธ๋จ๋ท์ปด์ ์ ์ฉ.
- 2013๋ ๋ฐํ, ์คํ์์คํ ๋จ
- Component (์ปดํฌ๋ํธ): UI๋ฅผ ์ด๋ฃจ๋ ์ต์ ๋จ์์ ๋๋ค. ๋ง์น ๋ ๊ณ ๋ธ๋ก์ฒ๋ผ ํ๋ฉด์ ๊ฐ ๋ถ๋ถ์ ๋ ๋ฆฝ๋ ๋ถํ์ผ๋ก ๋ง๋ค๊ณ , ์ด๋ฅผ ์กฐ๋ฆฝํด ํฐ ์น์ฌ์ดํธ๋ฅผ ์์ฑํฉ๋๋ค.
- Virtual DOM (๊ฐ์ DOM): ์ฑ๋ฅ์ ๋น๊ฒฐ์ ๋๋ค. ํ๋ฉด์ ๋ณํ๊ฐ ์๊ธธ ๋๋ง๋ค ์ ์ฒด ํ์ด์ง๋ฅผ ๋ค์ ๊ทธ๋ฆฌ๋ ๋์ , ๊ฐ์์ ๋ณต์ฌ๋ณธ์์ ๋ฐ๋ ๋ถ๋ถ๋ง ๊ณ์ฐํด ์ค์ ํ๋ฉด์ ๋ฐ์ํฉ๋๋ค. ๋งค์ฐ ๋น ๋ฅด๊ณ ํจ์จ์ ์ด์ฃ .
- Declarative (์ ์ธ์ ํ๋ก๊ทธ๋๋ฐ): "์ด๋ป๊ฒ ํ๋ฉด์ ๋ฐ๊ฟ์ง" ์ผ์ผ์ด ๋ช ๋ นํ์ง ์๊ณ , "๊ฒฐ๊ณผ๋ฌผ์ด ์ด๋ป๊ฒ ๋ณด์ฌ์ผ ํ ์ง" ์ ์ํฉ๋๋ค. ์ฝ๋๊ฐ ํจ์ฌ ๊ฐ๊ฒฐํด์ง๊ณ ์์ธกํ๊ธฐ ์ฌ์์ ธ์.
๋ฆฌ์กํธ์ ๋์ ์๋ฆฌ
- ์ด๊ธฐ ๋๋๋ง
- ๊ฐ์ DOM ๋ณ๊ฒฝ
- ์์ ํ ๋, ๋ฆฌ์กํธ๋ ์ค์ ํ๋ฉด์ ๋ฐ๋ก ๊ฑด๋๋ฆฌ์ง ์๊ณ , ๋์ ๋ฉ๋ชจ๋ฆฌ ์์ ์๋ ๊ฐ์ DOM์ ํ๋ ๋ง๋ญ๋๋ค.
- ์ฌ์กฐ์
- ์ด์ ์ ๊ฐ์ DOM๊ณผ ๋ฐฉ๊ธ ์๋ก ๋ง๋ ๊ฐ์ DOM์ ๋๋ํ ๋๊ณ ๋น๊ตํฉ๋๋ค.
- ์ค์ DOM ์
๋ฐ์ดํธ
- ๊ทธ๋ ๊ฒ ๋ฐ๋ ๋ถ๋ถ๋ง ์ค์ ํ๋ฉด์ ๋ฐ์ํฉ๋๋ค.
์ฌ์ฉ์ฅ์
| ํน์ง | ์ค๋ช |
| ์ฌ์ฌ์ฉ์ฑ | ํ ๋ฒ ๋ง๋ ๋ฒํผ์ด๋ ๋ค๋น๊ฒ์ด์ ๋ฐ๋ฅผ ์ฌ๊ธฐ์ ๊ธฐ์ ๋ค์ ์ธ ์ ์์ต๋๋ค. |
| ์ํ๊ณ | ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค์ด ๋ง๋ ๋๊ตฌ(๋ผ์ด๋ธ๋ฌ๋ฆฌ)๊ฐ ์์ฒญ๋๊ฒ ๋ง์ ๋ฌธ์ ํด๊ฒฐ์ด ์ฝ์ต๋๋ค. |
| ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ | ๋ฐ์ดํฐ๊ฐ ์์์ ์๋๋ก๋ง ํ๋ฌ๊ฐ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ์ถ์ ์ด ์ฝ๊ณ ๋ฒ๊ทธ๊ฐ ์ค์ด๋ญ๋๋ค. |
| ์ ์ฐ์ฑ | ๋ฆฌ์กํธ ์ง์์ ํ์ฉํด 'React Native'๋ก ๋ชจ๋ฐ์ผ ์ฑ๊น์ง ๋ง๋ค ์ ์์ต๋๋ค. |
๋ฆฌ์กํธ ์์ํ๊ธฐ
https://react.dev/learn/creating-a-react-app
Creating a React App – React
The library for web and native user interfaces
react.dev
create-react-app my-app
my-app ์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ฆฌ์กํธ ํด๋ ์์ฑ(๊ธฐ๋ณธ js)
create-react-app my-app --template typescript
typescript๋ก ์์ฑ
npm start
์คํ