-
공식 홈페이지의 설명
- Node.js는 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임이다.
노드는 흔히 말해 서버라고 알고 있는 사람들이 많은데 노드는 엄밀히 말해 런타임이다.
*런타임이란 정말 간단히 말해 실행기 라고 생각하면 된다.
노드는
- 서버의 역할도 수행할 수 있는 자바스크립트 런타임.
- 노드로 자바스크립트로 작성된 서버를 실행 할 수 있음.
- 서버 실행을 위해 필요한 http/https/http2 모듈을 제공한다.
자바스크립트라는 언어는 가장 많이 쓰이는 언어 중에 하나이다.
자바스크립트는 html이나 브라우저에 종속되어 있다.
하지만 Node.js가 생긴 뒤로는 자바스크립트를 브라우저 없이도 실행할 수 있고 html이 없어도 실행할 수 있게 되었다.
(물론 노드가 없었을 때에도 있었지만 다 성과가 좋지 않았다)
실무에 쓰일 정도로 성능이 좋은 Node의 발견으로 인해서 자바스크립트가 html이나 브라우저의 종속에서 벗어날 수 있게 됐다.
이 의미는 무엇이냐?
- 자바스크립트가 이제는 앱도 만들 수 있다.
- 데스크탑 프로그램도 만들 수 있다.
- 게임도 만들 수 있다.
즉, 자바스크립트가 이제는 다양한 역할에서 쓰일 수 있다.
런타임
특정 언어로 만든 프로그램들을 실행할 수 있게 해주는 가상 머신 (크롬의 V8엔진 사용)의 상태
노드는 자바스크립트로 만든 프로그램들을 실행할 수 있게 해준다.
내부구조
노드는 V8과 libuv를 내부적으로 포함한다.
- V8 엔진 : 오픈소스 자바스크립트 엔진으로 속도 문제를 개선했다.
- libuv : 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현한 라이브러리이다.
노드의 내부 구조는 다음과 같다
'노드' 카테고리의 다른 글
노드 exports, this, require, 순환참조 (0) 2023.04.11 노드 CommonJS 모듈 시스템 (0) 2023.04.11 REPL (0) 2023.04.11 서버로서의 노드 (0) 2023.04.11 노드의 특성 (0) 2023.04.11