Node.js 를 배워보자/10. 실전 프로젝트

실전 프로젝트 : 간단한 웹 서버 구축

_Blue_Sky_ 2024. 10. 1. 10:07
728x90
728x90

Node.js 실전 프로젝트: 간단한 웹 서버 구축 가이드

소개

Node.js는 비동기식 이벤트 기반의 JavaScript 런타임 환경으로, 웹 서버 개발에 매우 효율적인 도구입니다. 이 글에서는 Node.js를 이용하여 간단한 웹 서버를 구축하는 과정을 상세히 설명하고, 실제 프로젝트에 적용할 수 있는 다양한 기능들을 소개합니다.

Node.js 설치 및 프로젝트 생성

  1. Node.js 설치: Node.js 공식 홈페이지([유효하지 않은 URL 삭제됨] 운영체제에 맞는 설치 파일을 다운로드하여 설치합니다.
  2. 프로젝트 디렉토리 생성: 터미널 또는 명령 프롬프트를 열고, 새로운 프로젝트를 위한 디렉토리를 생성합니다.
    mkdir my-node-server
    cd my-node-server
    
     
     
  3. package.json 생성: npm init -y 명령어를 실행하여 package.json 파일을 생성합니다. 이 파일은 프로젝트에 대한 메타 정보와 의존성을 관리합니다.
728x90

Express.js 설치 및 설정

Express.js는 Node.js용 미니멀한 웹 애플리케이션 프레임워크로, 웹 서버 개발을 간소화합니다.

  1. Express.js 설치:
    npm install express
    
  2. index.js 파일 생성: 프로젝트 루트 디렉토리에 index.js 파일을 생성하고, 다음과 같이 코드를 작성합니다.
    const express = require('express');
    const app = express();
    const port = 3000;
    
    app.get('/', (req, res) => {
        res.send('Hello, World!');
    });
    
    app.listen(port, () => {
        console.log(`Server listening on port ${port}`);
    });
    

코드 설명

  • require('express'): Express 모듈을 불러옵니다.
  • const app = express(): Express 애플리케이션 인스턴스를 생성합니다.
  • app.get('/', (req, res) => { ... }): 루트 경로(/)에 대한 GET 요청을 처리하는 라우터를 정의합니다. 요청 객체(req)와 응답 객체(res)를 인자로 받아 처리 로직을 작성합니다.
  • res.send('Hello, World!'): 클라이언트에게 'Hello, World!' 문자열을 보냅니다.
  • app.listen(port, () => { ... }): 지정된 포트(3000)에서 서버를 실행하고, 서버가 시작되었음을 콘솔에 출력합니다.

서버 실행 및 확인

터미널에서 node index.js 명령을 실행하여 서버를 시작합니다. 웹 브라우저에서 http://localhost:3000으로 접속하면 'Hello, World!' 문자열이 출력되는 것을 확인할 수 있습니다.

추가 기능 구현

  • 정적 파일 제공: express.static() 미들웨어를 사용하여 HTML, CSS, JavaScript 파일과 같은 정적 파일을 제공할 수 있습니다.
  • 템플릿 엔진: EJS, Pug와 같은 템플릿 엔진을 사용하여 동적인 HTML 페이지를 생성할 수 있습니다.
  • 데이터베이스 연동: MongoDB, MySQL과 같은 데이터베이스와 연결하여 데이터를 저장하고 조회할 수 있습니다.
  • API 개발: RESTful API를 개발하여 다른 애플리케이션과 데이터를 주고받을 수 있습니다.
  • 미들웨어: 다양한 미들웨어를 사용하여 요청/응답 처리 과정을 커스터마이징할 수 있습니다.

실제 프로젝트 적용

  • 블로그: 게시글 작성, 수정, 삭제, 목록 조회 기능 구현
  • 쇼핑몰: 상품 목록 조회, 장바구니, 결제 기능 구현
  • 채팅 앱: 실시간 채팅 기능 구현
  • TODO 앱: 할 일 목록 관리 기능 구현
728x90

Node.js와 Express.js를 이용하여 간단한 웹 서버를 구축하는 과정을 살펴보았습니다. 이를 기반으로 더욱 복잡하고 다양한 기능을 가진 웹 애플리케이션을 개발할 수 있습니다.

 

728x90
728x90