1. Node.js란?
Node.js 개요
Node.js는 브라우저 외부에서도 JavaScript를 실행할 수 있는 런타임 환경이다.
과거에는 JavaScript가 웹 브라우저에서만 실행되었지만, Node.js 덕분에 서버에서도 JavaScript를 실행할 수 있게 되었다.
Node.js의 주요 특징
V8 엔진 기반
- Node.js는 Google Chrome의 V8 JavaScript 엔진을 사용하여 빠르게 JavaScript를 실행한다.
비동기(Asynchronous) 처리
- 이벤트 기반 및 비동기 I/O 모델을 사용하여 네트워크 요청을 효율적으로 처리할 수 있다.
단일 스레드(Single-threaded) 모델
- Node.js는 단일 스레드이지만 이벤트 루프(Event Loop)를 통해 여러 작업을 동시에 처리할 수 있다.
|
2. NPM(Node Package Manager)이란?
NPM 개요
NPM(Node Package Manager)는 Node.js에서 JavaScript 라이브러리를 설치하고 관리할 수 있는 패키지 매니저다.
Node.js를 설치하면 기본적으로 함께 설치된다.
NPM 설치 확인
npm -v
3. NPM 패키지 관리
패키지 초기화 (package.json 생성)
npm init -y
- 위 명령을 실행하면 package.json 파일이 생성된다.
{
"name": "demo",
"version": "1.0.0",
"dependencies": {},
"devDependencies": {}
}
로컬 패키지 설치
npm install jquery
또는 축약형
npm i jquery
설치된 패키지는 node_modules/ 폴더에 저장된다.
전역 패키지 설치
npm install gulp --global
또는 축약형
npm i -g gulp
- C:\Users\{username}\AppData\Roaming\npm
- 글로벌로 설치된 패키지는 위 경로에 저장되며, 시스템 전체에서 사용 가능하다.
로컬(Local) vs 전역(Global) 패키지 설치 차이점
구분 | 로컬(Local) | 설치전역(Global) 설치 |
설치 명령어 | npm install <패키지명> npm i <패키지명> |
npm install -g <패키지명> npm i -g <패키지명> |
설치 위치 | 프로젝트 폴더 내 node_modules/ | 시스템 전체 (/usr/local/lib/node_modules 또는 %APPDATA%\npm\node_modules) |
사용 가능 범위 | 해당 프로젝트에서만 사용 가능 | 모든 프로젝트 및 전역에서 사용 가능 |
관리 위치 | package.json의 dependencies 또는 devDependencies에 기록됨 | package.json과 무관하게 설치됨 |
실행 방법 | 프로젝트 폴더 내에서 require('<패키지명>')로 사용 | 터미널에서 직접 명령어 실행 가능 |
예제 | npm install express → require('express')로 사용 |
npm install -g nodemon → nodemon app.js 로 실행 가능 |
언제 사용? | 프로젝트에 종속적인 라이브러리 (예: express, react) | CLI(Command Line Interface) 도구 (예: nodemon, gulp, webpack) |
4. NPM 커스텀 명령어 (Scripts)
NPM의 scripts 속성을 사용하면 커스텀 명령어를 정의할 수 있다
{
"scripts": {
"hello": "echo hi",
"dev": "node server.js",
"build": "webpack --mode=production"
}
}
실행 방법
npm run hello # hi 출력
npm run dev # 서버 실행
npm run build # 웹팩 빌드 실행
5. Webpack(웹팩)이란?
Webpack 개요
Webpack(웹팩)은 모듈 번들러(Module Bundler로,
JavaScript, CSS, 이미지 등을 하나의 번들 파일로 묶어 최적화하는 도구다.
Webpack이 필요한 이유
과거에는 <script> 태그를 사용하여 여러 개의 JavaScript 파일을 로드했다.
<script src="utils.js"></script>
<script src="app.js"></script>
<script src="main.js"></script>
- 하지만 파일이 많아지면 관리가 어려워지고, 로딩 속도가 느려지는 문제가 발생
- 웹팩을 사용하면 여러 개의 파일을 하나로 묶어 최적화할 수 있음
6. Webpack의 주요 개념
Entry(진입점)
웹팩이 번들링을 시작할 파일을 지정한다.
module.exports = {
entry: './src/index.js'
};
Output(출력)
번들링된 파일이 저장될 위치를 지정한다.
module.exports = {
output: {
filename: 'bundle.js',
path: __dirname + '/dist'
}
};
Loaders(로더)
웹팩은 JavaScript 외에도 CSS, 이미지 등을 변환할 수 있다.
module.exports = {
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
}
]
}
};
Plugins(플러그인)
웹팩 플러그인을 활용하면 빌드 과정을 더욱 자동화할 수 있다.
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
plugins: [
new HtmlWebpackPlugin({
template: './src/index.html'
})
]
};
이렇게 하면 dist/index.html 파일이 자동 생성된다.
7. Webpack 실행하기
Webpack 설치
npm install webpack webpack-cli --save-dev
Webpack 실행
package.json에 다음 스크립트를 추가
"scripts": {
"build": "webpack"
}
실행
npm run build
8. 정리
개념 | 설명 |
Node.js | JavaScript 실행 환경 (브라우저 외부 실행 가능) |
NPM | JavaScript 패키지 관리 도구 |
Webpack | JavaScript, CSS, 이미지 등을 하나로 묶는 번들러 |
Loaders | CSS, 이미지 등의 파일을 변환하여 사용 |
Plugins | HTML 자동 생성 등 추가 기능 제공 |
'FrontEnd' 카테고리의 다른 글
Vite vs Webpack 차이점과 선택 기준 (0) | 2025.03.14 |
---|---|
Webpack 개발 환경 구성 및 빌드 과정 (기초 흐름) (0) | 2025.03.14 |
lodash 사용법 및 유용 기능 총 정리 (0) | 2025.02.05 |
Axios에서 Config 객체를 활용한 적절한 HTTP 요청 방법 (0) | 2025.02.05 |
Vue3 - 컴포넌트 생명주기 (Composition API) (0) | 2024.02.29 |