๋ฆฌ์กํธ๋ ๋ฌด์์ผ๊น?
๋ฆฌ์กํธ๋ ํ์ด์ค๋ถ์์ ๊ฐ๋ฐํ๊ณ ๊ด๋ฆฌํ๋ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค.
์ฌ๋๋ค์ด ๋๋ถ๋ถ ์คํดํ๊ณ ์๋๋ฐ, ๋ฆฌ์กํธ๋ ํ๋ ์์ํฌ๊ฐ ์๋๋ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ ์ฌ๋ฌ javascript ํ๋ ์์ํฌ๋ค๊ณผ ํ์คํ ๋ค๋ฅด๋ค.
์ฌ๋๋ค์ด ์คํดํ๋ ๋ ๋ค๋ฅธ ๋ด์ฉ์ React๋ ์น ๊ฐ๋ฐ์ ๋ชจ๋ ๊ฒ์ ์ ๊ณตํ๋ค๊ณ ์๊ณ ์๋๋ฐ, ์ฌ์ค React๋ UI๋ฅผ ์กฐ๊ธ ๋ ํจ์จ์ ์ผ๋ก ๊ตฌ์กฐ์ ์ผ๋ก ์์ฑํ ์ ์๊ฒ ํด์ฃผ๋ UI๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
React ์ ๋ฌธํ๊ธฐ
์ฐ๋ฆฌ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๊ฐ๋ฐ์ ํ๊ธฐ ์ํด์ ์ฐ๋ฆฌ์๊ฒ ํ์ํ ๋ผ์ฐํ , ๋น๋ ํ๊ฒฝ ๊ตฌ์ฑ, ๋ถ์๋ฑ๊ณผ ๊ฐ์ ์ธํ ์ ์ง์ ๊ตฌ์ฑํด์ผ ํ๋ค๋ ์ ์ด ์๋ค.
์์ ์๋ ๊ฐ์ธ๋ค์ด ๋ด๋ Bolierplate ๋ฆฌ์กํธ์ ์์กดํด์ ๊ฐ๋ฐ์ ํ๋ค๊ณ ํ๋๋ฐ, ๊ทธ์ ๋ฐ๋ฅธ ๊ฐ๊ฐ ๋ค๋ฅธ ํ๊ฒฝ์ ๋ถํธํจ์ ๋๋ ๊ฐ๋ฐ์๋ค์ด ์์๊ณ , ๊ทธ ๋งํผ ์ง์ ์ฅ๋ฒฝ์ด ๋์๋ ๊ฒ๋ ์ฌ์ค์ด์๋ค. ํ์ง๋ง ๋ฆฌ์กํธ๋ฅผ ์ฐฝ์ํ ํ์ด์ค๋ถ์์๋ ์ง์ ์ฅ๋ฒฝ์ ๋ฎ์ถ๊ธฐ์ํด Create React App์ด๋ผ๋ ๊ฒ์ ์ ๊ณตํ๊ณ ์๋ค.
Create-React-App
Create-React-App์ ์ด์ฉํด์ ์ฐ๋ฆฌ๋ ํ๋๋ก ํตํฉ๋ ํจํค์ง์ ๊ฐ๋ฐ ํ๊ฒฝ์ ๋ค์ด๋ฐ์ ์ ์๊ฒ ๋๋ค.
Create-React-App์ ์ฌ์ฉํ๋ ค๋ฉด npmํ๊ฒฝ์์ ํฐ๋ฏธ๋๋ก
npm create-react-app app-name
์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด ์๋์ ๊ฐ์ ๊ฒ๋ค์ด ์๋์ ์ผ๋ก ๊ตฌ์ฑ์ด ๋๋ค.
๊ทธ๋ฌ๋ฉด ์๋์ผ๋ก
์๋์ ๊ฐ์ด ๋ง์ ํ์ผ๋ค์ด ์์ฑ์ด ๋๋ ๊ฒ์ผ ํ์ธํ ์ ์๊ฒ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ๋ฆฌ์กํธ๋ UI๋ฅผ ์๋์ผ๋ก ์ ๋ฐ์ดํธ์์ผ์ฃผ๋ *_UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ *_๋ผ๊ณ ํ์๋ค.
๊ทธ๋ผ ๊ทธ ๋ฆฌ์กํธ๊ฐ ์ด๋ป๊ฒ UI๋ฅผ ๊ด๋ฆฌํ๋์ง ํ์ธํด๋ณด์.
React๋ ์ด๋ป๊ฒ ๋์๊ฐ๊น?
npm create-react-app app-name
์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋ค index.html ํ์ผ์ ๋ค์ด๊ฐ๋ณด๋ฉด ์์ ๊ฐ์ ์ฝ๋๊ฐ ์กด์ฌํ๋๋ฐ,
์ด ๋ถ๋ถ์ ์ ์ฌํ ๋ด๋ณด์.
ํ๊ทธ๋ก ๋ฐ์ง๋ฉด <body> </body>
์ ์๋ ์ ์ผํ ํ๊ทธ์ธ <div></div>
ํ๊ทธ์์ root๋ผ๋ ์์ด๋๋ก ์ค์ ์ด ๋์ด์๊ณ , index.js๋ก ๋ค์ด๊ฐ๋ฉด
root๋ผ๋ ์๋ฆฌ๋จผํธ ์์๋ฅผ ๊ฐ์ ธ์ ReactDom์ด๋ผ๋ ๊ฐ์ ๋์ ์ํด์ ๊ด๋ฆฌ๊ฐ ๋๋ค.
๋ค์์ ๋ฐฐ์ฐ๊ฒ ๋ ๋ด์ฉ์ด์ง๋ง React๋ ๊ฐ์ ๋์ ์ด์ฉํด์ HTML ํ๊ทธ๋ฅผ root๋ผ๋ <div></div>
ํ๊ทธ ๋ด๋ถ์ ๊ฝ์ ๋ฃ๋๋ค๋ ๋๋์ผ๋ก ์งํ์ด ๋๋ค.
๋๊ธ