728x90
반응형
SMALL
Node.js와 Express를 사용한 웹 개발에서 자주 쓰이는 모듈들을 정리해봤습니다. 각 모듈의 역할과 사용 시점을 중심으로 설명합니다.
1. Node.js 내장 모듈
Node.js에 기본적으로 포함되어 있어서 별도 설치 없이 사용할 수 있는 모듈입니다.
http
- 역할: 기본 웹 서버 생성 기능을 제공
- 사용 시점: Express 없이 순수 Node.js로 서버를 만들 때
const http = require('http');
http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World!');
}).listen(3000);
path
- 역할: 파일 및 디렉토리 경로 관련 유틸리티 제공
- 사용 시점: 플랫폼에 상관없이 경로를 안전하게 조작할 때
const path = require('path');
const fullPath = path.join(__dirname, 'views', 'index.html');
2. Express 및 관련 외부 모듈
Express 기반 서버를 만들 때 자주 함께 사용하는 미들웨어와 외부 패키지입니다.
express
- 역할: 웹 애플리케이션 프레임워크
- 사용 시점: REST API 서버, 라우팅, 미들웨어 구성 등
const express = require('express');
const app = express();
body-parser
- 역할: HTTP 요청의 body 데이터를 해석하여 req.body로 제공
- 사용 시점: POST 요청으로 전송된 JSON이나 폼 데이터를 처리할 때
const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
Express 4.16 이상에서는 express.json()과 express.urlencoded()로 대체 가능
cookie-parser
- 역할: 요청 헤더에 포함된 쿠키를 파싱하여 req.cookies로 제공
- 사용 시점: 로그인, 사용자 추적 등에 쿠키를 사용할 때
const cookieParser = require('cookie-parser');
app.use(cookieParser());
serve-static
- 역할: 정적 파일(CSS, JS, 이미지 등)을 제공
- 사용 시점: 클라이언트에서 직접 접근 가능한 정적 리소스를 제공할 때
const serveStatic = require('serve-static');
app.use(serveStatic(__dirname + '/public'));
express-session
- 역할: 사용자별 세션 데이터를 저장하고 관리
- 사용 시점: 로그인 상태 유지, 사용자 인증 등
const session = require('express-session');
app.use(session({
secret: 'secretKey',
resave: false,
saveUninitialized: true
}));
errorhandler / express-error-handler
- 역할: 오류 처리 및 에러 페이지 제공
- 사용 시점: 404, 500 에러 처리 및 디버깅 환경에서 유용
const errorHandler = require('errorhandler');
app.use(errorHandler());
const expressErrorHandler = require('express-error-handler');
const handler = expressErrorHandler({
static: {
'404': './public/404.html'
}
});
app.use(expressErrorHandler.httpError(404));
app.use(handler);
mongodb
- 역할: Node.js 애플리케이션에서 MongoDB와 직접 통신
- 사용 시점: MongoDB 데이터베이스에 연결하여 데이터 CRUD 작업 수행
const { MongoClient } = require('mongodb');
MongoClient.connect('mongodb://localhost:27017', (err, client) => {
const db = client.db('mydb');
});
3. 추가로 알아두면 좋은 외부 모듈
morgan
- 역할: HTTP 요청 로그 기록
- 사용 시점: 개발 환경에서 요청 로그를 확인하고 디버깅할 때
const morgan = require('morgan');
app.use(morgan('dev'));
dotenv
- 역할: 환경 변수 파일(.env)을 불러와서 process.env에 등록
- 사용 시점: 데이터베이스 정보, API 키 등 민감한 정보를 분리할 때
require('dotenv').config();
const dbPassword = process.env.DB_PASSWORD;
cors
- 역할: 다른 출처의 클라이언트에서 요청을 허용
- 사용 시점: 프론트엔드와 백엔드가 다른 도메인일 때
const cors = require('cors');
app.use(cors());
4. 요약
모듈명설명사용 목적
http | 내장 웹 서버 모듈 | 기본 서버 생성 |
path | 파일 경로 조작 도구 | 안전한 경로 처리 |
express | 웹 프레임워크 | 라우팅, 미들웨어 처리 등 |
body-parser | 요청 본문 파서 | JSON, 폼 데이터 처리 |
cookie-parser | 쿠키 파서 | 로그인, 사용자 추적 등 |
serve-static | 정적 파일 제공 | HTML, CSS, JS, 이미지 등 제공 |
express-session | 세션 관리 | 로그인 유지, 인증 기능 |
errorhandler | 기본 에러 핸들러 | 개발 중 에러 디버깅 |
express-error-handler | 커스텀 에러 페이지 설정 | 404, 500 페이지 제공 |
mongodb | MongoDB 드라이버 | DB 연결 및 쿼리 수행 |
morgan | 요청 로깅 | 요청 추적 및 디버깅 |
dotenv | 환경 변수 로딩 | 민감 정보 분리 |
cors | CORS 설정 | 도메인 간 요청 허용 |
이 글을 통해 Node.js와 Express에서 어떤 모듈이 어떤 상황에 필요한지 정리해보았습니다. 실무나 학습 프로젝트에서 모듈 선택 시 참고하시기 바랍니다.
728x90
반응형
LIST
'Node.js' 카테고리의 다른 글
[Node.js] Node.js에서 MSSQL 데이터베이스 연결하기 (0) | 2025.06.20 |
---|---|
[Node.js] 실시간 진행 상황을 사용자에게 보여주기 – SSE(Server-Sent Events) 적용기 (0) | 2025.06.16 |
[Node.js] 미들웨어란? (0) | 2025.05.28 |
[Node.js] Node.js 엑셀 라이브러리 총정리 – xlsx 중심 사용법과 활용 가이드 (0) | 2025.05.08 |
[Node.js] Node.js란? 자바스크립트가 브라우저 밖으로 나온 이유 (0) | 2025.04.29 |