>  기사  >  웹 프론트엔드  >  nodejs는 어떤 플랫폼인가요?

nodejs는 어떤 플랫폼인가요?

青灯夜游
青灯夜游원래의
2022-01-25 12:50:352092검색

nodejs는 Chrome JavaScript 런타임을 기반으로 하는 플랫폼으로, 빠른 응답 속도와 손쉬운 확장으로 네트워크 애플리케이션을 쉽게 구축하는 데 주로 사용됩니다.

nodejs는 어떤 플랫폼인가요?

이 튜토리얼의 운영 환경: windows7 시스템, nodejs 버전 12.19.0, DELL G3 컴퓨터.

Node.js는 Chrome JavaScript 런타임을 기반으로 구축된 플랫폼으로 JavaScript를 서버 측에서 실행할 수 있게 해주는 개발 플랫폼입니다. 이는 JavaScript를 PHP, Python과 같은 서버 측 언어와 동등한 스크립팅 언어로 만듭니다. , 펄, 루비.

Node.js는 Google의 V8 엔진을 기반으로 하는 이벤트 중심 I/O 서버 측 JavaScript 환경입니다. V8 엔진은 Javascript를 매우 빠르게 실행하고 성능이 매우 좋습니다.

Node.js는 빠른 응답 속도와 쉬운 확장으로 웹 애플리케이션을 쉽게 구축하는 데 사용됩니다.

런타임이란 무엇인가요?

런타임이란 프로그램이 작동하는 동안 의존해야 하는 일련의 구성요소 또는 도구입니다. 이러한 도구와 구성요소는 함께 패키지되어 프로그래머에게 제공되며, 프로그래머는 자신이 작성한 코드를 실행할 수 있습니다.

JavaScript의 경우 작동 중에 다음 구성 요소에 의존해야 합니다.

1) Interpreter

JavaScript는 해석과 실행이 동시에 필요한 스크립트 언어로, 전체가 컴파일됩니다. 프로세스는 통역사에 의해 수행됩니다. 인터프리터가 없으면 JavaScript는 컴퓨터에서 읽을 수 없는 일반 텍스트 파일 묶음일 뿐입니다.

2) 표준 라이브러리

JavaScript 코드에 내장된 일부 함수를 호출하겠습니다. 이러한 함수는 직접 작성한 것이 아니라 표준 라이브러리와 함께 제공됩니다.

3) 로컬 모듈

소위 로컬 모듈은 미리 컴파일된 모듈입니다. 바이너리 파일로 실행 파일과 내부 구조가 다르지 않지만 단독으로 실행할 수는 없습니다. 이러한 로컬 모듈은 실제로 동적 링크 라이브러리(Windows에서는 .dll 파일)입니다. C 언어, C++ 등의 컴파일된 언어를 사용해 본 적이 있다면 더 잘 이해할 수 있을 것입니다.

JavaScript의 많은 기능에는 다음과 같은 로컬 모듈의 지원이 필요합니다.

  • 쿠키는 소량의 사용자 데이터를 저장하는 데 사용됩니다. 쿠키를 사용하려면 다음과 같은 지원이 있어야 합니다. 파일 작업 모듈.

  • Ajax는 인터넷을 사용하여 서버에 데이터를 요청할 수 있습니다. 이는 네트워크 작업이며 네트워크 라이브러리에서 지원되어야 합니다.

  • 코드의 실행 과정을 단계별로 추적하고 논리적 오류를 찾는 과정을 디버깅이라고 하며 디버거의 지원이 필요합니다.

  • JavaScript는 HTML을 작동할 수 있는데, 이를 위해서는 HTML 파싱 모듈이 있어야 DOM 트리를 미리 구축할 수 있습니다.

로컬 모듈은 일반적으로 공통 기능을 캡슐화하고 높은 성능 요구 사항을 갖기 때문에 일반적으로 C 언어, C++, 어셈블리 언어 등과 같은 컴파일된 언어를 사용하여 구현됩니다.

JavaScript 인터프리터는 로컬 모듈의 지원이 필요합니다. 표준 라이브러리는 작성 시 로컬 모듈의 인터페이스도 호출합니다. 그러나 우리가 작성하는 JavaScript 코드는 일반적으로 로컬 모듈을 직접 사용하지 않으므로 웹 프런트엔드 프로그래머가 이를 건드릴 수 없습니다. .

