본문 바로가기
용어 및 개념

javascript는 왜 싱글스레드일까?

by Rainbound-IT 2022. 6. 29.
반응형

여러가지 의견이 있었습니다.

1. 단순해서

 

그리고 아래가 이유가 괜찮다고 생각합니다.

 

 우선, 그 당시에는 멀티스레딩이 별 의미가 없었습니다. JavaScript는 멀티코어 프로세서가 존재하지 않았던 1996년에 Netscape 브라우저에 처음 등장했습니다(Intel은 2002년까지 하드웨어 멀티스레딩을 추가하지 않았습니다).

 

 둘째, JavaScript는 오늘날 하는 일을 하기 위한 것이 아닙니다. 가장 많이 사용하는 것은 버튼 이미지 위로 마우스를 가져가 경고 창을 띄울 때 버튼 이미지를 바꾸는 것이었습니다. 그 당시에는 페이지에 계산기가 있는 것만으로도 멋진 것으로 여겨졌습니다.

 

 셋째, JavaScript의 주요 용도는 DOM을 조작하는 것입니다. 멀티스레딩은 타이밍 문제를 발생시킵니다. React와 같은 조정이 없으면 모든 종류의 페이지 표시 및 레이아웃 문제가 발생할 수 있습니다.

그렇다면 JavaScript에 비동기 기능이 있는 이유는 무엇입니까?

 글쎄요, 그 당시에는 거의 모든 것이 브라우저 이벤트에 대한 응답으로 이루어졌습니다. 따라서 페이지가 로드될 때 처리되지만 이벤트가 발생할 때까지 실행되지 않는 이벤트 핸들러를 작성할 수 있어야 합니다(마우스오버, 마우스 클릭 또는 버튼다운과 같은). 이를 위해서는 일류 함수와 클로저가 필요했습니다.

 따라서 언어에 이미 실행을 연기할 수 있는 기능이 있는 경우 기본 다중 스레드 기능을 추가하면 상황이 더 어려워집니다. 가지고 있는 것을 유지하고 그 아래의 실행 환경이 그것을 처리하도록 하십시오.

 

정리하자면 옛날에 만들어져서 그때당시에는 멀티스레드가 그렇게 많이 쓰일것같지 않고 

웹페이지에 그렇게 멀티스레드를 사용할일이 없어서 그런것같습니다.

정확한 이유는 만든사람에게 물어봐야겠지만요.

 

 

Reference

https://www.reddit.com/r/AskProgramming/comments/e3w9k5/why_was_javascript_designed_as_a_single_threaded/

 

Why was javascript designed as a single threaded language and are there any advantages to this type of design?

Posted in r/AskProgramming by u/mementomoriok • 25 points and 32 comments

www.reddit.com

 

반응형

'용어 및 개념' 카테고리의 다른 글

메타버스란? (metaverse)  (0) 2023.01.05
컴포넌트 VS 모듈화  (0) 2022.08.22
Throttling 이란?  (0) 2022.04.26
buffer / cache 차이  (0) 2022.03.30
도메인 호스팅  (0) 2022.03.02

댓글