๐ฑ ํ๋ก์ ํธ๋ฅผ ์์ํ๊ธฐ ์ ์ ๋จผ์ react๋ ๋ฌด์์ธ๊ฐ ์์๋ด ์๋ค.
React๋?
react๋ ์น ํ๋ ์์ํฌ๋ก, ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋๋ก์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
- react๋ facebook์์ ์ ๊ณตํด์ฃผ๋ ํ๋ก ํธ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
- ์ฑ๊ธ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ ์ ํ ๋๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
์ฆ, ํ์ฌ ๋ง์ด ํ์ฉ๋๊ณ ์๋ ์น/์ฑ์ View๋ฅผ ๊ฐ๋ฐํ ์ ์๋๋ก ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
React์ ํน์ง
1. Data Flow
React๋ ๋ฐ์ดํฐ์ ํ๋ฆ์ด ํ ๋ฐฉํฅ์ผ๋ก๋ง ํ๋ฅด๋ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ๊ฐ์ง๋๋ค. ๋ณต์กํ ์ฑ์์๋ ๋ฐ์ดํฐ ํ๋ฆ์์ ์ผ์ด๋๋ ๋ณํ๋ฅผ ๋ณด๋ค ์์ธก ๊ฐ๋ฅํ๋๋ก ๋จ๋ฐฉํฅ ํ๋ฆ์ ๊ฐ์ง๋๋ก ํ๋ค๊ณ ํฉ๋๋ค.
2. Component ๊ธฐ๋ฐ๊ตฌ์กฐ
Component๋ ๋ ๋ฆฝ์ ์ธ ๋จ์์ ์ํํธ์จ์ด ๋ชจ๋์ ๋งํฉ๋๋ค. ์ฆ, ์ํํธ์จ์ด๋ฅผ ๋ ๋ฆฝ์ ์ธ ํ๋์ ๋ถํ์ผ๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
react๋ UI๋ฅผ ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ก ์ชผ๊ฐ์ ๊ตฌํํฉ๋๋ค. ํ ํ์ด์ง ๋ด์์๋ ์ฌ๋ฌ ๊ฐ ๋ถ๋ถ์ ๋ ๋ฆฝ๋ ์ปดํฌ๋ํธ๋ก ๋ง๋ค๊ณ , ์ด ์ปดํฌ๋ํธ๋ฅผ ์กฐ๋ฆฝํด ํ๋ฉด์ ๊ตฌ์ฑํฉ๋๋ค. ์ฝ๋๋ฅผ ๋ฐ๋ณต ์ ๋ ฅํ ํ์ ์์ด ์ปดํฌ๋ํธ๋ง importํด ์ฌ์ฉํ๋ฉด ๋๋ค๋ ๊ฐํธํจ์ด ์์ผ๋ฉฐ, ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ณต์กํด์ง๋๋ผ๋ ์ฝ๋์ ์ ์ง๋ณด์, ๊ด๋ฆฌ๊ฐ ์ฉ์งํด์ง๋ค๋ ์ฅ์ ์ ๊ฐ์ง๋๋ค.
3. Virtual DOM
DOM์ Document Object Model์ ์ฝ์์ ๋๋ค. DOM์ html, xml, CSS ๋ฑ์ ํธ๋ฆฌ ๊ตฌ์กฐ๋ก ์ธ์ํ๊ณ , ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด๋ก ๊ฐ์ฃผํ๊ณ ๊ด๋ฆฌํฉ๋๋ค. react๋ ์ด DOM Tree ๊ตฌ์กฐ์ ๊ฐ์ ๊ตฌ์กฐ์ฒด๋ฅผ Virtual DOM์ผ๋ก ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๋ง๋ค Virtual DOM์ ๋ง๋ค๊ณ , ๋ค์ ๊ทธ๋ฆด ๋๋ง๋ค ์ค์ DOM๊ณผ ๋น๊ตํ๊ณ ์ ํ ์ํ๋ฅผ ๋น๊ตํด, ๋ณ๊ฒฝ์ด ํ์ํ ์ต์ํ์ ๋ณ๊ฒฝ์ฌํญ๋ง ์ค์ DOM์ ๋ฐ์ํด, ์ฑ์ ํจ์จ์ฑ๊ณผ ์๋๋ฅผ ๊ฐ์ ํ ์ ์๋ค๊ณ ํฉ๋๋ค.
4. Props and State
- Props
๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ์ ๋ฌํด ์ฃผ๋ ๋ฐ์ดํฐ๋ฅผ ๋งํฉ๋๋ค. ์ฝ๊ฒ ์ฝ๊ธฐ ์ ์ฉ ๋ฐ์ดํฐ๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์์ ์ปดํฌ๋ํธ์์ ์ ๋ฌ๋ฐ์ props๋ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๊ณ props๋ฅผ ์ ๋ฌํด์ค ์ต์์ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ง props๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- State
์ปดํฌ๋ํธ ๋ด๋ถ์์ ์ ์ธํ๋ฉฐ ๋ด๋ถ์์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. state๋ ๋์ ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ฌ์ฉํ๋ฉฐ, ์ฌ์ฉ์์์ ์ํธ์์ฉ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ ๋ ์ฌ์ฉํฉ๋๋ค.
5. JSX
Javascipt๋ฅผ ํ์ฅํ ๋ฌธ๋ฒ์ ๋๋ค. React์์๋ ์ด๋ฒคํธ๊ฐ ์ฒ๋ฆฌ๋๋ ๋ฐฉ์, ์๊ฐ์ ๋ฐ๋ผ state๊ฐ ๋ณํ๋ ๋ฐฉ์, ํ๋ฉด์ ํ์ํ๊ธฐ ์ํด ๋ฐ์ดํฐ๊ฐ ์ค๋น๋๋ ๋ฐฉ์ ๋ฑ ๋ ๋๋ ๋ก์ง์ด ๋ณธ์ง์ ์ผ๋ก ๋ค๋ฅธ UI ๋ก์ง๊ณผ ์ฐ๊ฒฐ๋๋ค๋ ์ฌ์ค์ ๋ฐ์๋ค์ ๋๋ค. react๋ ๋ณ๋์ ํ์ผ์ ๋งํฌ์ ๊ณผ ๋ก์ง์ ๋ฃ์ด ๊ธฐ์ ์ ์ธ์์ ์ผ๋ก ๋ถ๋ฆฌํ๋ ๋์ , ๋ ๋ค ํฌํจํ๋ "์ปดํฌ๋ํธ"๋ผ๊ณ ๋ถ๋ฅด๋ ๋์จํ๊ฒ ์ฐ๊ฒฐ๋ ์ ๋์ผ๋ก ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค. React๋ JSX ์ฌ์ฉ์ด ํ์๊ฐ ์๋์ง๋ง, ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
๋ค์ ํฌ์คํ ์์๋ Creat-React-App์ ์ด์ฉํด react ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค..!
'react' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] ์ ๋๊ฒฝ๋ก ์ฌ์ฉํ๊ธฐ (0) | 2021.12.14 |
---|