로컬 모듈은 눈에 보이지는 않지만 꼭 필요한 존재입니다.

요약

인터프리터, 표준 라이브러리, 로컬 모듈 등 다양한 구성요소/도구가 JavaScript 코드 실행을 공동으로 지원합니다. 이를 통칭하여 JavaScript 런타임이라고 합니다.

Node.js 이전에는 JavaScript 런타임이 브라우저에 번들로 포함되어 브라우저의 다양한 모듈로 나타났습니다. 이는 JavaScript 코드를 실행하려면 브라우저를 시작해야 함을 의미합니다. JavaScript는 브라우저의 손바닥을 벗어날 수 없으며 해당 기능은 크게 제한되어 웹 스크립트로만 사용할 수 있습니다.

Node.js의 구성

Node.js 런타임은 주로 V8 엔진, 표준 라이브러리, 로컬 모듈로 구성됩니다. 특히 로컬 모듈의 개수는 밑에서부터 Node.js 기능의 강점을 결정합니다.

1) V8 엔진

V8 엔진은 JavaScript 코드를 구문 분석하고 실행하는 역할을 하는 JavaScript 해석기입니다.

V8 엔진은 Java 가상 머신 및 C++ 컴파일러의 많은 기술을 활용하며 JavaScript 코드를 기본 기계 코드로 직접 컴파일하고 캐싱 메커니즘을 사용하여 성능을 향상시켜 JavaScript를 바이너리 프로그램만큼 빠르게 실행합니다.

2) 로컬 모듈

Node.js는 C/C++ 언어로 구현되는 다음과 같은 많은 고성능 오픈 소스 라이브러리를 통합합니다.

              모듈               설명
              libuv             크로스 플랫폼, 이벤트 기반 비동기 I/O 라이브러리입니다. 그러나 libuv는 I/O에만 국한되지 않고 프로세스 관리, 스레드 풀, 신호 처리, 타이머 및 기타 기능도 제공합니다.

Linux의 모든 것은 파일입니다. 여기서 I/O에는 파일 읽기 및 쓰기뿐만 아니라 데이터베이스 읽기 및 쓰기, 네트워크 통신(소켓) 등도 포함됩니다.
              nmp               Node.js 패키지 관리자는 패키지 다운로드, 패키지 설치, 패키지 제거, 패키지 업데이트, 패키지 업로드 등을 수행할 수 있습니다.
              http_parser               웹 애플리케이션 개발을 지원하기 위해 C 언어로 작성된 경량 HTTP 파서입니다.
              zlib             산업용 수준의 데이터 압축/압축 풀기 모듈인 Nodejs는 zlib를 사용하여 동기식, 비동기식 또는 스트리밍 압축/압축 풀기 인터페이스를 만듭니다.
              OpenSSL               이 모듈은 SSL 프로토콜 및 https 프로토콜과 같이 최신 웹이 보안을 위해 의존하는 엄격한 테스트를 거친 여러 암호화/암호 해독 기능을 제공합니다.
              c-ares             비동기식 DNS 쿼리 및 확인 라이브러리.

Node.js는 JavaScript 코드를 컴퓨터에서 직접 실행하고 JavaScript에 강력한 기능을 제공하므로 로컬 모듈과 브라우저의 런타임 간에는 큰 차이가 많고 연결이 거의 없습니다. Node.js는 브라우저를 거의 완전히 버리고 처음부터 새로운 JavaScript 런타임을 구축했습니다.

3) 표준 라이브러리

로컬 모듈은 C/C++로 작성되었으며 Node.js는 JavaScript 개발자를 대상으로 하므로 로컬 모듈의 C/C++ 인터페이스를 캡슐화하고 개발자에게 우아한 JavaScript 인터페이스 세트를 제공해야 합니다. , 다양한 플랫폼(운영 체제)에서 인터페이스의 일관성을 유지합니다.

이 JavaScript 인터페이스 세트는 Node.js 표준 라이브러리입니다. 표준 라이브러리가 우아하고 강력한지 여부는 Node.js의 사용 편의성을 결정하고 Node.js의 시장 성능에 직접적인 영향을 미칩니다.

노드 관련 지식을 더 보려면 nodejs 튜토리얼을 방문하세요!

위 내용은 nodejs는 어떤 플랫폼인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.