일반적인 웹 브라우저에서의 이벤트 루프는 


단일 스레드에서 동작 을 하고 있으며 이사실을 꼭 인지하고 있어야 합니다.


전에 봤던 JavaScript는 1종 객체 (First-Class Object)라는 점과 같이 알아야 합니다.


function test() {};


는 언제든지


var fn = test; 가 가능 하다는 점


브라우저는 단일 스레드에서 이벤큐를 이용하여 들어오는 이벤트를 처리하게 되는데 


모든 이벤트를 큐에 들어온 순서대로 진행이 됩니다.


C언어 하실 때 자료구조에서 queue(큐)를 stack(스택)과 같은 공부 를 하실 때 


stack 에서는 push pop 이라는 용어를 썻지만


C에서는 front rear 라는 말도 있고 put get 뭐 이부분은 C에서 나오는 부분이니


중요한 점은 FIFO(First In First Out) 이라는 점입니다.


먼저 들어온 놈이 먼저 나간다는 말이 될수 있겠죠


대학로 아서 연극 표를 사러 갈때는 생각 하면 줄을 서서 먼저 표를 받게되면 바로 나가게 되는


모습을 생각 하면 될것 같습니다.


매표소는 1개 있죠 대부분 


브라우저도 메시지 큐 1개(매표소) 에서 티켓터(이벤트) 들을 기다리면서


행동을 하나씩 하나씩 처리해주는 방식을 가집니다.



** 브라우저 자체의 JavaScript 인터 프린터의 경우 단일 스레드 를 가지고 있습니다. 


-> JavaScript는 멀티 스레딩을 지원하지 않음 


-> Web Worker 사용을 하시는 분들은 논외 





** 해당 관련한 스터디 및 관련 책들에 대한 자료인데 아직까지는 이해가 되지 않는 부분이 있습니다.


브라우저는 브라우저별로 각각 다른 엔진을 쓰고 있고 


Chrome 28 이전 - > webkit

Chrome 28 이후 -> Blink

IE -> Trident

Gecko ->  FireFox 


각 브라우저별 엔진이 다릅니다. 엔진이 다르기 때문에 렌더링 되는 동작이 다릅니다. 

(화면 및 다른 쪽 렌더링으로 자바스크립트의 이벤트 방식은 위와 같습니다.)











Posted by 깍돌이

블로그 이미지
QA를 업으로 삼고 있습니다.
깍돌이

태그목록

Yesterday
Today
Total

달력

 « |  » 2025.1
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함