개요
2009, Ryan Dahl
Chrome V8 Javascript Engine
Evented Server-side Javascript
Eevented, Non-Bloacking I/O
- 이벤트 기반 비동기 방식으로 네트워크 입출력 처리
- 하나의 스레드 사용
- 데드락이 없음
- 빠른 속도, 적은 자원 사용
- 문제 발생 시 프로그램 전체에 영향
특징
- 자바스크립트 언어 사용 : 별도의 언어 습득 불필요
- 구글이 만드는 V8 자바스크립트 엔진 : 꾸준한 업데이트, 속도 및 성능 향상 보장
- C++로 개발된 V8 : C++을 이용한 기능 확장
- NPM을 통한 손쉬운 모듈 확장
- 실행 시점에 컴파일
- 자바스크립트 파싱 : C나 C++보다는 느린 속도
NPM Registry
- Node Packaged Modules
- 원격 저장소의 확장 모듈
- 계정 별 모듈 관리 제공
- 버전 별 다운로드
- > npm install XXX
Reference
- ebay
- Linked in
- Yammer
- NHN
서버 예제
- helloworld.js
Web Socket
- HTML 표준
- 서버 측에서의 복잡한 프로그래밍 없이 웹을 통해서 일반적인 TCP소켓과 같이 실시간 연결지향 양방향 전이중 통신을 가능하게 하는 기술
- 기존 웹 브라우저에서 서버로 데이터를 요청하는 방식에 비해, 서버에서 브라우저로 데이터 전송이 가능
- 클라이언트 및 웹서버도 Web Socket을 지원해야 함
- 현재 대부분의 최신 버전 브라우저에서 지원
- Jetty, Glassfish 등의 WAS에서 지원
Socket.io
- node.js의 소켓 통신 라이브러리
- WebSocket, FlashSoket, AJAX Long Polling, AJAX Multi part Streaming, IFrame, JSONP Pollng을 하나의 API로 추상화
- 브라우저와 웹 서버의 종류와 버전을 파악하여 가장 적합한 기술을 선택하여 사용
- LearnBoost (https://www.learnboost.com) 개발
- > npm install socket.io
채팅 예제
- server.js
채팅 예제
- chatting.html
'개발 > 기타' 카테고리의 다른 글
우분투에서 node.js 설치 (0) | 2015.07.22 |
---|