November 07, 2019
Node Package Manager의 약자
Node.js
의 다양한 라이브러리들을 관리해주는 도구
Python
에서 비슷한 도구로는 pip
가 존재한다.
-g
, global
)npm
으로 시작하는 명령어로 사용npx
와 같이 모듈 설치 없이 사용할 수 있게 해주는 툴 존재https://nodejs.org로 이동해서 운영체제와 맞는 버전을 설치한다.
node.js
버전 확인 명령어node --version
npm
버전 확인 명령어npm --version
위의 두 명령어가 잘 작동하면 문제없이 잘 설치된 것이다.
아래의 명령어를 터미널에 작성하면 따로 react
를 설치하지 않아도 앱이 생성된다.
npx create-react-app my-app
cd my-app
npm start
아래와 같이 React
앱이 잘 생성된 것을 확인할 수 있다.
my-app
폴더로 이동후 npm start
명령어를 사용하면 아래와 같은 앱이 실행된다.
새로운 React
앱을 생성하고 폴더를 보면 아래와 같은 구조로 되어있다.
node_modules
: 설치한 패키지들이 저장되어 있는 폴더App.js
와 index.js
, index.html
이 핵심이되는 파일이다.
public
폴더의 index.html
을 열어보면 body
태그는 아래와 같다.
noscript
태그와 root
라는id
값을 갖는 태그 하나 만 존재한다.
하지만 개발자 도구를 사용해서 소스코드를 확인하면 아래와 같이
index.html
에는 작성되어있지 않은 태그들이 존재하는 것을 확인할 수 있다.
index.html
과 이름이 비슷한 index.js
를 보면 아래의 코드가 작성되어 있다.
이 코드의 핵심 부분은 아래와 같다.
ReactDom
이 App
을 document
의 id
가 root
인 태그안에 랜더링한다는 의미다.
ReactDOM.render(<App />, document.getElementById('root'))
위의 코드를 아래와 같이 수정해보자.
ReactDOM.render(<h1>Hello World!</h1>, document.getElementById('root'))
우리가 작성한 <h1>Hello World!</h1>
가 root
안에 랜더링 되는 것을 볼 수 있다.
우리가 개발자 도구에서 보았던 컴포넌트는 App.js
에 아래와 같이 작성되어 있다.
App.js
를 아래와 같이 수정해보고 새로고침해보자.
import React from 'react'
import logo from './logo.svg'
import './App.css'
function App() {
return (
<div className="App">
<h1>Hello World!</h1>
<h2>ReactJS 둘러보기</h2>
</div>
)
}
export default App
우리가 작성한 HTML
태그들이 잘 보여지는 것을 확인할 수 있다.
우리가 작성한 App.js
의 구조는 아래와 같이 설명할 수 있다.
import React from 'react'
import logo from './logo.svg'
import './App.css'
App
인 함수형 컴포넌트function App() {
return (
<div className="App">
<h1>Hello World!</h1>
<h2>ReactJS 둘러보기</h2>
</div>
)
}
아래와 같이 export
로 내보낸 컴포넌트는 다른 파일에서 import
해 사용 가능하다.
default
는 이 파일에서 기본적으로 App
컴포넌트 하나만 export
한다는 의미다.
export default App