FF= FunFact
Not a Server, Not a language. Its a runtime environment where we can run JS
저번 시간에 서버와 스레드에 대한 내용을 정리했을때 Non-Blocking I/O에 대해서 알아봤다.
모든 것을 NB-I/O 방식으로 바로 처리하는것을 Busy-Waiting이라고 한다. 이것은 데이터가 없어도 계속 돌아간다는 것이다.
회전초밥에 초밥없이 접시만 계속 돌아가는것이다.
그걸 돌리는 CPU는 엄청난 과부화가 걸린다.
Busy-Waiting을 잡아줄 친구다. 새로운 이벤트가 올때까지 멈춰서 CPU 과부화를 예방한다.
아주 미친 인터페이스다.
이것은 많이 들어봤을 Event-Loop Architect 의 일부다.
밑에 그림을 보면 초록색 그림에 동그라미가 있다. 이벤트 마다 어떻게 처리( Callback ) 될건지 Round Loading 을 해준다. Event-Loop - where callbacks are assigned and used
책에서 처음 등장하는 패턴이다.


Handler 가 투입되며 완성되는 패턴이다.

이 논블로킹과 패턴을 구현하기 위해서는 libuv 라는 라이브러리가 었어야한다. 노드에서 가장 중요하다고 할수있다. 루프 생성 이벤트 큐 관리 비동기I/O… 대충 필수템이라고 보면된다.
그렇게 노드의 구성은 :

- 혁신적인 설계와 속도 효율적인 메모리 관리로 높은 평가를 받고 있다.자바스크립트라는 차에 엔진을 달아줬다고 생각하면된다.
FF : 자바스크립트는 느리고 사용량이 적은 친구였다.
구글에서 새로운 자바스크립트 엔지 V( 8 ) 을 장착한 크롬이 나오며 이 친구를 빠르게 해주었다.
V ( 8 ) 로 인해 노드가 시작됬다고 할수있다.
참고 자료
https://tusharf5.com/posts/node-design-patterns-reactor-pattern/
https://www.geeksforgeeks.org/what-is-reactor-pattern-in-node-js/