티스토리 뷰

Node.js

Node.js란?

권윤학 2016. 9. 16. 22:11


Node.js는 서버사이드 javascript이며 구글의 자바스크립트 엔진 V8이 빌트인 되어있다.

Javascript의 비동기가 익숙하지 않은 사람에게는 매우 어색한 서버사이드 언어로 이벤트 기반 Non-Blocking I/O가 그 특징이다.

또한 javascript의 CommonJS의 모듈 방식을 지원한다.

 

Node.js에 장점이라면 


역시 생산성이 가장 먼저 얘기 나온다.

Javascript가 HTML5의 등장으로 웹 개발의 비중이 높아져서 이로인한 프론트엔드 개발 수준 높은 개발이 요구됨에 따라 Javascript가 발전되었는데 Node.js의 등장으로 백엔드까지 Javascript로 제어가 가능해져 한가지의 언어로 서버와 클라이언트를 개발 할수 있어 훨씬 높은 생산성을 보여주고 있다. 

또한 기존에 개발되었던 javascript 라이브러리들을 그대로 사용이 가능하여 훌륭한 유틸성 라이브러리인 underscore.js / lodash.js 같은 라이브러리를 npm이라는 패키지 매니저(npm은 다른 포스트에서 자세히 다루겠습니다.)를 이용하여 쉽게 설치 및 사용이 가능한점이 생산성에 플러스 된다고 생각한다


또 다른 장점으로는 socket.io 같은 라이브러리의 존재다.

사실 다른 서버사이드 언어에도 좋은 라이브러리들은 많다.(Ruby on Rails / python의 django / PHP의 Laravel 등)

socket.io는 웹 소켓을 구현하기 위한 라이브러리다. HTML5의 기술 중 좋은 기술로 하나로 브라우져 호환의 문제로 제대로 활용하기 힘든 기술이긴 하나 socket.io는 웹소켓이 지원안되는 브라우져일 경우 AJAX 폴링 같은 기술로 대신하여 지원해줌으로서 socket.io의 API만 이용하면 쉽게 사용이 가능하다.


이러한 장점이 있지만 단점으로 뽑자면 운영 및 장애 디버깅에 대응하는 면에서는 신경쓸게 기존 서버사이드 언어에 비해 많이 존재합니다.

비동기라는 측면에 익숙하지 않은 개발자들에겐 러닝커브도 있고...

그렇지만 앞으로도 짧은 시간에 대량의 호출을 처리하는 서비스에서는 node.js가 많이 쓰여질것 같습니다.


다음 포스트에는 NPM / bower 같은 패키지 매니저 관련된 내용으로 포스트 할것 같습니다.

댓글