# Dream Coding - React 3. Tools · Prerparation
## ==3.1 필요한 툴 설치==
## ==3.2 중요한 툴들 설명==
### Node.js
- JavaScript runtime enviornment (framework) that executes JavaScript code **outside a web browser
⇒ JavaScript everywhere**
### npm
- node package manager
- **Pubilish** and **share** course code of Node.js packages
- simplify installation, updating, and uninstallation of packages
- `package.json` 파일을 이용하여 npm을 이용하여 다운받은 해당 프로젝트의 library들을 관리
### npx
- tool for **executing packages**
### yarn
- package manager made by facebook
- built on top of npm to resolve some of npm's shortcomings (npm의 단점을 보완)
⇒ **faster, consistent, and secure**
- npm 과 호환이 가능함
## ==3.3 리액트 툴==
### create-react-app (cra)
- **hot module reloading** 지원 ( 코드의 변화를 감지하여 즉각적으로 재로딩 해주는 모듈)
```powershell
yarn create react-app my-app #my-app에는 앱 이름 적기
cd my-app
yarn start
```
### `yarn eject`
- 숨겨진 파일들을 다 공개하는 명령어 (되돌릴 수 없음)
## ==3.4 프로젝트 구조 설명==
### `manifest.json`
- pwa (progressive web app) 을 위해 필요한 파일
- 즉, 모바일 어플리케이션을 만들때 필요한 파일
### `index.js`
- 최상단에 위치한 js파일
### `.gitgnore`
- 깃에 추가하기 싫은 내용 (`node_modules` , 캐쉬 파일, 개인 파일)
## ==3.6 숨겨진 툴 설명==
### Babel
- 어느 선까지 변환할지 설정할 수 있음
- **convert** the latest ECMAScript ⇒ older version
### Webpack
- **Bundling** the code, JavaScript **module bundler**
### ESlint
- checking your code
### Jest
- delightful JavaScript testing framework
### PostCss
- expandable CSS libraries (CSS 전처리기)
- 많은 플러그인이 있어서, SCSS 에 비해서 훨씬 많은 일을 할 수 있음
- 현업에서 많이 사용