[김성회의 고사성어 리더십] `똑게 리더십` 3가지 법칙 - 매일경제
매일경제
세미나 준비중에 쉽게 오해할수 있을만한 부분인것 같아 따로 적어봄
Virtual Thread가 가진 가장 큰 장점은 아무래도 생성이나 스위칭이 가볍고 기존 시스템 쓰레드보다 훨씬 더 많이 생성이 가능하다는 점일것이다 (사실 적고나니 이게 다이긴 하네)
하지만 이 내용을 보고 단순히 "쓰레드를 훨씬 빠르고 많이 만들수 있으니 내 로직이 훨씬 빨라지겠는걸?" 이라고 생각한다면 Virtual Thread를 제대로 이해한것이 아니다
이를 이해하기 위해선 먼저 자바의 동시성(concurrency)과 병렬성(parallelism)에 대해서 알아야 한다
간단히 말해 동시성이란 여러 쓰레드가 동시에 돌아가는것 같아 보이는 것을 의미한다
반면, 병렬성은 정말 실제 물리적으로 동시에 실행되는 것을 의미하며 이는 CPU의 갯수와 추상화에 달려있고 그 갯수가 생각보다 많지는 않다
그럼에도 우리는 하나의 프로그램에서 수십 혹은 수백개의 쓰레드를 생성하여 동작시키고 있다
이런 의미에서 Virtual Thread가 단순히 더 가볍고 더 많이 생성된다고 해서 프로그램의 성능에 도움을 주는 것은 아니다
Virtual Thread가 실질적으로 도움을 줄수 있는건 파일 입출력이나 network I/O와 같은 I/O-bound 작업에서 대기 시간이 발생했을때 실질적인 도움을 줄수 있다
예를 들어 시스템 제약으로 10개의 시스템 쓰레드만 사용이 가능한 환경에서 1초가 걸리는 외부 호출을 수행해야 하는 로직이 있다면 성능은 대략 1초당 10건에 조금 못미칠 것이다
이런 조건에서 Virtual Thread 를 사용하면 외부 호출의 응답을 기다리는 동안 추가적인 쓰레드가 계속적으로 생성이 되고 동작하면서 성능이 크게 향상될수 있다
반대로 이러한 I/O-bound 로직이 아닌 CPU-bound 로직에 대해서는 Virtual Thread를 사용한다고 하더라도 성능적인 개선이 크게 이루어지지는 않을것이다
(그나저나 요즘은 Virtual Thread에 대한 사람들의 관심이 좀 줄어들었나.. 관련 피드가 별로 안보이네)
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 8월 22일 오전 10:20
‘똑부(똑똑하고 부지런하기)보다 똑게(똑똑하지만 게으른) 리더가 되라.’ 리더십 코칭에서 빠지지 않는 훈수다. 현장 리더들의 말을 들어보면 실행이 쉽지 않다.
... 더 보기d
최근에 친구가 추천해준 데일 카네기의 인간관계론을 읽던 중 고액 연봉을 받는 엔지니어들의 특징에 대한 흥미로운 내용이 있었다.
... 더 보기어제 AI 시대의 개발자 토론회에서 내가 대 AI 시대에는 버전관리 시스템이 필요없을 수도 있다고 생각해야한다는 말을 했는데, 그정도로 파격적인 생각을 해야한다는 이야기긴했지만, 진짜 그럴까?를 다시 한 번 생각해봤다.
우선 버전관리 시스템의 목적은 크게 다음 세 가지다.
최
... 더 보기과
... 더 보기