IT Developer/Node.js

Node.js 기초 <6. Express.js로 서버 만들기: 기본 개념과 라우팅>

TEMA_ 2025. 3. 8. 16:44
반응형

노드 Node.js

6. Express.js로 서버 만들기: 기본 개념과 라우팅 

 

안녕하세요! 태마입니다.

Node.js 기초 강좌입니다.

 

강좌의 경우 

1. 주제 간단 정리

2. 상세 주제 정리

으로 이루어져 있습니다.

 

노드 Node.js

포스팅 시작하겠습니다 :)

 


 

1. 주제 간단 정리

 

1. Express.js란?

Express.js(이하 Express)는 Node.js에서 가장 많이 사용되는 웹 프레임워크입니다.
기본적인 HTTP 서버를 쉽게 만들고, API를 개발할 수 있도록 도와줍니다.

📌 Express.js의 특징
간결한 문법 → Node.js의 기본 HTTP 모듈보다 사용이 쉬움
미들웨어 지원 → 요청과 응답을 쉽게 조작 가능
라우팅 기능 제공 → RESTful API 설계에 최적화됨
확장성 뛰어남 → 다양한 라이브러리와 함께 사용 가능


 

2. Express.js 설치 및 프로젝트 설정

1) 프로젝트 폴더 생성 및 Express 설치

mkdir my-express-app && cd my-express-app
npm init -y               # package.json 생성
npm install express       # Express.js 설치

📌 npm install express 명령어로 Express 프레임워크를 설치

2) Express 서버 기본 코드 작성

const express = require("express");
const app = express();

app.get("/", (req, res) => {
  res.send("Hello, Express!");
});

app.listen(3000, () => {
  console.log("서버가 3000번 포트에서 실행 중!");
});

📌 **app.listen(3000)**을 사용하여 3000번 포트에서 서버 실행

3) 서버 실행하기

node index.js

📌 실행 후 브라우저에서 http://localhost:3000에 접속하면 **"Hello, Express!"**가 출력됨

✅ 여기까지 Express.js의 기본 개념과 서버 실행 방법을 배웠습니다!
👉 "그렇다면, Express.js에서 라우팅을 어떻게 관리할까?"
2부에서 Express의 라우팅 시스템을 배워봅시다!

반응형

 

2. 상세 주제 정리

 

1. 라우팅(Routing)이란?

라우팅은 클라이언트의 요청 URL에 따라 다른 응답을 반환하는 기능입니다.
Express에서는 app.get(), app.post(), app.put(), app.delete() 같은
메서드를 사용하여 라우팅을 설정할 수 있습니다.

기본적인 라우팅 예제

const express = require("express");
const app = express();

app.get("/", (req, res) => {
  res.send("홈 페이지");
});

app.get("/about", (req, res) => {
  res.send("소개 페이지");
});

app.listen(3000, () => {
  console.log("서버 실행 중!");
});

📌 클라이언트의 요청 URL에 따라 다른 페이지를 반환할 수 있음!


 

2. HTTP 메서드(GET, POST, PUT, DELETE) 처리

Express에서 HTTP 요청 처리하기

메서드설명

GET 데이터를 가져올 때 사용
POST 데이터를 생성할 때 사용
PUT 데이터를 수정할 때 사용
DELETE 데이터를 삭제할 때 사용

GET 요청과 POST 요청 처리 예제

const express = require("express");
const app = express();

app.use(express.json());  // JSON 요청 본문 처리

app.get("/users", (req, res) => {
  res.send("모든 사용자 정보 조회");
});

app.post("/users", (req, res) => {
  const newUser = req.body;
  res.send(`새 사용자 추가: ${JSON.stringify(newUser)}`);
});

app.listen(3000, () => {
  console.log("서버 실행 중!");
});

📌 GET 요청은 데이터를 가져오고, POST 요청은 데이터를 생성하는 데 사용됨


 

3. 동적 라우팅과 URL 매개변수 처리

Express에서는 동적 라우팅을 지원하며, URL에서 값을 추출할 수 있음

app.get("/users/:id", (req, res) => {
  const userId = req.params.id;
  res.send(`사용자 ID: ${userId}`);
});

📌 req.params.id를 사용하여 URL에서 동적으로 ID 값을 가져올 수 있음!


 

4. Express 미들웨어(Middleware)란?

미들웨어는 요청과 응답 사이에서 특정 작업을 수행하는 함수입니다.
로그 기록, 인증, 요청 데이터 검증 등에 사용됩니다.

미들웨어의 주요 기능
✔ 요청(Request)과 응답(Response)을 가로채어 처리 가능
✔ app.use()를 사용하여 여러 개의 미들웨어 연결 가능

로그를 출력하는 미들웨어 예제

app.use((req, res, next) => {
  console.log(`${req.method} ${req.url} 요청`);
  next();  // 다음 미들웨어 실행
});

📌 모든 요청을 가로채서 요청 정보(메서드, URL)를 출력하는 미들웨어

특정 경로에만 적용하는 미들웨어

const checkAuth = (req, res, next) => {
  if (!req.headers.authorization) {
    return res.status(403).send("접근 권한 없음!");
  }
  next();
};

app.get("/secure", checkAuth, (req, res) => {
  res.send("인증된 사용자만 접근 가능");
});

📌 checkAuth 미들웨어를 /secure 경로에 적용하여 인증된 사용자만 접근 가능하게 설정


 

5. Express에서 정적 파일 제공하기

Express에서는 express.static()을 사용하여 CSS, 이미지, JavaScript 파일을 정적 파일로 제공할 수 있음

정적 파일 제공 예제

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

📌 public 폴더 안에 있는 파일들을 정적 리소스로 제공

정적 파일을 브라우저에서 접근하는 방법

http://localhost:3000/style.css
http://localhost:3000/script.js

📌 정적 파일을 쉽게 제공하여 웹 페이지를 구성할 수 있음!


✅ 여기까지 Express.js의 라우팅과 미들웨어 활용법을 배웠습니다!
👉 "그렇다면, Express.js를 사용하여 RESTful API를 어떻게 만들까?"
다음 회차에서 RESTful API 개발 방법을 배워봅시다!

반응형