Node JS 튜토리얼 심심풀이 번역

http://www.tutorialspoint.com/nodejs/nodejs_tutorial.pdf

(단순히 제가 제 자신의 이해를 돕기 위해 정리한겁니다)

6. Callback Concept

콜백은 비동기 (asynchronous) 함수
no wait for File I/O : 비동기 프로그래밍의 좋은 예시.

예)
var fs = require("fs");
fs.readFile('input.txt', function (err, data) {
if (err) return console.error(err);
console.log(data.toString());
});
console.log("Program Ended");

출력 :
Program Ended
Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!

콜백을 사용하게 되면 프로그램의 가장 아래부분까지 호출 된후에 파일읽기가 진행된다.

7. Event Loop

Node.Js는 싱글 스레드 어플리케이션 이지만, event와 callback 컵셉통해 동시성을 보장한다. 이 event와 callback은 async function calls로 동시성을 유지함.


Node쓰레드는 하나의 테스크가 끝나도 이벤트루프를 유지하고 상응하는 이벤트가 event-listener를 호출하도록 신호를 보낸다.

Event-Drive Programming
Node.Js는 이벤트를 많이 사용하고 이건 Node.js가 다른 비슷한 테크닉보다 엄청 빠른 이유이기도 하다. Node 서버가 시작하자마자 단순히 변수 함수들을 선언되면 이벤트가 발생하기를 기다린다.

event-driven 응용프로그램에는 메인루프가 대체적으로 이벤트들을 듣고(기다리고) 그 이벤트 리스너중 하나가 발견되면(detected) callback function를 트리거 한다.


비록 이 이벤트 호출 방식이 callback이랑 아주 비슷해보이더라도 콜백 함수 비동기 함수가 결과를 리턴할때 호출되고, 이벤트 핸들링은 observer pattern을 이용해서 동작한다. 이벤트 감지 (LIsten to events )같은 function은 Observers같이 행동한다. event가 발생하면 언제라도 그 리스너는 함수를 실행한다. node.js는 많은 in-built 이벤트가 이벤트 모듈과 EventEmitter 클래스를 사용가능하다.