웹 풀스택

Node.js의 특징

kevinmj12 2025. 2. 10. 14:07

Node.js란

Node.js는 자바스크립트를 브라우저 밖에서 스크립트 언어 이상의 프로그래밍 언어 역할을 할 수 있도록 실행할 수 있게 하는 런타임 환경이다.

덕분에 Node.js는 다양한 영역에서 다양하게 활용되고 있는데, 아래 통계를 보면 그 위상을 짐작할 수 있다.

https://survey.stackoverflow.co/2024/technology

 

Technology | 2024 Stack Overflow Developer Survey

PostgreSQL debuted in the developer survey in 2018 when 33% of developers reported using it, compared with the most popular option that year: MySQL, in use by 59% of developers. Six years later, PostgreSQL is used by 49% of developers and is the most popul

survey.stackoverflow.co

 

개발자들이라면 알만한 사이트 스택오버플로우의 2024년 통계 자료이다.

물론 국내에서 백엔드는 Spring이 대부분 사용되는 경향이 있지만 전세계적으로 보았을 때는 Node.js의 비율이 상당하다.

 

Node.js 특징

  • 싱글 스레드: 처리해야 할 이벤트, 일이 많이 있어도 하나씩 하나씩 처리한다.
  • 이벤트 기발: 이벤트가 있어야만 일을 진행한다.
  • 논블로킹 I.O: 일을 처리하다 비는 시간이 생기면 다른 일을 처리한다.

논블로킹 I.O에 대한 자세한 설명은 다음과 같다.

function first() {
  console.log("첫 번째");
}

function second() {
  console.log("두 번째");
}

function third() {
  console.log("세 번째");
}

first();
second();
third();

// Result
// 첫 번째
// 두 번째
// 세 번째

first(), second(), third() 세 개의 함수를 만들고 순서대로 실행을 해준다.

당연하게도 첫 번째, 두 번째, 세 번째 순으로 출력이 진행된다.

 

function first() {
  console.log("첫 번째");
}

function second() {
  console.log("두 번째");
}

function third() {
  console.log("세 번째");
}

first();
setTimeout(second, 2000);
third();

// Result
// 첫 번째
// 세 번째
// 두 번째

이제 second에 setTimeout()함수를 적용하여 다시 실행해보자.

setTimeout(func, ms)는 func 함수를 ms 시간 뒤에 실행해주는 함수이다.

즉 setTimeout(second, 2000)은 second() 함수를 2초(2000ms) 뒤에 실행해준다.

 

위 코드를 실행하보면, 첫 번째와 세 번째가 출력된 후 2초 뒤에 두 번째가 출력되는 것을 알 수 있다.

second()를 실행하였을 때 2초를 기다려야 하기 때문에, 그 빈 시간동안 third()를 실행하고 second()를 실행한 것이다.