Node.js callback & non-blocking
(단순히 문법적인 면으로만 보면 asm보다 javascript나 c++이 너무 어렵게 느껴지는건 왜일까...)
Callback은 많이 사용되는 개념이다.
예전에 이 블로그에 간단하게 설명을 해두었지만, 다시 설명해보자면 어떤 함수의 매개변수로 전달되는 함수를 'callback function'이라고 한다.
위의 코드에서 fs.readFile( )함수의 매개변수로 들어간 function이 바로 'callback function'이다.
이렇게 callback function을 이용하여 작성된 코드를 'non-blocking code'라고 하는데, 찾아보니 이게 node.js의 꽃이라고한다.
(물론, 잘못쓰면 독이라고도 한다!)
non-blocking이라는 개념이 있는 것처럼 blocking이라는 개념도 있다. 이 둘의 차이는 아래의 코드들을 직접 테스트해보면 알 수 있을 것이다.
(test.txt는 임의의 내용을 채워넣어보도록 하자)
두 예제를 각각 실행시켜보면, 'END OF PROGRAM'메시지가 콘솔에 출력되는 시점이 다르다.
non-blocking예제에서 readFile( )함수의 실행 후에 프로그램이 함수가 종료할 때까지 대기하지 않고, 바로 다음 명령을 실행하였기 때문이다.
때문에 이러한 non-blocking 코드는 blocking 코드를 사용하는 서버보다 더 많은 요청을 빠르게 처리할 수 있다.
참고 자료 : velopert.com/255
'Programming' 카테고리의 다른 글
Django channels (0) | 2017.01.15 |
---|---|
React DOM (0) | 2017.01.11 |
Microsoft Cognitive - Emotion (0) | 2016.11.12 |
python 얼굴인식 프로젝트 (0) | 2016.10.27 |
RESTful API (0) | 2016.09.20 |