반응형

동작 방식 

call stack과 callback(Task) queue를 지속적으로 감시하면서

call stack이 빈 경우 callback(Task) queue에 작업이 있는지 확인 하고

call stack으로 옮기는 역활

존재 이유

Node의 특징인 Single Thread와 Non Blocking I/O를 이루어 주는게 이벤트 루프이다.

 

call stack (호출 스택)

스택은 LIFO형태의 자료 구조이다. 그렇다면 콜 스택은?

자바스크립트 안에서 실해되는 모든 함수의 호출을 기록한 스택

callback queue (대기열)

큐는 FIFO형태 자료구조 Event Queue에 적재된 callback을 call stack에 올려준다.

 

스레드(thread)

프로세스가 할당받은 자원을 이용하는 실행의 단위

멀티 vs 싱글

멀티 : CPU의 최대 활용을 위해 프로그램의 둘 이상을 동시에 실행하는 기술 컨텍스트 스위칭을 통해 이루어짐

장 : 스레드 하나가 죽어도 다른 스레드로 작업을 이어간다

단 : 느림, 프로그래밍 난이도가 높다.

싱글 : 하나의 프로세스에서 하나의 스레드로만 실행

장 : 컨텍스트 스위칭 작업이 필요없음, 자원 접근에 대한 신경쓰지 않는다, 난이도가 쉽다, 메모리 적게사용

단 : 여러개의 CPU 활용하지 못한다. 에러를 처리 못하면 멈춘다.

노드는?

비동기 I/O, 단일 스레드 이벤트 루프 기반으로 동작 -> 요청 처리 성능이 좋다.

반응형

'취업전 끄적' 카테고리의 다른 글

데이터베이스와 ORM  (0) 2023.04.19
RESTful API?  (0) 2023.04.19
HTTP와 HTTPS  (0) 2023.04.19
동기와 비동기 코드 실행 방식  (0) 2023.04.14
콜백함수  (0) 2023.04.13

+ Recent posts