본문 바로가기

테크 이야기

다중 스레드들은 프로그램을 더 느리게 만든다

기술을 두고 보면 참 예측하기 어렵다. 모노토닉하게 한 방향으로 발전하지 않기 때문이다.
어떤 한 모델이 한참 유행이 되다가도 다시 본질을 찾아가는 사례가 많다.

그런 관점에서 아래 그림은 참 의미가 있다.



한때는 굉장히 화려하고 rich한 웹 페이지가 유행 하다가도 지금은 오히려 심플하고 사용자 반응에 더 집중한 웹 페이지를 선호한다. 이와 비슷한 관점으로 병렬 프로그램과 멀티 쓰레드 프로그래밍이 다수의 CPU를 기반으로 하는 하드웨어를 기반으로 선풍적인 유행으로 다가 왔지만 결국 지금은 싱글 스레드에 더 집중하고 있다.

node.js 사례도 마찬가지이다. 아파치 웹서버처럼 다중 스레드를 지원하는 모델 보다 단일 스레드를 기반으로 하되 이벤트를 중심적으로 진행하는 플로우가 훨씬 성능이 좋다.


이런 의미에서 소개하고자 하는 아티클이 바로 "Make Your Program Slower With Threads" 이다. 우리가 바라고 있는 이상과 하드웨어가 가지고 있는 한계에 대한 현실을 잘 보여주고 있는 글이다.