-
노드_서버 기능이 제공되는 자바스크립트 런타임노드!노드! 너를 어떻하면 좋겠니! 2022. 9. 12. 21:01
C와 C++로 구현된 자바스크립트엔진과 라이브러리로 노드의 내부에 내장되어있다.
이벤트가 발생할 때 미리 저장해둔 작업을 수행하는 방식은 이벤트리스터에 콜백함수를 등록하는 것
그것은 클릭 혹은 서버요청등과 같은 사용자의 피드백에 즉각적인 반응에 대응하는 언어라는 뜻(프론트앤드)
이벤트가 발생하면 이벤트리스너가 이벤트에 저장해둔 함수를 실행하도록 한다.
이벤트루프
이벤트 발생에 따른 호출된 함수들의 순서 결정 / 노드 종료될때까지 이벤트 처리를 위한 작업을 쉬지않고 컨트롤함/ 태스크 큐에서 호출스택이 비지않도록 함수를 이동하거나 대기하거나 하여 루프라 한다.
태스크 큐
호출스택에 이벤트루프의 컨트롤에 따라 실행순서에 맞춰 보내질 함수들이 쌓여있는 영역
백그라운드
호출순서에 영향을 주는 대기영역 ( 실행순서를 바뀌게 하는 근본적인 영역) -> setTimeout 같은 타이머나 이벤트리스너들의 대기장소
논 블로킹 I/O
자바스크립트 코드는 동시에 실행할 수는 없지만 입출력작업은 동시에 처리할 수 있다는 것 / 실행결과를 기다리지 않고 다름실행시작을 하는 것 / 서버의 기본적인 역활인 입출력요청을 생각하면 서버로서의 노드의 역활은 최적화라는 뜻
싱글스레드
프로세스는 운영체제의 작업단위(프로세스간에는 자원공유안함) / 스레드는 프로세스내에서 실행되는 흐름의 단위 , 스레드끼지는 하나의 프로세스안에서 자원을 공유 /노드실행에 따른 프로세스가 생성되는 그 안의 여러 스레드가 생성되지만 개발자가 제어할 수 있는 스레드가 하나라는 뜻
'노드!노드! 너를 어떻하면 좋겠니!' 카테고리의 다른 글
ES6(ES2015) (0) 2022.09.12 우분트(리눅스) 노드설치하기 (0) 2022.09.12 서버로서의 노드 (0) 2021.11.23