PHP 또는 ASP가 파일 요청을 처리하는 방법은 다음과 같습니다.

  1. 컴퓨터의 파일 시스템에 작업을 보냅니다.
  2. 파일 시스템이 열리고 파일을 읽는 동안 대기합니다.
  3. 클라이언트에 내용을 반환합니다.
  4. 다음 요청을 처리 할 준비가되었습니다.

Node.js가 파일 요청을 처리하는 방법은 다음과 같습니다

1.컴퓨터의 파일 시스템에 작업을 보냅니다

2.다음 요청을 처리 할 준비가되었습니다

3.파일 시스템이 열리고 파일을 읽을 때 서버는 클라이언트에 내용을 반환합니다.

Node.js는 대기를 제거하고 단순히 다음 요청으로 계속 진행합니다.

Node.js는 단일 스레드, 비 블로킹, 비동기 프로그래밍을 실행합니다. 이는 매우 메모리 효율적입니다.



일반 php랑 NodeJs 파일처리하는 차이점을 설명한건데요. w3school에서 퍼왔습니다

2번까지는 이해가 되었고 3번에서 파일시스템이 열리고 파일을 읽을때 서버는 클라이언트에 내용을 반환합니다 하구.

그밑에 Node Js는 대기를 제거하고 단순히 다음요청으로 계속 진행합니다 라고 되어이쓴데...


이런 작업을하려면 멀티쓰레드를 사용해야 가능한것 아닌가요? 쓰레드 하나가 하나의 작업을 처리하는걸로하는데

Node js가 단일쓰레드를 사용한다고 되어있어요.


그럼 node js는 파일을 읽고 반환할때까지 아무런 작업도 못해야하는 것이 아닌가요?

다른 사이트의 글을 읽어보니

Node.js 기반 서버는 API가 실행되었을때, 데이터를 반환할때까지 기다리지 않고 다음 API 를 실행합니다. 그리고 이전에 실행했던 API가 결과값을 반환할 시, NodeJS의 이벤트 알림 메커니즘을 통해 결과값을 받아옵니다.


이런식으로 설명이 되어있던데...어떻게 하나의 작업이 끝나기전에 기다리지않고 다음 작업(다음 API)를 실행할 수있는 것인지 이해가 잘가지않아요