<Node.js 란>
V8 으로 만들어진 이벤트 기반의 자바스크립트 런타임입니다.
웹서버와 같이 확장성 있는 네트워크 프로그램을 제작하기 위해 만들어졌습니다.
주로 서버를 실행하는 데 사용됩니다.
대부분의 자바스크립트는 웹 브라우저에서 실행되는데, node.js 는 서버 측에서 실행됩니다.
<비동기 프로그래밍이란>
비동기 방식이란 요청과 결과가 동시에 일어나지 않는 것입니다.
따라서 비동기 프로그래밍은 특정 코드의 처리가 완료되기 전 실행 중에도 아래로 계속 내려가며 다음 코드를 수행합니다.
<Node.js의 비동기 동작 방식>
node.js는 *싱글 스레드 기반으로 동작하는 서버입니다.
*하나의 프로세스가 하나의 일만 처리하는 것
따라서 비동기 방식을 채택하여 한번에 여러 일을 처리할 수 있게 만들어졌습니다.
node.js 에서의 비동기 처리는 이벤트 루프의 방식으로 풀어냅니다.
이벤트 루프는 Node.js의 실행 컨텍스트 중 하나로, 다른 실행 컨텍스트와 함께 호출 스택(Call Stack)에 관리됩니다. 이벤트 루프는 무한 루프에서 실행되며, 다음과 같은 구성으로 작동합니다.
이러한 작업을 반복하면서 node.js 는 싱글 스레드에서도 다중 요청 처리와 같은 비동기 작업을 지원하며 높은 처리량과 확장성을 가집니다.
console.log('Before');
setTimeout(function() {
console.log('Node');
}, 1000);
console.log('After');
위 코드는 node.js 에서 비동기식으로 setTimeout 함수를 사용하여 일정 시간 후에 실행하는 node.js에서의 대표적인 비동기식 코드입니다.
setTimeout 함수는 첫 번째 인자로 받은 콜백 함수를 두 번째 인자로 받은 시간(ms) 후에 실행합니다.
실행 결과는 "Before", "After", "Node" 순으로 출력됩니다.
이때 "Node"는 1초 후에 출력됩니다.
REST API (REpresentational State Transfer Application Programming Interface) (0) | 2023.06.25 |
---|---|
Node.Js 함수 (0) | 2023.03.15 |