-
[면접 준비] Node.js: single-threaded, non-blocking, asynchronous 기반 JS 런타임면접 준비 2024. 7. 29. 09:43
학습 키워드: Node.js2024-07-29 면접 카타 질문
Node.js는 single-threaded 기반 JS 런타임입니다. 이에 대해 아는 만큼 설명해주세요:
'Node.js는 single-threaded 기반 JS 런타임이다' 라는 말은 Node.js를 이용하여 작성된 JS 코드는 단일 main thread 위에서 동작한다는 뜻입니다. Thread가 하나이기 때문에 개발 시 동시성 문제에 대해 고민할 필요가 없어 코드 작성이 쉬워지는 장점이 생깁니다.
Node.js는 non-blocking, asynchronous 기반 JS 런타임입니다. 이에 대해 아는 만큼 설명해주세요:
Node.js는 이벤트 루프라는 것을 통해 I/O 작업을 시스템 커널에 넘겨 async / non-blocking 방식으로 처리합니다. 현대 대부분의 커널은 multi-threaded 환경이기 때문에 넘겨받은 작업이 백그라운드에서 처리되며, 완료 시 이를 Node.js에게 알려 이벤트 루프의 poll queue에 callback을 추가하고, queue가 비어있지 않은 동안은 queue에 추가된 callback을 동기적으로 처리하게 됩니다.
--
728x90'면접 준비' 카테고리의 다른 글
[면접 준비] Node.js의 Libuv 라이브러리 설명하기 (0) 2024.07.30 [면접 준비] Node.js: event loop란? (0) 2024.07.30 [면접 준비] 깊은 복사, 얕은 복사 (0) 2024.07.26 [면접 준비] arrow function 설명, Express 설명 및 대안 (0) 2024.07.25 [면접 준비] async await 및 hoisting 설명하기 (0) 2024.07.23