[JavaScript] JavaScript - V8 Engine

알린·2024년 5월 19일
0

Web

목록 보기
4/9

JavaScript 개요

  • 절차지향적

  • JS를 실행시키는 ⇒ v8엔진

  • 컴포넌트(구성요소 ⇒ 단위) 기반 자바스크립트 화면 설계

  • 클라이언트에서 많은 처리를 하고 넘어가는 게 좋음
    ⇒ 유효성 검증
    ⇒ 스케일링 없이도 서버의 성능 유지 위함


특징

  • 인터프리터 언어
    스크립트 언어: 위에서 아래로 실행
  • 엔진: JS를 실행시키는 프로그램
  • 브라우저가 실행
  • 이벤트에 반응하는 동작 방식
  • 유효성 검증
  • ajex, fetch를 이용해 서버와 비동기 통신개요

사용 방법

  • CSS와 사용 방법 같음
    1. 외부 파일 연결
    2. 태그 사용
    3. html 태그 내 사용(inline 방식)
      • title 아래에 script 태그 삽입

JavaScript Engine

  • RAM에 어떻게 저장할지 조정 가능
  • 크롬의 엔진은 V8 엔진

V8 Engine

  • JS 코드 실행을 위한 입력 처리 프로세스 관리
    • 구글이 개발한 오픈 소스 자바스크립트 엔진
    • 크롬 브라우저와 Node.js에서 사용
  • Thread : 프로세스를 잘게 자른 단위(동시 처리)
    ⇒ 여러개면 멀티스레드
  • 자바스크립트는 멀티스레드를 갖고 있지 않음
    ⇒ 대신 Callback Queue를 사용해 비동기 작업 처리

Heap

  • 데이터가 무더기로 저장
  • 힙영역의 주소(참조형 변수)로부터 데이터 파싱
  • 저장되는 데이터 구조: 객체 리터럴, 배열, map, set, string (정수, 실수는 저장되지 않음 ⇒ 값형 변수)
  • 필요 없는(안 쓰는) 데이터의 메모리 정리 (Garbage Collection)

Stack

  • 함수가 순서대로 저장
  • 함수 실행 순서대로 저장 ⇒ 가장 위에 있는 함수가 현재 실행되고 있는 함수
  • 인라이닝 캐시: 캐시가 함수 내에서 자주 호출되는 포함(인라인) 함수를 겉 함수에 넣어 인라인으로 성능 개선 (JIT Compiler가 동작)

Callback Queue

  • JS멀티스레드를 사용할 수 없기 때문동시에 처리할 것들을 관리(구현)해주는 큐
profile
Android 짱이 되고싶은 개발 기록 (+ ios도 조금씩,,👩🏻‍💻)

0개의 댓글