본문 바로가기

개발/기타

node.js

개요

http://nodejs.org

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

https://npmjs.org

- 원격 저장소의 확장 모듈

- 계정 별 모듈 관리 제공

- 버전 별 다운로드

- > 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