
๋ชฉ์ฐจ
1. ๋ฆฌ์กํธ(React)
2. ๋ฆฌ์กํธ ์ฌ์ฉ์ด์ ์ VitrualDOM(๊ฐ์๋)
3. terminal์์ ์ด๊ธฐ ์ค์ ํ๊ธฐ
1. ๋ฆฌ์กํธ(React)
"์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ"
๋ฆฌ์กํธ๋ ์๋ฐ์คํธ๋ฆฝํธ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
"SPA(Single Page Application)"
SPA๋ ์๋ง์ ์น ํ์ด์ง๋ฅผ ๋ก๋ฉํ ๋ ์ต์ ์
๋ฐ์ดํธ๋ฅผ ์ ์ํ๊ฒ ๋ฐ์ํ๋ฉฐ,
ํ์ด์ง ๋ก๋ฉ ์๋๋ฅผ ํฅ์์ํค๊ณ ํธ๋ํฝ์ ์ค์ธ๋ค.
๋ฐ๋ผ์ ํ์ด์ง๊ฐ ๋ถ๋๋ฝ๊ฒ ์ ํ๋๋๋ก ํ๊ณ , ์
๋ฐ์ดํธ๊ฐ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ์ ๋จ์ถ์ํจ๋ค.

"ft. Meta"
Meta๊ฐ ๋ง๋ ์คํ ์์ค ๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ.
๋ ๋ ํ ์ง์๊ตฐ์ธ Meta๋์ ์น ๊ฐ๋ฐ ์์ฅ์์ ์ฝ๊ฒ ๋ฌด๋์ง ์ผ์ ์๋ค๋ ๊ฒ,!
https://github.com/facebook/react
GitHub - facebook/react: The library for web and native user interfaces.
The library for web and native user interfaces. Contribute to facebook/react development by creating an account on GitHub.
github.com
2. ๋ฆฌ์กํธ ์ฅ์ & VirtualDOM(๊ฐ์๋)
๋ฆฌ์กํธ ๊ณต๋ถ๋ฅผ ์์ํ๋ฉด์ ๊ฐ์ฅ ์๋ฌธ์ด ๋ค์๋ค.
๋์ฒด ์ ์ฌ์ฉํ๋๊ฑด๊ฐ..???
1. ๋น ๋ฅธ ์
๋ฐ์ดํธ / ๋ ๋๋ง
๐ก Virtual DOM (๊ฐ์๋) ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ
Virtual DOM (๊ฐ์๋)
: ์น ํ์ด์ง์ ์ค์ DOM์ฌ์ด์์ ์ค๊ฐ ๋งค๊ฐ์ฒด ์ญํ ์ ํ๋ค.
virtual DOM์ ์
๋ฐ์ดํธ ํด์ผ ํ ์ต์ํ์ ๋ถ๋ถ๋ง ๊ฒ์ํ์ฌ ์
๋ฐ์ดํธํ๊ณ ๋ค์ ์๋ฐ์คํธ๋ฆฝํธ๋ก ๋ ๋๋งํ๋ค.
์ฆ, DOM์ ์ง์ ์์ ํ์ง ์๋๋ค.

๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ์ DOM์ ์กฐ์ํ๋ ๋ฐฉ์์ ๋ฌด๊ฑฐ์ด ์๋๋ฐฉ์์ด๋ค.
์ค์ DOM์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ํ๋ฉด์ ๊ทธ๋ฆฌ๋๋ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๊ฐ ๋ค์ด์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ ๋ฆฌ์กํธ๋ ๊น๋นก๊ฑฐ๋ฆผ ์์ด ๋ถ๋๋ฌ์ด UX๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๊ณ ์ ๋ณ๊ฒฝ์ฌํญ๋ง ๋น ๋ฅด๊ฒ ํ์
ํ๊ณ ๋ฆฌ๋ ๋๋ง ํ๊ธฐ ์ํด DOM์ ๋ง๋ค์ด ๋น๊ตํ๋ ๋ฐฉ์์ ์ฑํํ ๊ฒ์ด๋ค.
๋ฆฌ์กํธ๋ ์ฑ๋ฅ ํฅ์์ ์ํด ์ค์ ๋ ๋๋ง๋ UI๋ฅผ ๋ด๋ถ์ ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ก ๋ฐ๋ก ๊ด๋ฆฌํ๋ค.
์ง์ DOM ๋
ธ๋๋ฅผ ์์ฑํ๊ฑฐ๋ ์ ๊ทผํด์ ๋ณ๊ฒฝ์ ํ๋ ๊ฒ์ด ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ก ํํ๋ DOM ํธ๋ฆฌ๋ฅผ ์กฐ์ํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค.
*ํ์ง๋ง ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด๋ฅผ ๋ฐ๋ก ๊ด๋ฆฌํ๋ฉด์ ์๊ธฐ๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ์ฆ๊ฐ์ ๋จ์ ์ด ์กด์ฌํ๋ค.
Virtual DOM (๊ฐ์๋)์ ์ฌ์กฐ์ ๊ณผ์
๋ฆฌ์กํธ๋ ์ค์ DOM์ UI๋ฅผ ๊ฐ์ง ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ๊ฐ์ง๊ณ ์๋ค.
๊ฐ์ ๋์ ๋ณํ๋ฅผ ๊ฐ์งํ๋ฉด ์ฌ์กฐ์ (Reconcilation)๊ณผ์ ์ ํตํ์ฌ ์ค์ DOM๊ณผ ๋๊ธฐํ ํ๋ค.
์ฌ์กฐ์ ๊ณผ์ ์ ํฌ๊ฒ 3๋จ๊ณ๋ก ๋๋๋ค.
1. UI๊ฐ ๋ณ๊ฒฝ์ ๊ฐ์งํ๋ฉด, UI๋ฅผ Virtual DOM์ผ๋ก ๋ ๋๋งํ๋ค.
(์ด๋ ๋ ๋๋ง์ ์ค์ ํ๋ฉด์ ๋ ๋๋ง์ด ์๋, ๋น๊ต๋ฅผ ์ํ ๊ฐ์ ๋ ๋๋ง)
2. ํ์ฌ Virtual DOM๊ณผ ์ด์ Virtual DOM์ ๋น๊ตํด์ ์ฐจ์ด๋ฅผ ๊ณ์ฐํ๋ค.
3. ๋ณ๊ฒฝ๋ ๋ถ๋ถ๋ง ์ค์ DOM์ ๋ฐ์ํ๋ค.
2. ์ปดํฌ๋ํธ ๊ธฐ๋ฐ
์ปดํฌ๋ํธ ๋จ์๋ก ๊ฐ๋ฐ, ์กฐ๋ฆฝํ๋ค.
3. ์ฌ์ฌ์ฉ์ฑ
ํด๋น ๋ชจ๋์ด ๋ค๋ฅธ ๊ณณ์๋ ์ฝ๊ฒ ์ฐ์ผ ์ ์๋๋ก ํด์ค๋ค.
์ด๋ ๋ค๋ฅธ ๋ชจ๋์ ์์กด์ฑ์ ๋ฎ์ถฐ์ผํ๋ค.
3. ๋ฆฌ์กํธ ์ด๊ธฐ ์ค์ ํ๊ธฐ
๋๋ visual studio์ terminal์ ์ฌ์ฉํ๋ค.
create-react-app(CRA)๋ฅผ ์ฌ์ฉํ๋ค.
: ํ๋ก์ ํธ ์์ฑ๋๊ตฌ, ๋ฆฌ์กํธ๋ก ํ๋ก์ ํธ๋ฅผ ์คํํ๋๋ฐ์ ํ์ํ ๋ชจ๋ ์ค์ ์ด ๋์ด์์.
1. ํฐ๋ฏธ๋์ ์๋์ cmd๋ฅผ ์
๋ ฅํ๋ค.
"npx create-react-app <ํ์ผ๋ช
>"
์
๋ ฅํ๋ฉด, ์๋์ ๊ฐ์ด ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ํ๊ฒ ๋ค๋ฉฐ ์งํํ๊ฒ ๋๊ณ ๋ฌป๋๋ค. y ํ์ดํ!

์ดํ์ ์ด๊ฒ์ ๊ฒ ํ์ํ ํจํค์ง ์ค์น๋ฅผ ์คํํ๊ณ , ์๋ฃํ๋ฉด ํ๋ฉด๊ณผ ๊ฐ์ด ๋ฆฌ์กํธ ์น ์ดํ๋ฆฌ์ผ์ด์
์ด ์์ฑ๋๋ค.

ํ๋ก์ ํธ ์์ฑ์ด ์๋ฃ๋๋ฉด,
์น ์ ํ๋ฆฌ์ผ์ด์
์์ ์คํํ ์ ์๋ ์ฌ๋ฌ๊ฐ์ง ๋ช
๋ น์ด๋ฅผ ๋ณด์ฌ์ฃผ๋ฉฐ, ์ฑ๊ณตํ๋ค๋ ๋ฉ์์ง๋ฅผ ๋ณด์ฌ์ค๋ค.
์ด์ด์ ์๋์ cmd๋ก ๋ฐฉ๊ธ ๋ง๋ ํด๋๋ก ๊ฒฝ๋ก๋ฅผ ๋ณ๊ฒฝํ๋ค.
" cd <ํ์ผ๋ช
>"
์ด์ด์ ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ๋ค.
"npm start"


๊ทธ๋ผ ์๋์ผ๋ก ๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ฆฌ๊ณ , React ๋ก๊ณ ๊ฐ ๋น๊ธ๋น๊ธ ๋์๊ฐ๋ค..โบ๏ธ
์ฑ๊ณต์ ์ผ๋ก localhost:3000์ผ๋ก ์ฐ๊ฒฐ๋ ๊ฒ์ ํ์ธํ ์์๋ค.
