๊ผญ Create React App์ ์ฌ์ฉํด์ผ ํ๋ ๊ฒ์ ์๋๊ณ , ์ง์ script๋ฅผ ์์๋ก ์ถ๊ฐํด์ ์ฌ์ฉํด๋ ๋ฌด๋ฐฉํ๋ค (๋จ์ง ํ๋ก์ ํธ ํ๊ฒฝ ์ค์ ์ ์ฝ๊ฒ ๋์์ค ๋ฟ์ด๋ค.)
React ํ๋ก์ ํธ๋ฅผ ์์ฝ๊ฒ ์์ฑํ ์ ์๋๋ก ๋์์ฃผ๋ '๋ณด์ผ๋ฌํ๋ ์ดํธ(Boilerplate)'
์ ๋ง์ React์ฉ ๋ณด์ผ๋ฌํ๋ ์ดํธ๊ฐ ์์ง๋ง Facebook์์ ์ง์ ๋ง๋ค์ด ๊ด๋ฆฌํ๋ ๋ณด์ผ๋ฌํ๋ ์ดํธ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ค.
ํ๋ก์ ํธ ์์ฑ์ ํ์ํ ๋ค์ํ ๊ธฐ๋ฅ์ Command๋ก ์ ๊ณตํ๋ค.
Transcompile์ด๋?: ๋ธ๋ผ์ฐ์ ์์ ํด์ํ ์ ์๋ JS ๋ฒ์ ์ด ๊ฐ๊ฐ ๋ค๋ฅธ๋ฐ, ์ด๋ฅผ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ํด์ํ ์ ์๋๋ก ๋ณํ์ ํ๋ ์์ .
- ์ฃผ๋ก ์๋ฒ ํ๋ก๊ทธ๋๋ฐ์ ์ฌ์ฉ๋๋ JavaScript ๊ธฐ๋ฐ์ ์ํํธ์จ์ด ํ๋ซํผ
- 2009๋ ๋ฐํ, 2021๋ ๊ธฐ์ค v16๊น์ง ์ ๋ฐ์ดํธ ๋์ด์๋ค.
- ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ์๋ฒ ๊ฐ๋ฐ ์ ๊ทผ์ฑ์ ๋์ฌ์ฃผ์๋ค.
- HTTP ํต์ ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ด์ฅํ๊ณ ์๋ค.
- NPM์ ํตํ ๋ฐฉ๋ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ๋ค.
- Create React App์ผ๋ก ํ๋ก์ ํธ ์์ฑ ์ ๊ฐ๋ฐ ํ๊ฒฝ ๋ฐ ํ ์คํธ ์๋ฒ๋ก ์ด์ฉ๋๋ค.
- Node.js ํ๊ฒฝ์์ ์ฌ์ฉํ๋ ๊ฐ์ข ํจํค์ง๋ค์ ๊ด๋ฆฌํ๋ ์ ์ฅ์.
- Node.js ์ค์น ์ ํจ๊ป ์ค์น๋๋ค.
- ํจํค์ง ๊ด๋ฆฌ ๋ฟ๋ง ์๋๋ผ ์๋ฒ ์คํ ๋ฐ ๊ด๋ฆฌ์ ํ์ํ ๋ค์ํ๊ณ ํธ๋ฆฌํ ๋ช ๋ น์ด๋ฅผ ์ ๊ณตํ๋ค.
- React์์ ์ฌ์ฉ๋๋ ๋ค์ํ ๋ชจ๋๋ค์ด NPM์์ ๋ฐฐํฌ๋๊ณ ์๋ค.
Node.js๋ฅผ ์ค์นํ ๊ฒฝ์ฐ, ์์ ์ ์ธ LTS(Long-Term-Support) ๋ฒ์ ์ ์ค์นํ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
bash
npx create-react-app <dir name> cd <dir name> npm start
- npx: npm ํจํค์ง๋ฅผ 1ํ์ฑ์ผ๋ก ๋ด๋ ค ๋ฐ์ ์คํํ ๋ ์ฌ์ฉํ๋ ๋ช ๋ น์ด.
- cd: ๋๋ ํ ๋ฆฌ ๋ช ์ผ๋ก ์ด๋ํ๋ค.
- npm start: ํ์ฌ ๋๋ ํ ๋ฆฌ์ ํ๋ก์ ํธ๋ฅผ ์คํํ๋ค.
npm install(ํน์ i) npm install ํจํค์ง๋ช npm start npm bulid (ctrl + c)
npm install: package.json์ ์ ์๋ depnedency(์์กด์ฑ ํจํค์ง)๋ค์ ์ค์นํ๋ค.
npm install ํจํค์ง๋ช : npm ์๋ฒ๋ก๋ถํฐ ์ํ๋ ํจํค์ง๋ฅผ ๋ด๋ ค ๋ฐ๋๋ค.
npm start: ํ๋ก์ ํธ๋ฅผ ์คํ(Node.js ์๋ฒ ์ด์ฉ.)
npm build: ํ๋ก์ ํธ๋ฅผ ๋น๋
(Ctrl + C): ๋ช ๋ น์ ์ค์งํ๋ค.(npm start ํ ์ข ๋ฃํ๊ธฐ).
bash
npm install //package.json ํ์ผ ๋ด์ ์ ์๋ ํจํค์ง ๋ชจ๋ ์ค์น npm install ํจํค์ง๋ช //npm ์๋ฒ๋ก๋ถํฐ ํจํค์ง ๋ด๋ ค๋ฐ๊ธฐ npm install ํจํค์ง๋ช @version //ํน์ ๋ฒ์ ์ ํจํค์ง ๋ด๋ ค๋ฐ๊ธฐ npm install Git ๋ ํฌ์งํ ๋ฆฌ ์ฃผ์ //npm์ด ์๋ Git ๋ ํฌ์งํ ๋ฆฌ๋ก๋ถํฐ ํจํค์ง ๋ด๋ ค๋ฐ๊ธฐ
dependencies(์์กด์ฑ)๋ผ๋ ํค ์๋์ ์ค์นํ ํจํค์ง ๋ชฉ๋ก์ด ๋์ด๋๋ค.
JS
1. CSS๋ importํ๋ ๊ฒ ๋ง์ผ๋ก ์ญํ ์ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ ๊ฒฝ์ฐ ํจํค์ง๋ช ๋ฐ๋ก import import 'ํจํค์ง๋ช ' 2. ๊ธฐ๋ณธ์ ์ผ๋ก ํจํค์ง๋ฅผ ๋ถ๋ฌ์ ํ์ฉํ ๋์๋ ํ ๋นํ ์ด๋ฆ์ ์์ฑ import something from 'ํจํค์ง๋ช ' 3. ํจํค์ง ๋ด์ ์ผ๋ถ ๋ฉ์๋๋ ๋ณ์๋ง ๊ฐ์ ธ์ฌ ๋๋ ๊ตฌ์กฐ๋ถํดํ ๋น์ผ๋ก import import { a, b } from 'ํจํค์ง๋ช ' 4. ํจํค์ง์ default๋ก export๋๋ ๊ฐ์ฒด๊ฐ ์กด์ฌํ์ง ์์ ๊ฒฝ์ฐ * as '์ด๋ฆ'์ผ๋ก ๋ถ๋ฌ์ import * as something from 'ํจํค์ง๋ช ' 5. ๋ณ๋์ CSS ํ์ผ์ ์์ฑ ํ ํ๋ก์ ํธ์ ์ ์ฉํ ๊ฒฝ์ฐ, import์ ์คํ์ผ ์ ์ฉ import './App.css';