Node.js 아키텍처 쉽게 설명하기

몽슈뜨·2023년 5월 9일
0

TIL

목록 보기
60/70

  1. 애플리케이션에서 요청이 발생합니다. V8 엔진은 자바스크립트 코드로 된 요청을 바이트 코드나 기계어로 변경합니다.

  2. 자바스크립트로 작성된 Node.js의 API는 C++로 작성된 코드를 사용합니다.

  3. V8 엔진은 이벤트 루프로 libuv를 사용하고 전달된 요청을 libuv 내부의 이벤트 큐에 추가합니다.

  4. 이벤트 큐에 쌓인 요청은 이벤트 루프에 전달되고, 운영체제 커널에 비동기 처리를 맡깁니다. 운영체제 내부적으로 비동기 처리가 힘든 경우(DB, DNS 룩업, 파일 처리 등)는 워커 스레드에서 처리합니다.

  5. 운영체제의 커널 또는 워커 스레드가 완료한 작업은 다시 이벤트 루프로 전달됩니다.

  6. 이벤트 루프에서는 콜백으로 전달된 요청에 대한 완료 처리를 하고 넘깁니다.

  7. 완료 처리된 응답을 node.js 애플리케이션으로 전달합니다.

profile
개발자되면 맥북사줄께

0개의 댓글