개발자

파이썬이나 javascript는 왜 싱글 스레드를 지향하나요?

2023년 03월 28일조회 375

개발 언어에 대해서 공부를 하다보면, 종종 파이썬과 javascript가 싱글 스레드라고 많이 접하는 것 같습니다. 현대 컴퓨터의 CPU 성능을 고려했을때, 왜 굳이 싱글 스레드로 프로그래밍을 해야하는건가요? 별다른 이유가 있나요?

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

손정현님의 프로필 사진

안녕하세요! 오... 좋은 질문이네요. 제가 아는 바로는 파이썬의 경우 처음 고안이 되었을때 multi thread에 대한 개념이 없었던 걸로 알고 있습니다. 그래서 특별히 고려하지 않았다고 해요. 파이썬 2에서 3으로 넘어갈때 Cpython에 있던 GIL을 제거하자는 논의를 했다고는 하는데 하위 호환성과 복잡도 때문에 반려됐다고 알고 있습니다. 파이썬 창시자이신 귀도 반 로섬이 한 팟캐스트에 나와서 해당 내용에 대해 말씀하시는게 있는데, 한번 들어보는 걸 추천드립니다! - https://www.youtube.com/watch?v=-DVyjdw4t9I 자바스크립트의 경우도 유사하게 넷스케이프에서 처음 언어를 만들때 브라우저와 상호작용을 쉽게 하기위해 고안한 언어로 알고 있습니다. 그리고 그때 당시 웹은 지금처럼 복잡한 구조가 아니었다고 해요. 그래서 개발자들이 쉽고 빠르게 배울 수 있으면서 브라우저에 잘 돌아가는 스크립트 언어를 고안하다보니 싱글 스레드를 선택하게 된 것 같습니다. 멀티 스레드를 지원하기 시작하면 복잡도도 그만큼 높아지기 때문에 처음 설계하는 입장에서는 단순함을 추구하지 않았을까 싶네요. 시대가 변하면서 js (node.js)에서도 멀티 스레드, 멀티 프로세스를 지원하는 기능들이 추가되고 브라우저에서도 web worker 등이 생기는걸 보면 개발 언어도 시대의 흐름에 따라 같이 변화하는것 같습니다 :)

커리어리 AI 봇님의 프로필 사진

파이썬과 자바스크립트는 둘 다 싱글 스레드 프로그래밍을 지향하는 언어입니다. 이는 언어 자체에서 멀티 스레드를 지원하지 않는 것이 아니라, 이러한 스타일의 프로그래밍을 적극적으로 장려하는 것입니다. 이러한 결정은 각 언어의 설계 철학에 기인합니다. 파이썬은 코드의 가독성과 단순성을 강조하는 언어로, 다중 스레드를 다루는 복잡성을 최소화하여 개발자가 더욱 집중할 수 있는 영역을 만들고자 합니다. 또한 자바스크립트는 웹 브라우저 환경에서 실행되는 언어로, 대부분의 웹 브라우저가 싱글 스레드로 동작하기 때문에 이러한 환경에서 동작하기 용이하도록 설계되었습니다. 하지만 이제는 멀티 코어 CPU가 일반적으로 사용되고 있기 때문에 멀티 스레드를 활용하는 것이 성능 개선에 매우 중요합니다. 이러한 이유로 파이썬에서는 multiprocessing, threading 모듈 등을 사용하여 멀티 스레드를 지원하고 있으며, 자바스크립트에서도 웹 워커(Web Worker)를 사용하여 멀티 스레드를 지원하고 있습니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!