번들러(Bundler)는 여러 개의 파일 및 종속성을 하나의 파일로 결합하고 최적화하는 도구입니다. 리액트 프로젝트에서 번들러는 주로 JavaScript 파일들 및 다양한 리소스들을 하나의 번들로 묶어서 브라우저에서 효율적으로 로딩되도록 도와줍니다.
주요한 리액트 프로젝트에서 사용되는 번들러 중 하나는 Webpack입니다. Webpack은 모듈 번들러로서 JavaScript 파일 뿐만 아니라, CSS, 이미지, 폰트 등 다양한 유형의 파일도 처리할 수 있습니다. Webpack은 프로젝트의 각 모듈 및 종속성 간의 의존성을 해결하고, 필요한 리소스를 번들로 묶어주며, 코드를 최적화하여 성능을 향상시킬 수 있습니다.
Webpack은 일반적으로 다음과 같은 작업을 수행합니다:
- 번들링 (Bundling): 여러 개의 JavaScript 파일을 하나의 파일로 합칩니다. 이로써 브라우저는 한 번에 하나의 파일만 다운로드하면 되므로 네트워크 성능이 향상됩니다.
- 모듈 시스템 지원: ECMAScript 모듈 시스템(import 및 export 구문)을 사용한 코드를 번들할 수 있습니다.
- 로더 (Loaders): 다양한 유형의 파일을 처리할 수 있도록 하는 로더를 사용하여 CSS, 이미지, 폰트 등의 리소스도 번들에 포함시킬 수 있습니다.
- 코드 최적화: 코드 압축, 난독화, 경량화 등의 최적화 작업을 수행하여 번들의 크기를 최소화합니다.
- 동적 로딩 지원: 코드 분할을 통해 필요한 부분만 런타임에 로딩하여 초기 로딩 시간을 최소화합니다.
React 프로젝트에서는 주로 Create React App과 같은 도구를 사용하면 설정이 간단하게 이루어집니다. Create React App은 내부적으로 Webpack을 사용하며, 프로젝트를 시작할 때 필요한 설정들을 자동으로 처리해줍니다. 그렇지만 더 복잡한 프로젝트나 세부적인 설정을 원하는 경우 직접 Webpack 설정을 하게 될 수도 있습니다.
리액트를 불러오는 코드 하단에는 다음과 같이 SVG 파일과 CSS 파일을 import하는 코드가 있습니다.
import lgo from './logo.svg';
import './App.css';
웹팩을 사용하면 SVG 파일과 CSS 파일도 불러와서 사용할 수 있습니다. 이렇게 파일들을 불러오는 것은 웹팩의 로더(loader)라는 기능이 담당합니다. 로더는 여러 가지 종류가 있습니다. 예를 들어 css-loader는 CSS 파일을 불러올 수 있게 해 주고, file-loader는 웹 폰트나 미디어 파일 등을 불러올 수 있게 해 줍니다. 그리고 babel-loader는 자바스크립트 파일들을 불러오면서 최신 자바스크립트 문법으로 작성된 코드를 바벨이라는 도구를 사용하여 ES5 문법으로 변환해 줍니다.
'Front-end > React' 카테고리의 다른 글
[React] 키워드 추천 자동완성 기능 구현 (0) | 2024.11.08 |
---|---|
[React] 리액트 프로젝트 생성하기 create react-app (1) | 2023.11.25 |
[React] 훅(Hook) - useNavigate (0) | 2023.09.03 |
[React] 훅(Hook) - useRef (0) | 2023.09.03 |
[React] 훅(Hook) - useCallback (0) | 2023.09.03 |