Node.js와 Express로 간단한 서버 구축하기

Node.js와 Express로 간단한 서버 구축하기

최근 현대 웹 애플리케이션 개발에서 Node.js와 Express는 필수적인 도구로 자리잡았습니다. 이 두 가지를 활용하여 간단한 서버를 만드는 방법에 대해 알아보겠습니다. Node.js는 서버 사이드에서 자바스크립트를 실행할 수 있도록 해주는 플랫폼이고, Express는 Node.js 위에서 작동하는 웹 프레임워크로서 개발 프로세스를 단순화하는 데 기여합니다.

Node.js 설치 및 환경 설정

서버 구축의 첫 단계는 Node.js의 설치입니다. Node.js의 최신 버전을 다운로드 후 설치합니다. 또한, 환경 변수를 설정하여 시스템에서 Node.js가 제대로 작동하도록 배려해야 합니다. Windows 운영체제를 사용하시는 경우, 명령 프롬프트에서 다음 절차를 따라 주십시오.

  • Node.js 공식 웹사이트를 통해 최신 버전을 다운로드합니다.
  • 설치 후, 환경 변수에 Node.js의 경로를 추가합니다.
  • npm(Node Package Manager) 역시 자동으로 설치되므로 별도로 설치할 필요는 없습니다.

npm 이해하기

npm은 Node.js 프로젝트에서 필요한 다양한 패키지를 관리하는 도구입니다. 각 패키지의 버전과 정보를 기록한 package.json 파일을 통해 효율적으로 관리할 수 있습니다. 이 파일이 없으면, npm은 프로젝트 설정 시 필요한 질문을 통해 자동으로 생성됩니다.

Express.js 설치 및 설정

Node.js가 설치되면 이제 Express.js를 설치할 차례입니다. 명령 프롬프트에서 다음 명령어를 입력합니다:

npm install express

이 명령어를 실행하면 Express.js가 설치되며, 이를 통해 기본 웹 애플리케이션을 쉽게 구축할 수 있게 됩니다.

Express 애플리케이션 초기화하기

Express 애플리케이션을 생성하기 위해서는 app.js라는 파일을 만들고 아래와 같은 코드를 입력하세요:


const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(서버가 http://localhost:${port}에서 실행 중입니다.);
});

위의 코드를 실행하면 기본적인 웹 서버가 실행됩니다. 브라우저에서 http://localhost:3000으로 접속하면 “Hello World!” 메시지를 확인할 수 있습니다.

기본 서버 구축하기

Express를 이용하여 간단한 웹 서버를 구축하는 과정은 매우 직관적입니다. 사용자는 HTTP GET 요청을 통해 서버에 접근하고, 서버는 사용자에게 응답을 보냅니다. 다음은 간단한 서버 코드입니다:


const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World!');
});
server.listen(8080, () => {
console.log('서버가 http://localhost:8080에서 실행 중입니다.');
});

이 코드를 실행한 후 웹 브라우저에서 localhost:8080에 접속하여 “Hello World!” 메시지가 잘 출력되는지 확인해 보세요.

미들웨어 추가하기

미들웨어는 Express 애플리케이션에서 요청과 응답을 처리하는 데 필수적인 요소입니다. 미들웨어를 사용하면 기능을 추가하거나 요청을 변형하는 등의 작업을 할 수 있습니다. 미들웨어는 다음과 같은 방식으로 정의됩니다:


app.use((req, res, next) => {
console.log('요청이 들어왔습니다.');
next(); // 다음 미들웨어 또는 라우트로 이동
});

이와 같이 미들웨어를 추가하면 요청이 들어올 때마다 로그가 출력됩니다. 요청 처리 후 다음 미들웨어가 실행됩니다.

라우팅 설정하기

라우팅은 클라이언트의 요청을 해당하는 처리 함수로 연결하는 과정입니다. Express에서는 다음과 같은 방식으로 라우트를 설정할 수 있습니다:


app.get('/api/data', (req, res) => {
res.json({ message: '데이터가 전송되었습니다!' });
});

위의 예시처럼 특정 경로에 대해 GET 요청을 처리할 수 있습니다. 이를 통해 여러 가지 경로를 설정하고 클라이언트의 요청에 따라 다양한 응답을 반환할 수 있습니다.

RESTful API 설계

Express와 함께 RESTful API를 설계하면 클라이언트-서버 간의 데이터 통신을 효율적으로 처리할 수 있습니다. 데이터의 생성, 조회, 수정, 삭제를 위한 HTTP 메서드를 적절히 활용하여 API를 설계할 수 있습니다. 다음은 RESTful API의 기본적인 예시입니다:


app.post('/users', (req, res) => {
res.send('새로운 사용자가 생성되었습니다.');
});
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
res.send(User ID: ${userId});
});
app.put('/users/:id', (req, res) => {
const userId = req.params.id;
res.send(User ${userId}의 정보를 수정했습니다.);
});
app.delete('/users/:id', (req, res) => {
const userId = req.params.id;
res.send(User ${userId}를 삭제했습니다.);
});

위와 같이 다양한 HTTP 메서드를 사용하여 클라이언트의 요청을 처리하는 API를 구축할 수 있습니다.

데이터베이스 연결하기

Node.js에서는 다양한 데이터베이스와 연결이 가능합니다. MongoDB와 같은 NoSQL 데이터베이스나 MySQL과 같은 관계형 데이터베이스를 쉽게 연동할 수 있습니다. MongoDB를 사용하기 위해서는 MongoDB 드라이버를 설치하고 연결하는 코드가 필요합니다. 다음은 MongoDB 연결 예제입니다:


const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
MongoClient.connect(url, { useUnifiedTopology: true }, (err, client) => {
if (err) throw err;
const db = client.db('mydatabase');
console.log('MongoDB에 연결되었습니다.');
});

서버 배포하기

서버가 정상적으로 구축되면, 마지막 단계는 이를 클라우드 서버에 배포하는 것입니다. AWS, Heroku와 같은 서비스를 이용해 손쉽게 서버를 배포하고 도메인을 설정할 수 있습니다.

이로써 Node.js와 Express를 활용한 서버 구축 과정에 대해 설명드렸습니다. 다양한 기능을 활용하여 여러분의 웹 애플리케이션을 발전시키고, 더 많은 프로젝트에 도전해 보시기 바랍니다.

자주 묻는 질문 FAQ

Node.js와 Express를 결합하여 서버를 구축하는 과정은 어떤가요?

Node.js와 Express를 활용하면 웹 서버를 손쉽게 구축할 수 있습니다. Node.js는 서버 사이드에서 자바스크립트를 실행할 수 있도록 지원하고, Express는 그 위에서 작동하여 개발을 단순화해 줍니다.

서버 구축을 위해 Node.js를 설치하는 방법은 무엇인가요?

Node.js의 설치는 공식 웹사이트에서 최신 버전을 다운로드한 후 진행합니다. 설치를 완료한 뒤에는 환경 변수를 설정하여 원활한 작동을 보장해야 합니다.

Express.js 설치 후 기본 애플리케이션을 설정하려면 어떻게 해야 하나요?

Express.js 설치 후에는 app.js 파일을 만들고 기본 서버 코드를 입력해야 합니다. 이를 통해 간단한 웹 애플리케이션이 즉시 운영 가능해집니다.

RESTful API를 Express로 설계할 때 고려해야 할 점은 무엇인가요?

RESTful API 설계 시 HTTP 메서드를 적절하게 활용하여 클라이언트의 요청을 처리하는 것이 중요합니다. CRUD 작업을 효과적으로 구현하여 데이터 통신을 원활하게 해야 합니다.