먼저 비동기 프로그래밍이 매력적인 가장 큰 이유를 설명하고 나서, 흔히 하는 오해와 이 오해
에 대처하는 방법을 알아보자.
21
.
13
.
1
블로킹 호출에 연관된 실행 주기
Node
.
js
의 창시자 라이언 달
Ryan
Dahl
은 “우리는
I
/
O
를 완전히 잘못하고 있다”라고 하면서 자신
의 프로젝트의 철학을 소개한다.
21
그는
블로킹 함수
blocking
function
를 파일이나 네트워크
I
/
O
를 수
행하는 것으로 정의하며, 이 함수들을 논블로킹 함수처럼 다룰 수는 없다고 주장한다. 이유를
설명하면서 그는 [표
21
-
1
]의 두 번째 열의 숫자들을 보여 준다.
표
21-1
최신 컴퓨터의 여러 장치에서 데이터를 읽는 데 걸리는 시간. 세 번째 열은 사람이 이해하기 쉽게 시간을 비례
해 늘린 것이다.
장치
CPU
사이클‘사람용’ 비례 척도
L1
캐시
33
초
L2
캐시
1414
초
RAM250250
초
디스크
41
,
000
,
0001
.
3
년
네트워크
240
,
000
,
0007
.
6
년
[표
21
-
1
]을 볼 때, 최신
GHz
단위의 클럭을 가진
CPU
들은 초당 수십억 사이클을 실행함
을 명심하라.
CPU
가 초당 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.