Node.JS 장점과 단점, 비동기방식에 대해서

IT/Node.Js


Node.JS 공부를 시작하며 하나하나 정리를 하며 남겨볼 요령으로 다시 티스토리 블로그에 남겨보도록 한다.

참고한 책은 "모던 웹을 위한 Node.js프로그래밍"이다.



Node.JS는 기존 브라우저에서만 사용하던 javascript를 서버에서도 사용 할 수 있도록 한 획기적인 프로그램이다.  javascipt언어 하나가지고 클라이언트와 서버까지 프로그래밍을 할 수 있다니!!, Node.JS의 장점 중 하나라 할 수 있겠다. 


또한 Node.JS는 기존 대규모 네트워크 프로그래밍 방식인 스레드 방식이 아닌 이벤트 방식으로 동작한다고 한다. 기존 스레드 방식은 규모가 커지고 처리해야할 일들이 많아지면 서버의 사양에 따라 처리능력이 달라지고, 많은 비용이 들어가는 반면, Node.JS는 단일 스레드로 처리하기 떄문에 대규모 네트워크 처리에 적합하다고 한다. 이 또한 장점 중하나이다. 그러나, 단일 스레드인 Node.JS가 장점이 될 수도 있지만, 단점이 될 수도 있는데 단일 스레드로 동작하기 때문에 하나가 오류가 난다면 프로그램 전체가 오류가 생기는 단점이 있다. 


또 다른 단점은 javascript가 발전하여 속도가 빨라졌다고는 하나 C나 C++보다 속도가 빠르진 않다. 또한 Node.JS는 아직 1.0버전 조차 발표가 되지 않은 상황이라고 한다. 프로젝트에 Node.JS를 도입할 때 꺼려지는 이유중 하나 일 수도 있겠다.



제목에 명시한 비동기 방식은, 위에 장점에서 언급한 단일 스레드와 관련이 있는데, javascipt의 이벤트 바인딩 처럼 동작하는 것을 말한다. 즉 이벤트 기반 비동기식 방식이라 말하며 이벤트가 발생하면 어떤 행위를 하는 것이다.