나의 발자취

React 사전준비: 필요 라이브러리 및 패키지 본문

Frontend

React 사전준비: 필요 라이브러리 및 패키지

달모드 2025. 3. 20. 17:28

Node.js and npm

nvm을 이용해서 설치를 권장한다.

 

 

 

Yarn

Node, npm도 훌륭한 패키지 매니저긴 하지만, 페이스북에서 만든 yarn은 리액트를 좀더 쉽게 이용할 수 있도록 더 간결한 커맨드와 더 나은 캐싱을 제공하여 더 좋은 성능을 보인다. 

 

npm install --global yarn

npm i -g yarn

을 사용해서 설치하면 된다.

 

 

Babel

리엑트 기반의 프로젝트를 만들 때 의존성(dependency)용으로만 사용된다(npm package임). 바벨은 이슈 없이 모던 브라우저의 기준에 맞지 않거나 표준화되지 않은 자바스크립트가 실행될 수 있도록 transpile 과정을 도와주는 역할이다. (transpiling: 소스 코드의 언어를, 기능적으로 완전히 똑같게 다른 언어로 바꾸는 과정을 말함. 여기선 JSX or ES2015+를 어느 브라우저에서든 유효하고 실행 가능한 자바스크립트로 변환하는 것을 뜻함.) 

 

바벨은 코어 모듈(@babel/core)로 이루어저있는데, 보통 플러그인들은 프리셋들로 그룹이 지어져있다. 

Note: Before Babel’s version 7 was released, this organization did not exist, and hyphens separated the packages. @babel/preset-react was called babel-preset-react, @babel/core was named babel-core, and so on.

 

그러므로 @babel/core가 아닌 babel-core라고 써져있어도 당황스러워하지 말자.( 이 경우 바벨 6 버전 이하라는 것이다.) 그러나 개발자에 따라 바벨 7과 호환이 되는데도 babel-을 사용하는 사람도 있다. 이때는 어떤 일때문에 그런지 readme를 확인하면 된다.

 

여기서 권장하는 리엑트 프리셋은 아래와 같다.

  • @babel/preset-env
  • @babel/preset-react
  • @babel/plugin-proposal-object-rest-spread
  • @babel/plugin-proposal-class-properties
  • @babel/plugin-syntax-dynamic-import

만약  Flow TypeScript와 같은 정적 타입을 작업할 때엔 @babel/preset-flow 혹은 @babel/preset-typescript 도 설치해야 한다(respectively).

 

npm install --save dev [package]

yarn add --dev [package]

 

로 설치 (--dev 나 --save dev는 devDependency에만 추가한다는 것이라 production code에는 추가되지 않을 것을 뜻함)

 

 

Webpack

웹팩은 리액트 생태계에서 제일 중심을 이루는 도구 중 하나다. 이게 없으면 리액트에서 효율적인 워크플로우는 불가능하다고 볼 수 있다. 웹팩은 모듈 번들러인데, Node.js같은 모듈 기반의 개발을 브라우저로 가져온 것이다. 이를 통해 앱 코드를 자체 파일에 깔끔하게 구조화하고, import 또는 require()를 통해 종속성을 사용할 수 있다. 이렇게 하면 종속성이 자체 모듈 범위에 로드되어서 모듈 내에서 사용할 수 있고, 결국 단일 자바스크립트 파일만 생성된다.

 

 

ESLint

정적 코드 분석에 필요한 도구이다. 거의 de-facto 스탠다드로 쓰이는. 리액트 프로젝트에서 eslint-plugin-react, eslint-plugin-babel, and eslint-plugin-react-hooks 와 같은 것들을 볼 수 있다.

 

Prettier

코드 포맷을 규칙적으로 교정해주는 툴 정도

 

브라우저 플러그인

크롬에 React Dev Tool, Redux Dev Tool이 있다. 

pc: educative

'Frontend' 카테고리의 다른 글

React 프로젝트 시작(CRA)  (0) 2025.03.20
web 관련 지식지도  (0) 2020.11.04
Comments