DOM 6 (자바스크립트 런타임 환경)

Glass·2022년 10월 10일
0

MDN 공식 사이트
https://developer.mozilla.org/ko/docs/Web/JavaScript/EventLoop

이전내용

  • 프로세스와 쓰레드에 대해 말 함
    멀티쓰레딩은 한 프로세스 안에서 여러가지 쓰레드가 동시다발적으로 일어나는 것을 말 함
  • 멀티쓰레드를 가지고 있으면 동시적인 일이 가능하여 효율적으로 프로그래밍을 동작 할 수 있다.

자바스크립트는 Single threaded language 다.

  • 언어 자체에 멀티쓰레딩이 없다
  • 자바처럼 A 와 B각각 스레드를 지정할 수 있는 방법이 없다.

엥 근데 제가 쓰고 있는 웹사이트는 이거 하는 동안 데이터도 받아오고 노래도 틀고 채팅도 하고.. 꽤 많은 일을 하던데요.

  • 자바 스크립트 언어 자체에는 멀티쓰레딩을 할 수 있는 방법은 없다.
    하지만 자바스크립트가 동작하고 있는 브라우저 위에는 여러가지 쓰레드가 있다
    즉 웹 APIs들을 이용하게 되면 멀티쓰레딩이 가능
    자바스크립트가 동작하고 있는 실행 환경에서는 다양한 방식을 이용해서 멀티쓰레딩 같은 효과를 얻을 수 있다.
    자바스크립트가 실행되는 환경 위에서는 멀티쓰레딩 뿐 아니라 이벤트 루프를 이용해서 다양한 동작이 실행 가능

자바스립트 엔진 구조

1. 내가 만든 웹사이트가 브라우저 위에 올라감
2. 자바스크립트 엔진이 작성한 코드를 한 줄 한 줄씩 해석 및 실행 
	- 참고고로 자바스크립트는 인터프리터 언어라 한줄한줄 해석 합니다..
  • 이전에 프로세스 안에는 힙과 스택이 있다고 말 함
  • 자바스크립트 코드를 실행하기 위한 프로그램인 자바스크립트 엔진

ex) 자바스크립트 언어를 해석하는 자바스크립트 엔진은 굉장히 다양한 종류가 있는데 대체로 브라우저에 탑재가 되기 때문에 브라우저 제작사마다 자바스크립트 엔진을 쓰는 경우가 많다.
v8 (크롬)
스파이더 몽키 (파이어 폭스)
차크라 (엣지)

- 자바스크립트 엔진도 메모리 힙과 콜 스택이 있다.

- **메모리 힙**
    - 변수를 선언해서 오브젝트 할당하면 그 데이터들은 전부 메모리 힙에 저장 됨
    - 메모리 힙은 구조적으로 정리된 자료구조가 아니라 이리저리 아무대나 저장 됨
    - 이렇게 할당된 데이터들이 메모리 힙에 들어간다.
- **스택**
    - 콜 스택은 함수를 실행하는 순서에 따라 차곡차곡 쌓아 프레임 스택을 형성한다.
   
    - 스택은  LIFO 라고 불린다.- last in first out 
    - 나중에 들어온 것이 제일 처음으로 나간다 (후입선출)
    - 콜 스택은 함수들이 호출하는 순서를 기억했다가 함수가 끝나면 원래 있던 자리로 돌아오기 위해서 쓰이는 자료 구조중 하나 이다. 
    

0개의 댓글

관련 채용 정보