티스토리 뷰

반응형

Node.js는 서버 환경에서 작동하는 자바스크립트로,

CommonJS + V8 엔진으로 구성되어 있다.


* 기존의 네트워크 애플리케이션과의 차이점은?

기존의 네트워크 애플리케이션(ex. 톰캣 서버 등)은 쓰레드 기반의 네트워크 입출력을 처리했다.

반면 Node.js는 이벤트 기반의 네트워크 입출력을 처리한다.


이 말은 무엇을 의미할까? 


Node.js는 단일 쓰레드로 구성되어 있어 

사용자의 이벤트가 발생되면 그 순서에 따라 순차적으로 작업을 수행한다는 것을 뜻한다. 


비유를 하자면, 

기존의 네트워크 App은 일 처리를 손오공처럼 

A, B, C, D 일을 처리하기 위해 본인을 여러 개로 복제해서 한꺼번에 처리하고

노드 네트워크는 평범한 인간처럼 

A, B, C, D 일을 처리하기 위해 일이 발생된 순서대로 처리한다고 보면 될 것 같다.


(오마이갓! 손오공이라니 겁나 아재 스럽다 -_-)


단일 쓰레드라는 말은 개발자가 쓰레드 관리를 할 필요가 없기 때문에 

골머리 하나에서 자유로워진다는 것을 의미할 것 같다 ㅋㅋ


하지만, 단일 쓰레드 이기 때문에 이벤트 처리 도중 문제가 생기게 되면

꼼짝 없이 문제가 해결될 때까지 시스템 전체가 다음 일을 처리하지 못하고

기다려야 한다는 단점도 있다.


* Node.js의 장점

- JS를 사용하여 웹 개발자들이 쉽게 접근이 가능

- V8 엔진을 사용하기 때문에 구글에서 손을 떼기 않는 이상 속도는 향상될 것

- C++을 사용하여 확장할 수 있음.


* Node.js의 단점

- JS를 사용하였기 때문에 C/C++로 개발된 서버 애플리케이션 보다 속도가 느리다.


반응형

'정리하기 > 모던웹을 위한 Node.js' 카테고리의 다른 글

외부 모듈  (0) 2017.06.06
http 모듈  (0) 2017.05.28
이벤트  (0) 2017.05.20
node.js의 전역 객체  (0) 2017.05.14
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함