728x90
728x90
Node.js 실전 프로젝트: 간단한 웹 서버 구축 가이드
소개
Node.js는 비동기식 이벤트 기반의 JavaScript 런타임 환경으로, 웹 서버 개발에 매우 효율적인 도구입니다. 이 글에서는 Node.js를 이용하여 간단한 웹 서버를 구축하는 과정을 상세히 설명하고, 실제 프로젝트에 적용할 수 있는 다양한 기능들을 소개합니다.
Node.js 설치 및 프로젝트 생성
- Node.js 설치: Node.js 공식 홈페이지([유효하지 않은 URL 삭제됨] 운영체제에 맞는 설치 파일을 다운로드하여 설치합니다.
- 프로젝트 디렉토리 생성: 터미널 또는 명령 프롬프트를 열고, 새로운 프로젝트를 위한 디렉토리를 생성합니다.
mkdir my-node-server cd my-node-server
- package.json 생성: npm init -y 명령어를 실행하여 package.json 파일을 생성합니다. 이 파일은 프로젝트에 대한 메타 정보와 의존성을 관리합니다.
728x90
Express.js 설치 및 설정
Express.js는 Node.js용 미니멀한 웹 애플리케이션 프레임워크로, 웹 서버 개발을 간소화합니다.
- Express.js 설치:
npm install express
- 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
'Node.js 를 배워보자 > 10. 실전 프로젝트' 카테고리의 다른 글
실전 프로젝트 : 실시간 채팅 애플리케이션 개발 (0) | 2024.10.01 |
---|---|
실전 프로젝트 : RESTful API 기반 백엔드 개발 (0) | 2024.10.01 |