Node.js에 관해 간단히 정리한 글입니다.
Node.js란?
JavaScript의 런타임 환경
Node.js는 언어가 아닌 런타임 환경이다.
Node.js의 특징
1
2
3
4
비동기 이벤트 주도 JavaScript 런타임으로써
Node.js 는 확장성 있는 네트워크 애플리케이션을 만들 수 있도록 설계되었습니다.
- Node.js 공식 문서 -
단일 쓰레드 기반의 비동기 이벤트 주도, 논 블로킹
- 자바스크립트의 특징(싱글 쓰레드)를 고려하여 비동기 이벤트 주도 / 논 블로킹 방식을 선택.
- 싱글 쓰레드를 효율적으로 사용하기 위해 Event Loop를 사용.
- 서버에 부담이 적고 개발 속도가 빠르며 npm(node package manager)로 다양한 모듈을 이용할 수 있다는 것이 장점이다.
1
2
3
4
5
이는 오늘날 OS 스레드가 일반적으로 사용하는 동시성 모델과는 대조적입니다.
스레드 기반의 네트워크는 상대적으로 비효율적이고 사용하기가 몹시 어렵습니다.
게다가 잠금이 없으므로 Node.js 의 사용자는 프로세스의 교착상태에 대해서 걱정할 필요가 없습니다.
- Node.js 공식문서 -
JavaScript 동작원리
동기 비동기 / Blocking 과 Non-Blocking
참고자료 (reference)
Node.js®에 대해서
[Node.js] 개념 이해하기
[Node.js 1강]node js 란? 장점, 단점, 어떤 웹서비스에 사용해야할까?
틀린점, 오타에 대한 것은 언제든지 알려주세요!