본문 바로가기
카테고리 없음

Node.js는 무엇이고 왜 JavaScript로 서버를 만들 수 있을까

by by_merry 2026. 4. 20.

JavaScript를 배우다 보면 어느 순간 이상한 말을 듣게 된다. “요즘은 JavaScript로 서버도 만든다”는 말이다.

처음 들으면 꽤 이상하다. JavaScript는 원래 웹사이트에서 버튼을 누르거나, 글자를 바꾸거나, 화면을 움직이는 언어라고 배웠기 때문이다. 즉, 브라우저 안에서만 실행되는 언어처럼 느껴진다.

나도 처음에는 “JavaScript로 어떻게 서버를 만들지?”라는 생각이 들었다. 서버는 Python이나 Java 같은 언어로 만드는 줄 알았고, JavaScript는 화면에서만 쓰는 언어라고 생각했다.

그런데 Node.js를 알고 나니까 왜 JavaScript로도 서버를 만들 수 있는지 이해하게 됐다.

결론부터 말하면, Node.js는 JavaScript를 웹브라우저 밖에서도 실행할 수 있게 해주는 프로그램이다.

 

원래 JavaScript는 브라우저 안에서만 실행됐다

처음 JavaScript가 만들어졌을 때는 웹브라우저 안에서만 실행할 수 있었다.

예를 들어 HTML 파일 안에:

<script>
alert("안녕하세요")
</script>

라고 쓰면 브라우저가 알림창을 띄워준다.

왜냐하면 브라우저 안에는 JavaScript를 실행하는 기능이 들어 있기 때문이다.

하지만 브라우저 밖에서는 JavaScript를 실행할 수 없었다.

예를 들어 Python은 터미널에서 실행할 수 있지만, 예전 JavaScript는 그렇지 않았다.

즉, JavaScript는 원래 “웹사이트 화면용 언어”에 가까웠다.

Node.js는 JavaScript를 브라우저 밖으로 꺼내준 도구다

Node.js가 등장하면서 상황이 바뀌었다.

Node.js는 브라우저 안에 있던 JavaScript 엔진을 꺼내서, 컴퓨터에서도 실행할 수 있게 만든 프로그램이다.

쉽게 말하면:

  • 원래 JavaScript → 브라우저 안에서만 실행
  • Node.js 이후 JavaScript → 컴퓨터에서도 실행 가능

예를 들어 아래처럼 파일을 만들 수 있다.

console.log("안녕하세요");

그리고 터미널에서:

node app.js

라고 입력하면, 브라우저 없이도 JavaScript가 실행된다.

즉, Node.js는 JavaScript를 일반 프로그램처럼 사용할 수 있게 만든 것이다.

처음 이걸 알았을 때 꽤 신기했다. 왜냐하면 JavaScript는 웹사이트 안에서만 쓰는 줄 알았는데, 터미널에서도 실행되는 것을 보니까 완전히 다른 언어처럼 느껴졌기 때문이다.

그런데 서버는 왜 만들 수 있을까

서버는 쉽게 말하면, 누군가 요청하면 답을 보내주는 프로그램이다.

예를 들어 사용자가 브라우저에서 사이트에 접속하면:

  1. 브라우저가 서버에게 요청을 보낸다.
  2. 서버가 HTML이나 데이터를 다시 보낸다.

Node.js는 이런 요청을 받을 수 있는 기능을 가지고 있다.

예를 들어 아주 간단한 서버는 이렇게 만들 수 있다.

const http = require("http");

http.createServer(function(req, res) {
  res.end("안녕하세요");
}).listen(3000);

이 코드를 실행하면, 내 컴퓨터가 작은 서버가 된다.

그리고 브라우저에서:

http://localhost:3000

으로 접속하면 “안녕하세요”가 나온다.

즉, Node.js는 JavaScript로 요청을 받고, 답을 보내는 기능까지 할 수 있게 해준다.

Node.js가 인기 있는 이유

Node.js가 인기 있는 이유는 JavaScript 하나만으로 화면과 서버를 모두 만들 수 있기 때문이다.

예전에는 보통 이렇게 나뉘어 있었다.

역할 사용 언어
웹사이트 화면 JavaScript
서버 Python, Java, PHP

하지만 Node.js가 생긴 뒤에는:

역할 사용 언어
웹사이트 화면 JavaScript
서버 JavaScript(Node.js)

즉, 하나의 언어만 배우면 프론트엔드와 백엔드를 모두 만들 수 있게 된 것이다.

그래서 요즘은 “풀스택 개발자”를 목표로 하는 사람들도 JavaScript와 Node.js를 함께 배우는 경우가 많다.

Express는 왜 같이 나올까

Node.js를 공부하면 Express라는 이름도 거의 항상 같이 나온다.

왜냐하면 Node.js만으로 서버를 만들 수는 있지만, 코드가 조금 불편하기 때문이다.

예를 들어 단순한 페이지 하나만 만들어도 Node.js만 쓰면 코드가 길어진다.

그래서 사람들이 더 쉽게 서버를 만들 수 있도록 만든 것이 Express다.

Express는 Node.js 위에서 돌아가는 프레임워크다.

예를 들어 Express를 사용하면:

app.get("/", function(req, res) {
  res.send("안녕하세요");
});

처럼 훨씬 짧고 보기 쉽게 서버를 만들 수 있다.

즉:

  • Node.js = JavaScript를 컴퓨터에서 실행하는 도구
  • Express = 그 위에서 서버를 쉽게 만드는 도구

라고 생각하면 된다.

Node.js로 무엇을 만들 수 있을까

Node.js를 배우면 생각보다 정말 다양한 것을 만들 수 있다.

  • 로그인 서버
  • 채팅 서버
  • 게시판
  • 쇼핑몰 백엔드
  • API 서버
  • 실시간 알림 기능

특히 채팅이나 실시간 기능에 강하다는 점 때문에:

  • Discord
  • Netflix
  • PayPal

같은 큰 서비스들도 Node.js를 사용한다.

예를 들어 채팅 앱에서는 누군가 메시지를 보내면 다른 사람 화면에 바로 보여야 한다. Node.js는 이런 “실시간” 기능을 잘 처리할 수 있어서 많이 사용된다.

그럼 Python보다 Node.js가 더 좋을까

꼭 그렇지는 않다. Node.js와 Python은 서로 경쟁자라기보다, 상황에 따라 다르게 쓰는 도구에 가깝다.

예를 들어:

  • 웹사이트와 API → Node.js
  • AI, 데이터 분석 → Python

처럼 많이 나뉜다.

하지만 이미 JavaScript를 배우고 있는 사람이라면, Node.js를 배우는 것이 꽤 자연스럽다.

왜냐하면 새로운 언어를 다시 배우지 않아도 되기 때문이다.

나도 처음에는 서버를 만들려면 Python을 배워야 하는 줄 알았다. 그런데 Node.js를 알게 되니까, 이미 알고 있던 JavaScript로도 서버를 만들 수 있다는 게 꽤 재미있게 느껴졌다.

Node.js를 한 줄로 정리하면

Node.js는 JavaScript를 브라우저 밖에서도 실행할 수 있게 해주는 프로그램이다.

그래서 원래는 화면에서만 쓰던 JavaScript로도:

  • 서버 만들기
  • API 만들기
  • 채팅 기능 만들기

같은 것들이 가능해졌다.

즉, JavaScript를 더 넓게 사용할 수 있게 만든 것이 바로 Node.js다.