'비동기'에 해당하는 글 1건

Node.js

Programming/Node.js 2015. 5. 2. 01:24

구글 크롬 브라우저에서 사용하는 V8 자바스크립트 엔진을 기반으로한 서버 개발 환경.
자바스크립트 코드를 기반으로 머신 코드를 생성하여 다른 자바스크립트 엔진보다 속도가 빠름.

 

웹브라우저 뿐만이 아닌 범용적인 환경의 Javascript 개발을 위해 CommonJS 가 만든 모듈 명세를 따름.
기존 웹서버는 대부분 스레드를 기반으로 하는 동기 방식으로 네트워크 입출력을 처리.
- but... 쓰레드를 나눌수록 메모리 사용량이 증가
Node.js는 이벤트를 기반으로 하는 비동기 방식으로 네트워크 입출력을 처리.(단 하나의 쓰레드)
- but... 쓰레드가 뻗을 경우 프로그램 정지.
이 때문에 대규모 네트워크 프로그램 개발에 적합.

 

Node.js 다운로드 후 설치 - http://nodejs.org

 

터미널/명령 프롬프트에서 node를 입력하면 REPL이 나타난다.
 - REPL(Read Eval Print Loop, 레플) : 한 줄씩 코드를 입력해 실행해 볼 수 있는 공간
REPL은 shell 처럼 하나 이상의 코드를 입력하고 그 결과를 볼 수 있다.
각 브라우저 도구에 포함된 자바스크립트 콘솔과도 비슷하지만 DOM 은 존재하지 않는다.
REPL을 사용하면 간단한 자바스크립트들을 테스트 할 수 있지만, Node 프로그램으로 실행할 파일을 만들 수는 없다.
또 .(period)으로 시작하는 자체 meta-command 도 제공한다. (.help .clear, ...)

 

>node
>console.log('hi');
hi
undefined
>10>1
true
>.exit

 

 

ex) Node.js 웹서버 테스트

 

$ vi node.server.js

 

// 모듈 추출
var http = require('http');

 

// 웹 서버 생성 - 실행
http.createServer( function(requrest, response) {
    response.writeHead(200, { 'Content-Type' : 'text/html' });
    response.end('<h1>Hello World</h1>');
}).listen(8080, function() {
    console.log('Server running');
});

 

$ node node.server.js
Server running

 

브라우저에 localhost:8080 을 입력하면 Hello World 가 출력된다.

 

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,