Node.js 란? (IBM developerWorks)

Source

  • Evernote/Technote scraps/Node.js란.md

Summary

본문은 IBM developerWorks 의 2011 년 기사로, Node.js 가 고전적인 스레드 기반 서버 (Java/PHP 등) 의 동시 연결 한계 (메모리 병목) 를 해결하기 위해 설계된 서버 측 JavaScript 런타임임을 설명한다. Node.js 는 Google 의 V8 엔진을 활용하며, 각 연결마다 새 OS 스레드를 생성하지 않고 단일 프로세스 내에서 비동기 이벤트 루프 (Event-Driven) 모델을 사용한다. 이를 통해 수만 개의 동시 연결을 효율적으로 처리할 수 있으며, 복잡한 객체 지향 아키텍처 대신 콜백 함수와 모듈 시스템을 통해 간결하게 확장 가능한 네트워크 프로그램을 구축할 수 있다. Node.js 는 자체적으로 웹 서버 기능을 제공하지 않으며, 필요한 기능을 모듈로 추가하는 ‘ready-to-code’ 환경이다.

Key Points

  • Node.js 는 서버 측 JavaScript 런타임으로, Google 의 V8 엔진을 사용한다.
  • 기존 스레드 기반 서버의 메모리 한계 (연결당 ~2MB) 를 극복하기 위해 비동기 이벤트 구동형 모델을 채택했다.
  • 단일 프로세스 내에서 수만 개의 동시 연결을 처리할 수 있어 확장성이 뛰어나다.
  • Apache/Tomcat 과 달리 기본 웹 서버 기능은 없으며, 필요한 기능을 모듈 (npm 등) 로 추가하는 구조이다.
  • 객체 지향 프로그래밍 대신 이벤트 리스너와 콜백 함수를 중심으로 한 간결한 코딩 스타일을 지향한다.