Joyent라는 회사에서 개발 및 운영을 담당 Ryan Dahl은 Flickr의 파일 업로드 프로그래스바를 보았 을 때, 파일이 얼마나 업로드 되었는지 알지 못했고, 알기 위해서는 서버에 쿼리를 날려야한다는 점을 보고 조금 더 쉬운 방법을 찾는 과정에서 Node.js를 고안 처음부터 JavaScript를 Server Side로 옮기려던 것은 아니 었고, 자신의 목적에 적합했던 언어가 마침 JavaScript 였 음 NodeJS 시작
내부적으로 코드를 컴파일하여 구동 • Event 방식으로 비동기 I/O를 구현 • 익명의 함수(Anonymous function)와 클로져 (Closure)를 사용 (자바스크립트 특성) • HTML5 표준 중 하나인 WebSockets를 라이브러리 형 태로 지원 • …… NodeJS 특징
빠르다. • 서버와 클라이언트가 언어가 통일되고, 주요 로직이 쉽 게 공유 될 수 있다. • 쓰레드(혹은 프로세스)의 소비가 없기 때문에 메모리 과다 할당 문제가 없다. 따라서, 같은 메모리 크기로 더 많은 동시 접속을 받을 수 있다. • 스크립트 언어의 특성상 코드의 수정과 테스트가 편리 하다. NodeJS 장점