스택 큐 ,,

Seonhee Kim·2023년 4월 27일

study

목록 보기
7/18
post-thumbnail

브라우저 동작원리

웹 브라우저 : html,css,JS를 해석하고 실행해주는 엔진. 이 실행 순서가 일반적인 프로그래밍 관점에서는 이해가 안될때가 있다. 그 이유에 대해 알아보자

  • 브라우저 내부

힙: 변수들 담아두는 곳

스택: 코드를 넣고 한줄한줄 실행해준다. 자바스크립트는 스택이 하나. 한번에 코드 한줄밖에 실행 못함 = 싱글 스레드. 그래서 원래는 병렬처리 그런 거 못함.

바로 실행을 못하는, 시간이 걸리는 코드들은 잠깐 스택에서 대기실로 쫓겨난다. 이러한 코드들이 실행될 시간이 되면 대기실에서 큐로 옮겨서 순서대로 줄을 세운다.

큐(스택이 비어있을때만 올려보냄): 스택은 원래 바쁜 공간이기때문에 , 스택이 빌때까지 기다리고, 텅 비면 -> 큐에서 하나씩 스택으로 올려서 처리한다.


JS에 어려운 수학계산이나 오래 걸리는 것들 시키면 안됨
시키면 일단 스택에서 10초~ 이렇게 걸리면서 연산이 시작되는데 그 사이에 버튼요청 ..(이벤트 리스너) 이런 거 하면 작동이 안된다. 스택이 비었을때만 버튼에 대한 요청이 실행될텐데 연산이 열심히 스택에서 움직이고 있어서 노 동작~

교훈 : 스택을 바쁘게 만들면 안된다 (사용자 입장에서는 사이트가 왜 이렇게 느려 ~)

JS는 원래 동기적으로 처리가 된다 (stack은 하나니까. 한줄한줄 코드 순서대로) 그러나 가끔 비동기적인 처리도 가능하다 (setTimeout,이벤트리스너,ajax) -> 오래 걸리는 코드는 제껴두고 빨리 되는 것(일반 함수) 먼저.

업로드중..

profile
안녕하세요 ~_~

0개의 댓글