Notice
Recent Posts
Recent Comments
Link
개발 무지렁이
[JavaScript] V8 자바스크립트 엔진과 브라우저 외부에서 실행 가능한 런타임 환경 NodeJS 본문
Frontend/JavaScript
[JavaScript] V8 자바스크립트 엔진과 브라우저 외부에서 실행 가능한 런타임 환경 NodeJS
Gaejirang-e 2023. 2. 20. 16:15
𐂂 자바스크립트 (JavaScript)
웹페이지의 보조적 기능을 수행하기 위한 경량 프로그래밍 언어로 시작
프론트엔드(front-end)와 백엔드(back-end)를 모두 다루는 '범용 프로그래밍 언어'로 성장
프론트엔드(front-end)와 백엔드(back-end)를 모두 다루는 '범용 프로그래밍 언어'로 성장
➼ 🦔 JavaScript의 표준화
모든 브라우저에서 동작하기 위한 버전관리
[🗿 ECMA: 컴퓨터 시스템 표준을 관리하는 기구]
ECMAScript6(ES6)
: 범용 프로그래밍 언어로써 갖춰야할 기능을 대거 도입한 표준화된 자바스크립트 버전
JavaScript = ECMAScript🦴 + 클라이언트사이드 Web API (브라우저 별도지원)
[🗿 ECMA: 컴퓨터 시스템 표준을 관리하는 기구]
ECMAScript6(ES6)
: 범용 프로그래밍 언어로써 갖춰야할 기능을 대거 도입한 표준화된 자바스크립트 버전
JavaScript = ECMAScript🦴 + 클라이언트사이드 Web API (브라우저 별도지원)
𖠃 V8 자바스크립트 엔진
자바스크립트 코드를 빠르게 컴파일 및 실행, JIT(Just-In-Time) 컴파일러 도입
(그 밖에도 옵티마이저[코드 실행패턴 분석 및 메모리 사용량 최적화] 및 멀티 스레딩 지원)
🧸 JIT(Just-In-Time) 컴파일러
: 자바스크립트 코드를 기계 코드로 변환하는데,
자주 실행되는 코드 블록은 미리 컴파일하여, 캐시되어 반복실행되는 코드의 성능이 향상된다.
🚂 V8 자바스크립트 엔진을 구동시키는 런타임 환경 > Node.js
브라우저 외부에서 자바스크립트(JavaScript)를 실행할 수 있도록,
자바스크립트(JavaScript)를 브라우저에서 독립
(비동기 지원, 싱글 스레드 이벤트 루프 기반으로 동작)
🧸 이벤트 루프
: 사용자 입력, 타이머, 네트워크 요청과 같은 이벤트를 계속 감지하고,
이벤트 큐에 순차적으로 추가, 처리한다. 처리할 때, 각 이벤트에 대응하는 콜백함수 or 핸들러를 실행하여
싱글스레드 환경에서 비동기 작업을 처리하는 메커니즘을 말한다.
(동시성 문제를 피할 수 있다)
(그 밖에도 옵티마이저[코드 실행패턴 분석 및 메모리 사용량 최적화] 및 멀티 스레딩 지원)
🧸 JIT(Just-In-Time) 컴파일러
: 자바스크립트 코드를 기계 코드로 변환하는데,
자주 실행되는 코드 블록은 미리 컴파일하여, 캐시되어 반복실행되는 코드의 성능이 향상된다.
🚂 V8 자바스크립트 엔진을 구동시키는 런타임 환경 > Node.js
브라우저 외부에서 자바스크립트(JavaScript)를 실행할 수 있도록,
자바스크립트(JavaScript)를 브라우저에서 독립
(비동기 지원, 싱글 스레드 이벤트 루프 기반으로 동작)
🧸 이벤트 루프
: 사용자 입력, 타이머, 네트워크 요청과 같은 이벤트를 계속 감지하고,
이벤트 큐에 순차적으로 추가, 처리한다. 처리할 때, 각 이벤트에 대응하는 콜백함수 or 핸들러를 실행하여
싱글스레드 환경에서 비동기 작업을 처리하는 메커니즘을 말한다.
(동시성 문제를 피할 수 있다)
'Frontend > JavaScript' 카테고리의 다른 글
[JavaScript] DOM과 BOM (0) | 2023.04.19 |
---|---|
[JavaScript] 시계 움직이기, setInterval (0) | 2023.04.14 |
[JavaScript] 자바스크립트(ECMAScript6)와 호이스팅 (0) | 2023.02.19 |
[JavaScript] 프로그래밍이란? (0) | 2023.02.19 |
[JavaScript] 기능무효화와 th:data-uri, this.dataset.uri (0) | 2023.02.10 |
Comments