Node.js 는 자바스크립트가 브라우저 밖(ex. 서버)에서도 동작하게 하는 환경을 의미한다. 리액트 애플리케이션은 웹 브라우저에서 실행되는 코드이므로 Node.js와 직접적인 연관은 없지만, 프로젝트를 개발하는 데 필요한 주요 도구들(ex. 바벨, 웹팩)이 Node.js 기반이기 때문에 반드시 설치해야 한다. Node.js를 설치하면 npm(node package manager) 이 자동으로 설치 되는데 npm을 사용하기 위해서는 노드(Node.js)가 설치되어 있어야 한다. 터미널에서 아래의 명령어를 실행 함으로써 Node.js 의 버전을 확인할 수 있다. 노드 버전이 정상적으로 확인되면 설치도 정상적으로 이루어진 것이다.
$ node -v
Node 기반의 패키지를 사용하려면 npm(node package manager)이라는 패키지 도구가 필요하다. npm 을 통해 다양한 패키지를 설치하고 버전을 관리할 수 있다. 마찬가지로 npm 버전을 확인하는 명령어를 통해 설치가 정상적으로 이루어졌는지 확인해볼 수 있다.
$ npm -v
Node.js 설치 후엔 위의 사진과 같이 터미널에 node -v, npm -v 명령어를 입력하여 버전을 체크하고 올바르게 설치 되었는지 확인한다.
: 리액트 프로젝트를 시작하는데 필요한 개발 환경을 세팅 해주는 도구(toolchain)
리액트는 UI 기능만 제공한다. 따라서 개발자가 직접 구축해야하는 것들이 많다. 전반적인 스스템을 직접 구축할 수 있으니 원하는 환경에 맞게 최적화할 수 있지만, 반대로 신경쓸 것이 많기 때문에 처음 시작하는 단계에서는 직접 개발 환경을 구축하기 어려울 수 있다.
리액트 팀에서는 이러한 문제를 해결하기 위해 CRA(Create-React-App)를 만들었다. CRA는 리액트로 웹 애플리케이션을 만들기 위한 환경을 제공한다. CRA를 이용하면 하나의 명령어로 리액트 개발환경을 구축할 수 있다.
If you’re learning React or creating a new single-page app, use Create React App.
참고) Create a New React App
CRA에는 바벨과 웹팩과 같이 리액트 애플리케이션 실행에 필요한 다양한 패키지가 포함되어 있으며, 테스트 시스템, ES6+ 문법, CSS 후처리 등 거의 필수라고 할 수 있는 개발 환경도 구축해 준다. 이러한 개발 환경을 직접 구축할 경우 시간이 오래 걸릴 뿐 아니라 유지 보수도 해야한다. CRA를 이용하면 개발 환경 세팅을 해주기 때문에 기존 기능을 개선하거나 새로운 기능을 추가했을 때 패키지 버전만 올리면 된다.
Create React App is a comfortable environment for learning React, and is the best way to start building a new single-page application in React.
It sets up your development environment so that you can use the latest JavaScript features, provides a nice developer experience, and optimizes your app for production.
Create React App doesn’t handle backend logic or databases; it just creates a frontend build pipeline, so you can use it with any backend you want. Under the hood, it uses Babel and webpack, but you don’t need to know anything about them.
참고) JavaScript build Toolchain
:: A JavaScript build toolchain typically consists of:
package manager
, such as Yarn or npm. It lets you take advantage of a vast ecosystem of third-party packages, and easily install or update them.bundler
, such as webpack or Parcel. It lets you write modular code and bundle it together into small packages to optimize load time.compiler
such as Babel. It lets you write modern JavaScript code that still works in older browsers.:: If you prefer to set up your own JavaScript toolchain from scratch, don’t forget to ensure your custom toolchain is correctly set up for production.
Desktop - project 폴더 진입
cd Desktop/project
react-app 설치
npx create-react-app my-project
my-project 폴더 진입
cd my-project
로컬 서버 띄우기
npm start
npx on the first line is not a typo — it’s a package runner tool that comes with npm 5.2+.
npm start 입력 시 http://localhost:3000 주소를 확인할 수 있다.
http://localhost:3000 접속 시 보여지는 첫 화면이다.
아래의 화면이 나타나면 본격적으로 리액트 프로젝트를 시작할 수 있다.
1) node.modules
2) package.json
"dependencies"
node.modules
폴더에 존재"scripts"
npm run start
.3) .gitignore
.gitignore
파일에 github 에 올리고 싶지 않은 폴더와 파일을 작성할 수 있다.push
를 해도 .gitignore
파일에 작성된 폴더와 파일은 올라가지 않는다.1) public - index.html
<div id="root"></div>
2) src - index.js
ReactDOM.render( <App /> , document.getElementById('root'))
3) src - App.js
<Routes />
컴포넌트가 최상위 컴포넌트로 그 자리에 위치하게 된다.1) public 폴더
2) src 폴더
reset.scss
- css 초기화commom.scss
- 공통으로 사용하는 css 속성 정의 (ex. font-family, theme color)