IT속으로

node.js 간단한 http 서버 작성하기

더월드 2025. 4. 4.

 

기초부터 실행까지 한 번에 끝내는 초간단 서버 구축 가이드

Node.js는 서버 개발에 아주 적합한 JavaScript 런타임입니다. 오늘은 여러분이 직접 간단한 웹 서버를 만들 수 있도록, HTTP 모듈을 이용한 기초 서버 코드를 소개해드릴게요.


목표

  • Node.js로 HTTP 요청을 받아들이는 서버를 만든다.
  • 브라우저에서 접속했을 때 간단한 메시지를 보여준다.

1. Node.js 설치는 되어 있겠죠?

만약 아직 설치하지 않았다면, Node.js 공식 웹사이트에서 LTS 버전을 설치해주세요.

설치 확인은 터미널에서 다음 명령어로!

node -v
npm -v

 

2. 서버 코드 작성하기

아래와 같은 파일을 하나 만들어주세요. 예: server.js

 

  • http.createServer()는 요청(request)과 응답(response)을 받아 처리하는 서버를 생성합니다.
  • res.writeHead()는 응답 상태코드와 헤더를 설정합니다.
  • res.end()는 응답을 끝내며, 클라이언트에게 내용을 전달합니다.
  • server.listen()은 서버를 특정 포트에서 실행시킵니다.

 

// 1. http 모듈 불러오기
const http = require('http');

// 2. 포트 설정
const PORT = 3000;

// 3. 서버 생성
const server = http.createServer((req, res) => {
  // 요청 정보 출력
  console.log(`요청 URL: ${req.url}, 요청 방식: ${req.method}`);

  // 응답 헤더 설정
  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });

  // 응답 본문 작성
  res.end('<h1>안녕하세요! Node.js 서버입니다 </h1>');
});

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

 

3. 서버 실행하기

이제 터미널에서 다음 명령어를 입력해 서버를 실행해보세요:

node server.js

 

브라우저에서 http://localhost:3000 으로 접속하면 다음과 같은 페이지를 볼 수 있어요:

 

그리고 터미널에는 요청 로그가 찍힐 거예요:

 


4. 간단한 라우팅 추가해보기

요청 URL에 따라 응답을 다르게 하고 싶다면 이렇게 수정해볼 수 있어요:

const server = http.createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });

  if (req.url === '/') {
    res.end('<h1>홈페이지입니다 </h1>');
  } else if (req.url === '/about') {
    res.end('<h1>소개 페이지입니다 </h1>');
  } else {
    res.writeHead(404);
    res.end('<h1>페이지를 찾을 수 없습니다 </h1>');
  }
});

 

 

 

node.js 간단한 http 서버 작성하기 - 4. 간단한 라우팅 추가해보기