[철학] NodeJS 쓰레드가 하나인 이유 - 공유지의 비극
·
프로그래밍
많은 사람들이 "NodeJS는 싱글 쓰레드다." 라고 말합니다.하지만 대부분은 "왜" 싱글 쓰레드로 만들어졌는지 알지 못합니다. 이번 글에서는 노드를 만든 Ryan Dahl이 왜 싱글 쓰레드로 설계했는지,노드에 담긴 철학이 무엇인지 설명드리겠습니다. 블로그에 개발관련 글을 작성중이니 많은 관심 부탁드립니다.1. 병렬 처리대부분의 시스템은 쓰레드를 이용해 병렬 연산을 수행합니다.쓰레드는 자원을 공유하고 동시 접근 가능한 특징이 있습니다. 바로 이 지점에서 문제가 발생하는데요.데드락, 동시 수정, 동시 접근 등등 수많은 오류가 나타납니다. 이 오류를 해결하기 위해 쓰레드가 자원에 락을 걸고 사용후에는 해제하고,다른 쓰레드는 손가락만 빨며 기다리고... 수많은 오류가 나타납니다. 순차적 처리와 달리 병렬 처리..