자바스크립트 동작원리
본문 바로가기
더 알아보기/개념

자바스크립트 동작원리

by 은돌1113 2021. 10. 31.

코드를 잘 짜고 싶으면 문법도 중요하지만 동작원리를 배우면 코드가 좀 더 매끄러워 질 수 있다.

 

웹브라우저 동작원리를 왜 알아야 하는가?

: 내가 짠 자바스크립트 코드를 브라우저가 실행 해주기 때문에

자바스크립트는 코드를 위에 적든 밑에 적든 빠른 것 부터 실행한다. -> 병렬 처리가 가능하다. (이상한 소리) -> 병렬 처리 못함 -> 이유는 동작원리를 배우면 알 수 있다.

 

자바스크립트 동작원리

브라우저는 내가 짠 코드를 실행 시켜주는 엔진이다.

자바스크립트에서 Stack은 하나 밖에 없고 코드를 한 줄 씩만 해석 해서 실행 시킬 수 있다. -> single threaded

setTimeout과 같은 코드는 Stack에서 실행하지 않는다.

처리가 오래 걸리는 코드는 잠시 대기실에 넣어 놓고 남은 코드를 실행 시킨다.

이처럼 기다림이 필요한 코드들은 대기실에 넣어 놓는다.

대기가 끝난 코드들은 Queue 대기실에 있다가 Stack으로 하나씩 옮겨 실행 시킨다.

(조건 : Stack이 비어 있을 때만 올려 보낸다.)

Queue를 사용하는 이유는 Stack은 바쁜 공간이기 때문이다.

오늘의 교훈

1.  Stack을 바쁘게 하면 안된다.

2. Queue를 바쁘게 하면 안된다.

동기적 vs 비동기적

동기적 : 어떤 작업을 요청 했을 때 그 작업이 종료 될까지 기다린 후 다음 작업을 수행하는 방식

비동기적 : 어떤 작업을 요청 했을 때 그 작업이 종료 될 때까지 기다리지 않고 다른 작업을 하고 있다가,

요청했던 작업이 종료되면 그에 대한 추가 작업을 수행하는 방식

 

출처

https://www.youtube.com/watch?v=v67LloZ1ieI 

https://velog.io/@emawlrdl/%EB%8F%99%EA%B8%B0%EC%A0%81-vs-%EB%B9%84%EB%8F%99%EA%B8%B0%EC%A0%81

 

동기적 vs 비동기적

동기적(Synchronous)어떤 작업을 요청했을 때 그 작업이 종료될때 까지 기다린 후 다음 작업을 수행하는 방식비동기적(Asynchronous)어떤 작업을 요청했을 때 그 작업이 종료될때 까지 기다리지 않고

velog.io

 

'더 알아보기 > 개념' 카테고리의 다른 글

Git / Github  (0) 2021.11.01
JWT(Json Web Token) 인증 방식  (0) 2021.11.01
웹 신기술 WebAssembly  (0) 2021.10.31
README 작성 가이드  (0) 2021.10.31
API(Application Programming Interface)  (0) 2021.10.29

댓글