← 질문 목록
#332깊이 0

한 줄짜리 코드가 화면을 멈추게 하는 이유는?

언어 · 런타임기초비동기

자바스크립트를 도는 자리가 하나뿐이라, 거기서 오래 걸리면 그동안 아무것도 못 하기 때문이다.

  1. 호출 스택브라우저

    무거운 반복문이 안 끝난다

  2. 대기열호출 스택

    클릭 처리를 넣고 싶지만 자리가 안 빈다

  3. 브라우저화면

    다시 그리지도 못한다

클릭 처리도 화면 갱신도 같은 자리를 쓴다. 그래서 계산 하나가 길어지면 화면이 굳는다. 다만 합성만으로 도는 애니메이션은 다른 자리라 그동안에도 움직인다.

기다리는 일은 다르다. 네트워크 응답을 기다리는 동안에는 그 자리를 내놓는다. 그래서 오래 기다려도 화면은 움직인다.

느린 것과 오래 도는 것을 구분해야 한다. 느린 API 호출은 화면을 안 멈추지만, 100만 번 도는 반복문은 멈춘다.

푸는 길은 일을 쪼개거나 다른 자리로 옮기는 것이다. 조각으로 나눠 사이사이 자리를 내주거나, 워커에 넘겨 아예 다른 자리에서 돌린다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

한 줄짜리 코드가 화면을 멈추게 하는 이유는?