Node.js와 Express로 간단한 서버 구축하기
최근 들어 웹 개발의 수요가 증가함에 따라 Node.js와 Express.js를 활용한 서버 구축이 많은 관심을 받고 있습니다. 이 글에서는 Node.js를 이용한 백엔드 개발의 기초를 살펴보고, Express.js를 통해 간단한 웹 서버를 생성하는 방법에 대해 설명하겠습니다.
Node.js란?
Node.js는 자바스크립트 런타임 환경으로, 브라우저 없이도 자바스크립트를 실행할 수 있게 만들어주는 기술입니다. 즉, Node.js는 자바스크립트를 서버 측에서 사용할 수 있도록 해주며, 비동기 이벤트 기반의 I/O 모델을 사용하여 높은 처리 성능을 자랑합니다.
Express.js 소개
Express.js는 Node.js 위에서 작동하는 웹 애플리케이션 프레임워크로, 서버 애플리케이션을 보다 쉽게 구축할 수 있도록 다양한 기능을 제공합니다. 이는 라우팅, 미들웨어 관리, 템플릿 엔진 통합 등의 기능을 포함하고 있어 개발자들에게 많은 도움을 줍니다.
서버 환경 설정하기
서버를 구축하기 위해서는 먼저 Node.js가 설치되어 있어야 합니다. 공식 웹사이트에서 안정적인 LTS 버전을 다운로드하여 설치 후, 아래의 과정을 통해 Express를 설치할 수 있습니다.
- 작업할 프로젝트 폴더를 생성합니다.
- 해당 폴더로 이동한 후, 터미널에서
npm init
명령어를 실행하여package.json
파일을 생성합니다. - 이제
npm install express
명령어를 통해 Express 패키지를 설치합니다.
기본 웹 서버 코드 작성하기
설치가 완료된 후에는 서버의 기본 구조를 만들기 위해 app.js
또는 index.js
파일을 생성하고, 다음과 같은 코드를 작성합니다.
const express = require('express');
const app = express();
const PORT = 3000;
app.get('/', (req, res) => {
res.send('Hello, Express!');
});
app.listen(PORT, () => {
console.log(서버가 http://localhost:${PORT}에서 실행되고 있습니다.);
});
이 코드는 기본적인 GET 요청에 대한 응답을 설정하고, 지정된 포트에서 서버를 실행합니다.
라우팅 및 미들웨어 사용하기
Express.js의 큰 장점 중 하나는 라우팅 기능입니다. 특정 URL 경로에 따라 요청을 처리하는 방법을 정의할 수 있습니다.
라우팅 설정 예시
app.get('/about', (req, res) => {
res.send('이곳은 About 페이지입니다.');
});
위의 예시는 ‘/about’ 경로로 GET 요청이 들어오는 경우 “이곳은 About 페이지입니다.”라는 메시지를 응답하는 라우팅 설정입니다.
미들웨어의 활용
미들웨어는 요청과 응답을 처리하기 위한 함수입니다. 각 미들웨어는 요청 객체, 응답 객체, 그리고 다음 미들웨어를 호출할 수 있는 함수를 인자로 받습니다. 이를 통해 고민할 수 있는 다양한 기능을 추가할 수 있습니다.
app.use((req, res, next) => {
console.log('요청이 들어왔습니다.');
next();
});
이 코드는 모든 요청에 대해 로그를 출력하고, 그 다음 미들웨어로 진행하도록 설정합니다.
CORS 문제 해결하기
웹 애플리케이션의 경우, 다른 도메인 간의 요청을 처리할 때 CORS(Cross-Origin Resource Sharing) 에러가 발생할 수 있습니다. 이를 해결하기 위해 cors
패키지를 설치하고 설정해야 합니다.
npm install cors
설치 후, 코드에 아래와 같이 추가하면 됩니다.
const cors = require('cors');
app.use(cors());
위와 같이 설정하면 모든 도메인에 대해 요청을 허용합니다. 특정 도메인만 허용하고 싶다면, 아래와 같이 옵션을 설정할 수 있습니다.
const corsOptions = {
origin: 'http://example.com',
optionsSuccessStatus: 200,
};
app.use(cors(corsOptions));
마무리하며
Node.js와 Express.js를 활용하여 간단한 웹 서버를 구축하는 과정에 대해 살펴보았습니다. 이 두 가지 기술은 함께 사용될 때 강력한 도구가 되어, 효율적인 웹 애플리케이션 개발을 가능하게 합니다. 앞으로 데이터베이스와의 연동이나 API 구축 등 보다 심화된 내용을 학습해 나가시면 좋겠습니다.
노드JS와 익스프레스를 통해 자신만의 웹 애플리케이션을 개발하는 데에 유용한 정보가 되었기를 바랍니다. 다음 포스팅에서는 데이터베이스 연결이나 더 복잡한 라우팅 처리 방법에 대해 다룰 예정이니 많은 관심 부탁드립니다.
자주 묻는 질문 FAQ
Node.js란 무엇인가요?
Node.js는 자바스크립트를 서버에서 실행할 수 있도록 해주는 환경입니다. 비동기적이고 이벤트 기반의 구조로 설계되어 있어 높은 성능을 제공합니다.
Express.js가 뭐죠?
Express.js는 Node.js 기반의 웹 애플리케이션 프레임워크입니다. 쉽게 서버 애플리케이션을 생성할 수 있도록 도와주는 다양한 기능을 제공합니다.
서버를 시작하는 방법은?
서버를 시작하려면 Node.js와 Express.js를 설치한 후, 기본 코드를 작성하고 app.listen 메서드를 호출하여 지정한 포트에서 실행하면 됩니다.
라우팅은 어떻게 설정하나요?
Express.js에서는 app.get 메서드를 사용하여 특정 URL 경로에 대한 요청 처리를 정의할 수 있습니다. 이를 통해 다양한 페이지를 쉽게 응답할 수 있습니다.
CORS 문제란 무엇인가요?
CORS는 여러 도메인 간의 리소스 공유를 관리하는 보안 메커니즘입니다. 다른 도메인에서 요청을 할 때 CORS 설정을 통해 접근을 허용하거나 차단할 수 있습니다.