열정 실천

[Node.js] 노드의 정의 본문

개발 공부/Node.js (+자바스크립트)

[Node.js] 노드의 정의

구운오니 2022. 10. 7. 00:49
노드는 왜 만들어졌을까??

전에는 웹 상에서 파일 업로드할 때에 데이터를 조회하거나 하는 다른 작업을 할 수 없었다.

이러한 문제를 해결하기 위해 개발된 새로운 방식의 서버 도구가 바로 Node.js!

Node.js 란?

크롬 V8 자바 스크립트 엔진으로 빌드된 자바스크립트 런타임

런타임 : 특정 언어로 만든 프로그램들을 실행할 수 있게 해주는 가상 머신의 상태

노드의 내부 구조

 

 

 


 

 

 

 

위에서 언급했듯이 노드가 만들어 지기 전에는 웹 서버에 파일을 하나 업로드하면

핸들러가 이 파일을 업로드하기 전까지 다른 기능을 수행할 수 없기에

업로드가 완료될 때까지 기다려야한다.

그래서 노드는 하나의 요청 처리가 끝날 때까지 기다리지 않고,

다른 요청을 동시에 처리할 수 있는 비동기 입출력(논블로킹 입출력, Non-Blocking IO) 방식을 적용했다.

 

 

 

비동기 입출력 (Non-Blocking IO)

파일 내용을 다 읽고 난 후에 다른 일을 처리하는 동기 입출력 방식과 달리

비동기 입출력 방식은 콜백함수를 이용하여 다른 요청을 동시에 처리한다.

 

 

파일 시스템에 읽기 요청을 한 후

프로그램이 대기하지 않고, 다른 작업을 진행한다.

그리고 프로그램에서 해당 파일의 내용을 처리할 수 있는 시점이 되면.

콜백 함수(Callback Function)를 호출한다.

 

 

 

 

이미지출처 : Do it Node.js 프로그래밍