Node.js 웹 개발의 기초 Express.js로 시작하기

Express.js는 Node.js를 위한 빠르고 유연한 웹 애플리케이션 프레임워크로, 간단한 웹 서버부터 복잡한 웹 애플리케이션까지 구축하는 데 유용합니다. 아래는 Express.js를 활용하여 기초적인 웹 서버를 만드는 단계입니다.

Node.js 웹 개발의 기초

Node.js란 무엇인가?





Node.js는 V8 JavaScript 엔진으로 빌드된 서버 측 런타임 환경입니다. Ryan Dahl이 개발한 Node.js는 비동기식 이벤트 주도 아키텍처를 기반으로 하며, JavaScript를 사용하여 서버 측 애플리케이션을 구축하는 데 매우 유용합니다.

웹 개발을 위한 Node.js 설치

  1. Node.js 설치하기:
    먼저, Node.js를 설치해야 합니다. Node.js 공식 웹사이트(https://nodejs.org)에서 최신 버전을 다운로드하여 설치합니다.

2. 프로젝트 초기화:
빈 폴더를 만들고, 해당 폴더에서 터미널을 실행하여 다음 명령을 실행하여 새로운 프로젝트를
초기화 합니다.

npm init

이 명령을 실행하면 프로젝트에 대한 정보를 입력하라는 메시지가 나옵니다. 필요한 정보를 입력하고, package.json 파일이 생성되도록 합니다.

  • 비동기 처리로 인한 높은 성능
  • 단일 언어로 웹 서버와 클라이언트 사이드 개발 가능
  • 큰 커뮤니티와 다양한 라이브러리 지원

Express.js 소개





Express.js는 Node.js를 위한 빠르고 유연한 웹 애플리케이션 프레임워크로, 간단한 웹 서버부터 복잡한 웹 애플리케이션까지 구축하는 데 유용합니다. 다음은 Express.js의 주요 기능입니다.

Express.js의 주요 기능

  • 미들웨어 지원
  • 라우팅 처리 간편화
  • HTTP 유틸리티 메서드 지원
  • 템플릿 엔진과의 통합

Express.js 설치 및 설정

Express.js를 사용하기 위해 먼저 Node.js가 설치되어 있어야 합니다. Node.js가 설치되어 있다면, Express.js를 아래와 같이 설치합니다.

npm install express

기본 웹 서버 생성

Express.js를 사용하여 기본적인 웹 서버를 생성해 보겠습니다.

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('안녕하세요! Express.js 웹 서버에 접속하셨습니다.');
});

app.listen(port, () => {
  console.log(`서버가 http://localhost:${port} 에서 실행 중입니다.`);
});

서버 실행 : 터미널에서 아래 명령을 실행하여 서버를 실행합니다.

node app.js

라우팅과 미들웨어

Express.js에서는 라우팅과 미들웨어를 사용하여 요청을 처리합니다. 다음은 간단한 라우팅과 미들웨어의 예시입니다.

// 라우팅
app.get('/about', (req, res) => {
  res.send('About 페이지입니다.');
});

// 미들웨어
app.use((req, res, next) => {
  console.log('요청이 들어왔습니다.');
  next();
});

정적 파일 서비스





Express.js를 사용하여 정적 파일(이미지, CSS, JavaScript 파일 등)을 제공할 수 있습니다.

app.use(express.static('public'));

데이터베이스 연동

Node.js와 Express.js를 사용하여 데이터베이스와 연동하는 방법은 다양합니다. 대표적으로 MongoDB, MySQL, PostgreSQL 등의 데이터베이스를 사용할 수 있습니다.
이 중에서 MongoDB에 대해서 구체적 예를 들어 설명드리겠습니다.

데이터베이스 연동은 웹 애플리케이션에서 데이터를 저장하고 검색하는 데 필요한 중요한 부분입니다. Express.js를 사용하여 데이터베이스를 연동하는 방법은 다양하지만, 이 예시에서는 MongoDB를 사용한 데이터베이스 연동 방법을 설명하겠습니다.

MongoDB 연동하기

먼저, MongoDB를 설치하고 Node.js 애플리케이션에 MongoDB와 연결해야 합니다. 이를 위해 Mongoose라는 라이브러리를 사용하겠습니다. Mongoose는 MongoDB와의 상호작용을 도와주는 라이브러리로서, 간단하고 편리한 방법으로 MongoDB와 데이터를 주고받을 수 있도록 합니다.

  1. MongoDB와 Mongoose 설치하기

먼저, MongoDB를 설치하고 Node.js 프로젝트에 Mongoose를 설치합니다.

npm install mongoose
  1. Mongoose 모듈을 사용하여 데이터베이스 연결

데이터베이스에 연결하려면, Express.js 애플리케이션에서 Mongoose 모듈을 불러와서 데이터베이스와 연결합니다.

const mongoose = require('mongoose');
const DB_URL = 'mongodb://localhost:27017/mydatabase'; // 여기서 mydatabase는 사용할 데이터베이스의 이름입니다.

// 데이터베이스 연결
mongoose.connect(DB_URL, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
})
  .then(() => {
    console.log('데이터베이스에 연결되었습니다.');
  })
  .catch((error) => {
    console.error('데이터베이스 연결 에러:', error);
  });
  1. 데이터 모델 정의하기

데이터베이스에 저장할 데이터의 형식을 정의해야 합니다. 이를 위해 Mongoose의 Schema를 사용합니다.

const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
  username: { type: String, required: true },
  email: { type: String, required: true },
  age: { type: Number, required: true },
});

const User = mongoose.model('User', userSchema);
  1. 데이터 CRUD 작업 수행하기

데이터베이스에 데이터를 추가하거나 조회, 수정, 삭제하는 작업은 다음과 같이 수행할 수 있습니다.

// 새로운 사용자 추가
const newUser = new User({
  username: 'user1',
  email: 'user1@example.com',
  age: 25,
});
newUser.save()
  .then((savedUser) => {
    console.log('새로운 사용자가 추가되었습니다:', savedUser);
  })
  .catch((error) => {
    console.error('사용자 추가 에러:', error);
  });

// 모든 사용자 조회
User.find()
  .then((users) => {
    console.log('모든 사용자:', users);
  })
  .catch((error) => {
    console.error('사용자 조회 에러:', error);
  });

// 사용자 수정
User.updateOne({ username: 'user1' }, { age: 30 })
  .then(() => {
    console.log('사용자 정보가 수정되었습니다.');
  })
  .catch((error) => {
    console.error('사용자 수정 에러:', error);
  });

// 사용자 삭제
User.deleteOne({ username: 'user1' })
  .then(() => {
    console.log('사용자가 삭제되었습니다.');
  })
  .catch((error) => {
    console.error('사용자 삭제 에러:', error);
  });

위 예시에서는 MongoDB를 사용하여 데이터베이스에 사용자 정보를 추가, 조회, 수정, 삭제하는 기능을 구현했습니다. 이와 같은 방식으로 다양한 데이터베이스와 연동하여 웹 애플리케이션에서 데이터를 관리할 수 있습니다. 데이터베이스 연동은 웹 개발에서 중요한 부분이므로 반드시 숙지하고 사용하시기 바랍니다.




결론

Node.js 웹 개발의 기초를 이해하고 Express.js를 사용하여 웹 애플리케이션을 만드는 방법에 대

해 배워보았습니다. Express.js는 뛰어난 성능과 다양한 기능을 제공하여 웹 개발을 더욱 편리하고 효율적으로 만들어줍니다. 지금 당장 Express.js를 사용하여 웹 개발에 도전해 보세요!

Leave a Comment