Node JS의 싱글스레드 - 2

 안녕하세요. 이번에는 싱글 스레드로 동작되는 Node JS에 오래 걸리는 작업의 요청이 들어올때 어떻게 대응하는지를 알아보겠습니다.




 이번에도 모든 요청을 받습니다. 그런데 Client2 손님의 요청사항은 다른 손님의 요청에 비해 상당히 깁니다.



 일단 요청 사항에 대해서 진행을 하고 가장 짧은 아이스 아메리카노를 Client1 손님한테 드립니다. 


 그런데 Client2 손님한테 음료를 주는것이 아닌 Client3 손님의 음료를 먼저 줍니다. 이유는 악마의 음료의 시간이 아이스 카페라테에 비해 훨씬 길기 때문에 먼저 완료된 요청사항 순서로 진행이 되기 때문입니다. Client3손님은 Client2손님의 음료가 나올때까지 기다릴 필요없이 완료되자마자 음료를 받을수 있습니다.


 이제 마지막 Client2의 손님이 원하는 음료를 받게 됩니다. 이처럼 Node JS는 모든 요청을 다 받지만 그렇다고 요청의 순서대로 응답을 하지 않습니다. 먼저 끝나는 작업 순으로 Node가 응답을 보내는 것입니다. 


 위 과정을 커피점으로 묘사해서 설명을 했지만 실제로는 생략된 내용이 있습니다. 자세한 내용은 다음 Node JS에 대해서 글을 작성할때 설명 드리겠습니다.


다음글 : Node JS의 Non Blocking(논 블로킹)

댓글

이 블로그의 인기 게시물

Lesson 12_1 프로퍼티 노드(Property Node)

DAQ로 전압 측정하기-2

Nest JS URL에 있는 쿼리(Query) 읽기