- Node.js는 single-threaded 기반 JS 런타임입니다. 이에 대해 아는 만큼 설명해주세요.
: 하나의 스레드 사용 => 하나의 작업만 처리할 수 있음. 스레드 생성과 관리에 드는 부담을 줄임. 한 번에 하나의 작업만 처리하기 때문에 동시접근 문제 방지 가능. 서버확장이 매우 자유로워 웹서버에 특화
-- Node.js는 non-blocking, asynchronous 기반 JS 런타임입니다. 이에 대해 아는 만큼 설명해주세요.
: 특정 작업 수행하는 동안 다른 작업을 중지시키는 블로킹과 달리 프로그램이 여러 작업을 동시처리할 수 있으며 호출이 완료되기 기다리지 않고 바로 다음작업으로 넘어갈 수 있도록 제어권 호출한 함수에게 반환
- Node.js의 이벤트 루프란 무엇이고 왜 필요하며 어떻게 작동하는지 아는 만큼 설명해주세요.
: 하나의 스레드를 사용하는 노드에서 많은 요청을 효율적으로 처리하기 위해 사용하며,
여러 이벤트들과 같은 비동기 작업을 모아서 관리 후 순서대로 실행하도록 도와줌
호출 스택이 비어있고 이벤트 큐에 작업이 있으면 이벤트 큐 작업을 호출스택으로 이동하는 역할 담당