hello world

(단순히 문법적인 면으로만 보면 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