study blog
[22.04.14] Today I Learned 💻 본문
728x90
오늘 공부한 내용📄
Stack과 Queue
브라우저에서 자바스크립트 코드를 발견하면 stack에 넣은 다음 코드를 실행한다.
stack이라는 공간은 코드를 맨 위부터 하나하나씩 실행시키는 공간이다.
만약 처리가 오래 걸리는 코드를 만나게 된다면?이런 경우에는 stack에 쌓아서 실행하지 않고 대기실로 보류를 해놓는다.
보류를 한 뒤 시간이 돼서 stack으로 옮겨야 할 때 바로 stack으로 옮기지 않고 queue라는 공간에 집어넣는다.
그 이유는 stack이라는 공간이 항상 바쁘기 때문에 비어있을 때 queue에 있는 코드들을 다시 stack으로 옮기는 것이다.
(처리가 오래 걸리는 코드 = 서버로의 ajax요청, setTimeout, 이벤트리스너와 같은 코드)
그래서 위와 같은 코드들을 많이 쓰게 되면 웹사이트가 버벅거릴 수밖에 없다.
잠깐 코드를 제쳐두는 대기실
ajax관련 함수들, setTimeout, addEventListener은 실행을 잠깐 미루고 대기실로 제쳐지는 코드들이다.
이 코드들의 특징은 읽는 시점과 동작 시점에 차이가 있다는 점이다.
이런 코드들로 인해 자바스크립트는 평소의 동기적 특징과 반대인 비동기 특징도 가질 수 있는 것이다.!
728x90
'제2장 > TIL' 카테고리의 다른 글
[22.05.11] 다른 사람 코드 분해하기 (0) | 2022.05.11 |
---|---|
[22.04.11] Today I Learned 💻 (0) | 2022.04.11 |
[22.04.06] Today I Learned 💻 (0) | 2022.04.06 |
[22.04.05] Today I Learned 💻 (0) | 2022.04.05 |
[22.04.04] Today I Learned 💻 (0) | 2022.04.04 |
Comments