React๋?
Last updated
Last updated
์น ๊ฐ๋ฐ์ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ/ํ๋ ์์ํฌ์๋ ์ด๋ค ๊ฒ์ด ์์๊น? ๋ด๊ฐ ๊ณต๋ถํ๊ณ ์๋ React๊ฐ ๋ฐ๋ก ๋ํ์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๋ฟ๋ง ์๋๋ผ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์๋ ๊ฒ๋ค ์ค Angular์ Vue๊ฐ ์๋ค.
๊ทธ ์ค React์ ๋ํด ๊ณต๋ถํ๊ณ ์๋์ ์ ๋ฆฌํ๊ณ ์ ํ๋ค.
JSX๊ณผ ๊ฐ์ ๋(Virtual DOM)์ ๋ค๋ฅธ ์ฑํฐ์์ ์์ธํ๊ฒ ๋ค๋ฃฌ๋ค.
ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ ๋ํ ์ ์ด ๊ถํ์ด๋ค. ํ๋ ์์ํฌ๋ ํ๋ฆ์ ์ ์ด ๊ถํ์ ๊ฐ๋ฐ์๊ฐ ์๋ ํ๋ ์์ํฌ๊ฐ ๊ฐ๊ณ ์๋ ๋ฐ๋ฉด์, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋ฆ์ ๋ํ ์ ์ด๋ฅผ ํ์ง ์๊ณ ๊ฐ๋ฐ์๊ฐ ํ์ํ ๋ถ๋ถ๋ง ํ์ํ ๋ ๊ฐ์ ธ๋ค ์ฌ์ฉํ๋ ํํ์ด๋ค.
User Interface (UI, ์ฌ์ฉ์ ์ธํฐํ์ด์ค)
์ฌ์ฉ์์ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ด ์๋ก ์ํธ์์ฉ์ ํ๊ธฐ ์ํด ์ค๊ฐ์์ ์๋ก ๊ฐ์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ์ ์ดํด์ฃผ๋ ๊ฒ์ด๋ค. ์น ์ฌ์ดํธ์์ ๋ฒํผ๊ณผ ์ ๋ ฅ์ฐฝ ๋ฑ์ด ๋ชจ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ด๋ค. ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํ ๊ธฐ๋ฅ ๋ชจ์์ง(๋ผ์ด๋ธ๋ฌ๋ฆฌ)์ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ฆฌ์กํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋๋ก์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ฌ์ฉ๋๋ค. ๋ฉํ(๊ตฌ ํ์ด์ค๋ถ)์์ ๋ง๋ค์์ผ๋ฉฐ 2013๋ ์ ์ฒ์์ผ๋ก ์ถ์๋์ด ์ฌ์ฉ๋ฅ ์ด ์ ์ ์ฆ๊ฐํ๋ค๊ฐ ํ์ฌ๋ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ชจ๋ ๋ฐ๋๋ฆฌ๊ณ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ๋์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ HTML์ ํฌํจํ๋ JSX(JavaScript XML)์ด๋ผ๋ ๊ฐ๋จํ ๋ฌธ๋ฒ๊ณผ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ(One-way Data Binding)์ ์ฌ์ฉํ๊ณ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ๋(Virtual DOM)์ด๋ผ๋ ๊ฐ๋ ์ ์ฌ์ฉํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํผํฌ๋จผ์ค๋ฅผ ์ต์ ํํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
์ต๊ทค๋ฌ(Angular)๋ ํด๋ผ์ด์ธํธ ๋จ์ผ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ (SPA)์ ๊ฐ๋ฐ์ ์ํด ๋ง๋ค์ด์ง ์คํ์์ค ํ๋ ์์ํฌ์ด๋ค. ์ต๊ทผ์ ํ๋ก ํธ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(๋๋ ํ๋ ์์ํฌ) React, Vue์ ํจ๊ป ์์ฃผ ์ธ๊ธ๋๋ค. ๋์ ์ฝํ ์ธ ์์ฑ์ ํ๋ ๋ฐ ์์ด์ ํ๊ธฐ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ์ ํ์ ๋ถ๋ฌ์ผ์ผํฌ ๋งํผ ๋ง์ ์์๊ฐ ์์๋ค.
2010๋ ์ค๋ฐ ๋ ๊น์ง๋ง ํด๋ ๊ต์ฅํ ๋ง์ ๊ณณ์์ ์ฌ์ฉ๋์์ง๋ง 2018๋ LTS(๋จ๊ธฐ๊ฐ์ ๋ฒ์ ์ ๋ฐ์ดํธ๋ฅผ ํ์ง ์๊ณ ์์ ์ ์ธ ๋ฒ์ ์ ์ฅ๊ธฐ๊ฐ ์ ์งํ๋ ๋ฐฉ์)๋ชจ๋์ ๋์ ํ์๊ณ 2022๋ 1์ LTS ๋ง์ ์ค๋จ์ ์ ์ธํ๊ณ ์ฌ์ค์ ๊ณต์์ ์ธ ์ง์์ด ์ข ๋ฃ ๋์๋ค.
๋ทฐ๋ ํฐ IT๊ธฐ์ ์ ์ฃผ๋๋ก ์์๋ ์ต๊ทค๋ฌ(๊ตฌ๊ธ), ๋ฆฌ์กํธ(๋ฉํ)์๋ ๋ค๋ฅด๊ฒ Evan You๋ผ๋ ์ค๊ตญ์ธ ๊ฐ๋ฐ์ ํ ๋ช ์ด ์์ํ ์คํ์์ค ํ๋ก์ ํธ์ด๋ค. 2014๋ ์ ์ฒ์ ์ถ์๋์๊ณ ์ดํ ์ ์ ์ํฅ๋ ฅ์ด ์ปค์ ธ ํ์ฌ๋ ๋ฆฌ์กํธ์ ํญ์ ํจ๊ป ์ธ๊ธ๋๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ํ ํ๋ ์์ํฌ์ด๋ค.
๋ฆฌ์กํธ๋ก ์์ ํ ๋ ์ด๋ค ๋ก์ง์ผ๋ก ์ด๋ป๊ฒ ์ฝ๋๋ฅผ ์ง์ผ ํ์ด์ง๋ฅผ ๊ทธ๋ ค์ง ์ ์๋์ง์ ๋ํด ์๊ฐํ๊ธฐ ๋ณด๋ค๋ ์ปดํฌ๋ํธ๋ ๋ฐ์ดํฐ ๋ฑ์ ๋ฐฐ์น๋ฅผ ํตํด ๋ฌด์์ด ๋ ๋๋ง ๋ ์ง์ ๋ํด ์๊ฐ์ ํ๋ค. ์ด๊ฒ์ด ์ ์ธํ UI์ ํต์ฌ์ด๋ค.
๋จผ์ ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ์ ์ฐจ์ด์ ๋ํด ์์๋ณด์.
๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ
์ด๋ค ๋ฐฉ๋ฒ(How)์ผ๋ก ํ ๊ฒ์ธ์ง๋ฅผ ์ ์ํ๋ ๊ฒ์ ์๋ฏธ
๋ฌด์์ ํ์ง ์ธ์ธํ๊ฒ ์ง์ ํ๋ค.
์ ์ธํ ํ๋ก๊ทธ๋๋ฐ
๋ฌด์์ธ๊ฐ(What)๋ฅผ ์์ ํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์ ์ํ๋ ๊ฒ์ ์๋ฏธ
๊ฒฐ๊ณผ๋ง ๊ธฐ์ ํ ๋ฟ ์ด๋ป๊ฒ๋ ๊ธฐ์ ํ์ง ์๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ
์๋์ ์ง์คํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ
์ฐ๋ฆฌ๋ filter, map, reduce ๋ฉ์๋๊ฐ ์ด๋ค ๋ก์ง์ผ๋ก ๊ตฌํ๋๋์ง ์ ํ์๊ฐ ์๋ค. ํด๋น ๋ฉ์๋์ ๊ตฌ์ฒด์ ์ธ ์ ์ฐจ๋ ์ ๊ฒฝ์ฐ์ง ์๊ณ , ์ถ์ํ๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ ๋ ์ ์ธ๋ง ํ๋ฉด ๋๋ค.
๊ฐ๋ ์ฑ์ด ์ข์ผ๋ฉฐ ์์ธก์ด ์ฌ์
๊ทธ๋ ๋ค๋ฉด ๋ฆฌ์กํธ์์์ ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ์ด๋ ๋ฌด์์ผ๊น?
๋ฆฌ์กํธ์ JSX๋ฅผ ์ฌ์ฉํด์ ๋น์ ์ธํ์ ์ธ ๋ถ๋ถ์ ์บก์ํํด์ ๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ๋ง๋ค์ด์ค๋ค.
์๋์ ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด <ul>
ํ๊ทธ ์์ ์๋ก์ด <li>
ํ๊ทธ๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํด์ ์์ฑํ๊ณ ์๋ค.
์ด๋ฌํ ์ฝ๋๋ฅผ ๋ฆฌ์กํธ์์๋ ์๋์ ๊ฐ์ด JSX๋ฅผ ํตํด ์ ์ฌ HTML ์ฝ๋์์์ map ํจ์๋ฅผ ์ด์ฉํ์ฌ ์ ์ธ์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ์ ํ ์ ์๋ค.
๋ฆฌ์กํธ๊ฐ ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ์ธ ์ด์
๋ฆฌ์กํธ์ JSX ์์ฒด๊ฐ ์ ์ธํ์ ์๋๋ค. ํ์ง๋ง JSX์ ์บก์ํ๋ฅผ ํตํด ์ ์ธํ ์ฝ๋ ์์ฑ์ด ๊ฐ๋ฅํด์ง๋ค. ์ฐ๋ฆฌ๋ ๋ฆฌ์กํธ๋ก ๊ฐ๋ฐ์ ํ๋ฉด ์ฌ๋ฌ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๊ณ ํ์ํ ๊ณณ์ ์ฐ๊ฒ ๋๋ค. ์๋ฅผ ๋ค์ด ์๋์ ์ฝ๋๋ฅผ ๋ณด์.
<Header/>
,<Footer/>
์ JSX๋ก ์์ฑ๋ ์ฝ๋๋ฅผ ์บก์ํํ ์ปดํฌ๋ํธ๋ค. ๊ฐ๋ฐ์๋ค์<Header>
์ปดํฌ๋ํธ์<Footer/>
์ปดํฌ๋ํธ์ ๋ํ ์์ธํ ๋ด๋ถ ๋ก์ง์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ๊ฐ๊ฐ ํค๋์ ํธํฐ์ ๊ด๋ จํ ์ปดํฌ๋ํธ์ด๊ณ Profile์ ์ด ๋๊ฐ์ ์ปดํฌ๋ํธ์ ๊ธฐํ ๋ฑ๋ฑ์ผ๋ก ์ด๋ฃจ์ด์ง ํ์ด์ง๊ตฌ๋๋ผ๋ ๊ฒ์ ์ ์ ์๊ณ ์ด๋ป๊ฒ ๊ทธ๋ ค์ง์ง๋ ์ง์ ์์ธกํ ์ ์๋ค.
๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ด๋? ๋ ๋ฐ์ดํฐ ํน์ ์ ๋ณด์ ์์ค๋ฅผ ๋ชจ๋ ์ผ์น์ํค๋ ๊ธฐ๋ฒ์ด๋ค. ์ฆ ํ๋ฉด์ ๋ณด์ด๋ ๋ฐ์ดํฐ์ ๋ธ๋ผ์ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ผ์น์ํค๋ ๊ธฐ๋ฒ์ด๋ค.
๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ
ํ์ชฝ ๋ฐฉํฅ์ผ๋ก๋ง ์ ์ด๊ฐ ๊ฐ๋ฅํ ๊ฒ
js์์๋ ์ฌ์ฉ์์ ํ๋ฉด์ ๋ณ๊ฒฝํ ์ ์์ง๋ง ์ฌ์ฉ์๋ js์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์๋์ ์ผ๋ก ๋ณ๊ฒฝ์ํค์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋ณํ๋ ๊ฐ์ ๊ฐ์งํ์ฌ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์์ผ์ค์ผ ํจ
JS -> HTML ๋ง ๊ฐ๋ฅ
๋ฐ์ดํฐ ๋ณํ์ ๋ฐ๋ฅธ ์ฑ๋ฅ ์ ํ ์์ด DOM ๊ฐ์ฒด ๊ฐฑ์ ๊ฐ๋ฅํ์ง๋ง ๋ณํ๋ฅผ ๊ฐ์งํ๊ณ ํ๋ฉด์ ์ ๋ฐ์ดํธ ํ๋ ์ฝ๋๋ฅผ ๋งค๋ฒ ์์ฑํด์ผ ํจ
์์ ์ฝ๋๋ ๋ฆฌ์กํธ์์ input๊ฐ์ ๋ณํ์ํค๊ธฐ ์ํด ์์ฑํ๋ ์ฝ๋์ด๋ค. input
ํ๊ทธ์ value์ดํธ๋ฆฌ๋ทฐํธ๊ฐ์ผ๋ก state์ ์ด๊ธฐ๊ฐ์ด ""์ด ํ ๋น์ด ๋๋ค.
์ฌ์ฉ์๊ฐ input์ ๊ฐ์ ๋ณ๊ฒฝํ๊ฒ ๋ ๋ onChangeํจ์๊ฐ ์คํ๋์ด state๊ฐ์ ๋ณ๊ฒฝํ๊ฒ ๋๋ค. ์ด๋ก์จ ์ฌ์ฉ์๋ ๋ณ๊ฒฝ๋ input๊ฐ์ ๋ณผ ์ ์๋ค.
๋ง์ฝ onChangeํจ์๊ฐ ์๋ค๋ฉด ์ฌ์ฉ์๋ ๋ณ๊ฒฝ๋ input๊ฐ์ ๋ณผ ์ ์๋ค.
์ฆ, ์ฌ์ฉ์๊ฐ ๋ณ์๋ฅผ ์ง์ ์ ์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์๋๋ผ ์์ฑ๋ JS ํจ์๋ฅผ ํตํด ๋ณ๊ฒฝ์ ๊ฐ์งํ์ฌ ๋ณ์์ ๊ฐ์ ๋ฐ๊พผ๋ค.
๋๋ ๋ฆฌ์กํธ์์ Form
ํ๊ทธ์ input
ํ๊ทธ๋ฅผ ๋ค๋ฃฐ ๋ ์์ ๋ฐฉ๋ฒ์ผ๋ก ์์ฑํ์ง ์๊ณ useForm
์ด๋ผ๋ ์์ฃผ ์ข์ ํจ์ง์ง ๋ชจ๋ธ์ ์ฌ์ฉํ๋ค.
์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ
MVC ํจํด์์ ๋ทฐ์ ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํํ๋ ๊ฒ
์ฌ์ฉ์์ ์ ๋ ฅ๊ฐ์ ๋ฐ๋ผ js์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๊ณ , js์ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ฌ์ฉ์์ ํ๋ฉด๋ ๋ณ๊ฒฝ
HTML -> JS, JS -> HTML ์์ชฝ ๋ชจ๋ ๊ฐ๋ฅ
์ ๋ ฅ๋ ๊ฐ์ด๋ ๋ณ๊ฒฝ๋ ๊ฐ์ ๋ฐ๋ผ ๋ด์ฉ์ด ๋ฐ๋ก ๋ฐ๋๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์ฒดํฌํด์ฃผ์ง ์์
์๋ง์ ์ฝ๋์ ์์ ์ค์ฌ์ฃผ๊ณ ์ ์ง๋ณด์๋ ์ฝ๋๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋งค์ฐ ์ฝ๊ฒ ํด์ค
vue.js์ ์์
V-model๊ณผ V-on์ ํตํด ์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ํ๋ค.
V-model์ด DOM ์ฐ๊ด๋ ๋ด์ฉ์ ์ก์๋ด๊ณ , vue๊ฐ ๋ฐ๋ผ๋ณด๋ ๋์์ ์์ฑ๊ณผ ์ฐ๊ฒฐ๋๋ค.
V-on์ ์ด๋ฒคํธ๋ฅผ ์ก์๋ด๋ ๋ฐ ์ฌ์ฉํ๋ค.
๊ฐ์ ๋ (Virtual DOM)์ ์๋์ ํํธ์์ ์ข๋ ์์ธํ ๋ค๋ฃฌ๋ค. ๊ฐ์ ๋ (Virtual DOM)๋ฐ๋ก๊ฐ๊ธฐ
JSX์ ์๋์ ํํธ์์ ์ข๋ ์์ธํ ๋ค๋ฃฌ๋ค. JSX๋ฐ๋ก๊ฐ๊ธฐ
๋น ๋ฅธ ์ ๋ฐ์ดํธ์ ๋ ๋๋ง ์๋
Virtual DOM๋ฅผ ํตํด ๋น ๋ฅธ ์ ๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅํ๋ค.
๋ฆฌ์กํธ๋ DOM๋ฅผ ์ง์ ์์ ํ๋ ๊ฒ์ด ์๋๋ผ ์ ๋ฐ์ดํธํด์ผ ํ ์ต์ํ์ ๋ถ๋ถ๋ง์ ์ฐพ์์ ์ ๋ฐ์ดํธํ๋ค.
์ปดํฌ๋ํธ ๊ธฐ๋ฐ ๊ตฌ์กฐ
๋ฆฌ์กํธ๋ก ๊ฐ๋ฐ๋ ์น์ฌ์ดํธ๋ ์๋ง์ ์ปดํฌ๋ํธ์ ์กฐํฉ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ด ์ปดํฌ๋ํธ๊ฐ ๊ฐ์ง๊ณ ์๋ ์ฅ์ ์ ๊ทธ๋๋ก ๊ฐ์ง๊ณ ์๋ค.
์ฌ์ฌ์ฉ์ฑ
์ฌ์ฌ์ฉ์ฑ์ด๋ผ๋ ๊ฒ์ ๋ค์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ ์ฑ์ง์ ์๋ฏธํ๋ค.
์ฌ์ฌ์ฉ์ฑ์ผ๋ก ์ธํด ์ ์ฒด ์ํํธ์จ์ด์ ๊ฐ๋ฐ ๊ธฐ๊ฐ์ด ๋จ์ถ๋๋ค.
์ฌ์ฌ์ฉ์ฑ์ผ๋ก ์ธํด ์ ์ง ๋ณด์๊ฐ ์ฉ์ดํ๋ค.
์ฌ์ฌ์ฉ์ฑ์ด ๋๋ค๋ ๊ฒ์ ์ฌ๋ฌ ๋ชจ๋ ๊ฐ์ ์์กด์ฑ์ด ๋ฎ๊ธฐ ๋๋ฌธ์ ๊ฐ ๋ถ๋ถ๋ค์ด ์ ๋ถ๋ฆฌ๋์ด ์๊ณ ์ฝ๊ฒ ๋ฒ๊ทธ๋ฅผ ์ฐพ์์ ์์ ํ ์ ์๋ค.
ํ๋ฐํ ์ง์ ๊ณต์ & ์ปค๋ฎค๋ํฐ
๋ฆฌ์กํธ์ ๊ฒฝ์ฐ github Star๊ฐ ๋ชจ๋ ์คํ์์ค๋ฅผ ํตํ์ด ์ต์์๊ธ ์์น๋ฅผ ๋ณด์ด๊ณ ์๋ค.
์คํ์ค๋ฒํ๋ก ์น์ฌ์ดํธ์์๋ ๋ฆฌ์กํธ ๊ด๋ จ ์ง๋ฌธ์ด 35๋ง๊ฐ ์ด์ ๋ฑ๋ก๋์ด ์๋ค.
๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ ๊ฐ๋ฅ
๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ๋ผ๋ ๋ชจ๋ฐ์ผ ํ๊ฒฝ UI ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ฐ์ผ ์ฑ๋ ๊ฐ๋ฐํ ์ ์๋ค.
๋ฐฉ๋ํ ํ์ต๋
์๋ก์ด ๋ฒ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ฉด ์ด์ ๋ํ ๋ด์ฉ์ ํ์ตํ๊ณ ์์งํ๊ณ ์์ด์ผ ์ค๋ฌด ํ๊ฒฝ์์ ์ํํ๊ฒ ์์ ํ ์ ์๋ค.
๋์ ์ํ ๊ด๋ฆฌ ๋ณต์ก๋
state๋ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ์ ์ํ๋ฅผ ์๋ฏธํ๋๋ฐ ์น์ฌ์ดํธ์ ๊ท๋ชจ๊ฐ ์ปค์ ธ ์ปดํฌ๋ํธ์ ๊ฐ์๊ฐ ๋ง์์ง๋ฉด ์ํ ๊ด๋ฆฌ์ ๋ณต์ก๋๋ ์ฆ๊ฐํ๋ค.
ํฐ ๊ท๋ชจ์ ํ๋ก์ ํธ์์๋ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํด์ Redux, MobX, Recoil ๋ฑ์ ์ธ๋ถ ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
๋ฆฌ์กํธ๋ CSR์ ๋๋๋ง ๋ฐฉ์์ ์ฑํํ๊ณ ์๊ธฐ ๋๋ฌธ์ CSR์ ๋จ์ ์ ๊ฐ์ง๊ณ ์๋ค.
IE8 ์ดํ๋ ์ง์์ด ์๋๋ค.
View ๋ง์ ๊ด๋ฆฌํ์ฌ ๊ทธ ์ด์ธ์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๋ฑ์ ์ง์ ๊ตฌํํ๊ฑฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
์ด๋ฒ ์ฑํฐ๋ฅผ ๊ณต๋ถํ๋ฉด์ ์๋ ๊ฐ๋ ๋ฐ ์ฉ์ด๊ฐ ๋์์ ๋ง์ด ์น์ํ์ง๋ง, ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ, ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ๊ฐ๋ ์ ์ดํดํ๋๋ฐ์๋ ๋ง์ ์ด๋ ค์์ ๊ฒช์๋ค. ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ์ ์ผ์ถ ์ดํด๊ฐ ๋์์ง๋ง ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ ์ค ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ด ๋ฆฌ์กํธ์์ ์ด๋ป๊ฒ ์ฐ์ด๋์ง ์ด๋ค ๊ฐ๋ ์ธ์ง๋ฅผ ์ดํดํ๋ ๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค.(์ง๊ธ๋ ์ ํํ ์๊ณ ์๋์ง ๋ชจ๋ฅด๊ฒ ๋ค.) ์ฌ๋ฌ ๋ธ๋ก๊ทธ๋ค์ ์ฐพ์๋ณด๊ณ ์ ํ๋ธ๋ ์ฐพ์๋ดค์ง๋ง ๋ฏธ๋ฌํ๊ฒ ์ ๊ฐ๊ธฐ ๋ค๋ฅธ ์ด์ผ๊ธฐ๋ฅผ ํ๊ณ ์๋ ๊ฒ ๊ฐ์ ๋ต๋ตํ ๋ง์์ด ๋ค์๋ค. ๋ค ๋์ ๊ณต๋ถ๊ฐ ๋ถ์กฑํ ์ด์ ๊ฒ ์ง.. ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ๊ณต๋ถํ๋ฉด์ ์๋ฌธ์ด ๋ค์๋ ์ ์ ๋ฆฌ์กํธ์ ํจํค์ง ๋ชจ๋ ์ค
useForm
์ผ๋ก ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ๋จ์ ์ ํด๊ฒฐํ ์ ์์ง ์์๊น ํ๋๋ฐ, ๊ฒฐ๊ตญuseForm
์์ ์ฌ์ฉํ๋getValue()
,watch()
๋ฉ์๋์ ๊ฒฝ์ฐ๋ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ข๋ ํธ๋ฆฌํ๊ณ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด๋ผ ๋๋ฆ ๊ฒฐ๋ก ์ ๋ด๋ ธ๋ค. VueJS๋ ์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ๋ฐฉ์์ด๋ผ๊ณ ํ๋๋ฐ ์ค์ ์ฝ๋๋ฅผ ๋ด๋ ์ดํด๊ฐ ์ ๋์ง ์์ VueJS์ ์ ๋ค๋ฃจ๋ ๋ถ์๊ฒ ์ด์ง ๋ถํ์ ๋๋ ค์ผ ๊ฒ ๋ค.
๋ฆฌ์กํธ๋ ๋ฌด์์ธ์ง ์์๋ณด๊ณ , ๋ฆฌ์กํธ์ ํน์ง์ ๋ํด์ ์ดํด๋ด ๋๋ค. ์ต๊ทค๋ฌ(Angular) ๋? ํน์ง ๋ฐ ์ฅ๋จ์ ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ ์ ์ธํ VS ๋ช ๋ นํ, ๋ฆฌ์กํธ๊ฐ ์ ์ธํ์ธ ์ด์ ๋ช ๋ นํ ํ๋ก๊ทธ๋๋ฐ vs ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์ดํด ์๋ฐฉํฅ/๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ [WEB] ์๋ฐฉํฅ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ [React] React ๊ฐ๋ ๋ฐ ์ฅ๋จ์ ๋์ - ์ํ์ ์ฒ์ ๋ง๋ ๋ฆฌ์กํธ
๐ 2022-07-15