Node.js 철학

경량 코어

최소한의 기능 세트를 가지고 코어 바깥 부분에 userland, userspace 라고 하는 사용자 전용 모듈 생태계를 둠.

경량 모듈

애플리케이션과 재사용 가능한 라이브러리를 만들기위한 구성요소인 "모듈"을 사용

코드의 양 뿐만 아니라, 범위적 측면에서도 작은 모듈을 디자인 하는 것이 원칙

작은 것이 아름답다.

각 프로그램은 한가지 역할만 잘 하도록 만들어라

작은 외부 인터페이스

  1. 간결함, 실용주의

Node.js는 어떻게 작동하는가

노드는 고전적인 블로킹 I/O 방식의 문제점을 보완하기 위해 논블로킹 방식을 도입했다. 블로킹 방식의 문제점은, 주어진 I/O가 처리 되기 전 까지 해당 스레드를 블로킹한다. 스레드가 블로킹 되었기 때문에 작업은 안정적으로 처리가 됐겠지만, 그 사이에 해당 스레드는 다른 I/O를 처리하지 못하는 유휴시간이 발생하게된다.