MEAN STACK node.js
테스트 환경 : Windows 10 64-bit
Node.js는 싱글스레드로 동작하며 실행중인 코드가 멈추면 서버가 중단된다.
Node.js는 I/O작업이 끝난 후 처리 될 callback함수만 있으면 다음 스레드의 진행여부에 상관없이 처리될 수 있다.
이벤트 루프란 코드 외부의 이벤트들을 처리하며, 결과를 callback으로 전달하는 객체라 할수 있다.
events 모듈 설치
node install events
신규 js파일 생성후 아래 코드 입력(eventLoop.js)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | // events 모듈 호출 var events = require('events'); // eventEmitter 오브젝트 생성 var eventEmitter = new events.EventEmitter(); // event handler 생성 var connectHandler = function connected() { console.log('connection succesful.'); // data_received 이벤트 발생 eventEmitter.emit('data_received'); } // 핸들러와 연결 이벤트를 바인딩 eventEmitter.on('connection', connectHandler); // 함수와 data_received 이벤트 바인딩 eventEmitter.on('data_received', function(){ console.log('data received succesfully.'); }); // connection 이벤트 발생 eventEmitter.emit('connection'); console.log("Program Ended."); | cs |
CMD창에서 실행
node eventLoop.js
결과 출력
connection succesful.
data received succesfully.
Program Ended.
앞서 포스팅한 콜백함수 예제처럼 event handler 내부에 오류를 발생시켜 테스트를 해볼 수 있는 코드이다.
참조 : http://www.tutorialspoint.com/nodejs/nodejs_event_loop.htm
'개발' 카테고리의 다른 글
[Linux] 사용자 & 그룹 명령어 모음 (0) | 2015.12.14 |
---|---|
[Node.js] Event Emitter (0) | 2015.12.14 |
[Node.js] callback 함수 사용하기 (0) | 2015.12.11 |
[Node.js] NPM - Node Package Manager (0) | 2015.12.09 |
[Node.js] REPL 사용 (0) | 2015.12.08 |