Back-End

Node.js의 작동방식과 HTML, Node.js, SQLite의 작동 관계

hyeeoooook 2025. 11. 30. 03:10

Node.js란?

서버 측 JavaScript 런타임 환경이다.

논블로킹/비동기 방식의 API를 서버환경에 적용했다. V8엔진을 사용한다.

소스 코드는 C++, 자바스크립트, 파이썬 등으로 이루어져 있다.

 

다음은 Node.js의 아키텍처이다. 

1. Application에서 JS 코드가 실행되면, V8 엔진이 이를 JIT 컴파일하여 바이트 코드를 기계어로 변환합니다.

2. JS 코드에서 비동기 API를 호출하면, Node.js는 이를 I/O 풀 또는 워커스레드에 등록하고, 콜백 실행을 위해 Event Queue에 대기시킵니다.

3. I/O 요청은 libuv가 워커스레드 또는 OS I/O로 처리하고, 완료되면 콜백이 Event Queue에 등록됩니다. Event Loop가 큐를 확인하여 콜백을 실행합니다.

4. 작업이 완료되면 콜백이 Event Queue에 등록되고, Event Loop가 이를 실행하여 JS 컨텍스트(V8)로 전달합니다.

5. Event Loop가 콜백을 실행하면, 결과값이 JS 애플리케이션 로직으로 전달되어 최종적으로 사용자가 작성한 함수나 애플리케이션에 반환됩니다.

 

아래는 간단한 홈페이지에 Hello world!를 출력하는 server.js 파일이다.

// server.js
const http = require('http'); // HTTP 서버 만들기

// 서버 만들기
const server = http.createServer((req, res) => {
  res.end('Hello World'); // 요청 들어오면 'Hello World' 보내기
});

server.listen(3000, () => {
  console.log('서버 실행! http://localhost:3000');
});

결과값