요청 하나가 아니라 전부가 느려졌다 · 배압과 스트림 · 퀴즈
퀴즈: 배압과 스트림
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
`stream.write(chunk)` 가 false 를 돌려주었습니다. 이것의 정확한 뜻은?
- 그 조각은 버려졌으니 다시 써야 한다
- 조각은 받아 넣었고, 더 쓰기 전에 drain 을 기다리라는 신호다
- 스트림이 닫혔으니 더 쓰면 오류가 난다
- 소비자가 아직 하나도 처리하지 못했다는 뜻이다
실습 이미지의 Node 22.11.0 에서 옵션 없이 만든 Writable 의 기본 highWaterMark 는?
- 16384바이트
- 16개
- 65536바이트
- 제한 없음
64KB 조각 2000개를 반환값을 무시한 채 쓰면 쌓인 최대는 대략 얼마가 될까요?
- 기준선인 64KB 근처
- 기준선의 두 배인 128KB 근처
- 소비자의 처리 속도에 따라 0 에 가깝다
- 부은 양 전체인 125MB 근처
같은 양을 (가) 배압을 무시하고 (나) drain 을 기다리며 보냈을 때, 전체가 끝나는 시각은?
- 둘이 거의 같다 — 소비자가 받는 속도가 같기 때문이다
- (나)가 크게 느리다 — 기다린 만큼 늘어난다
- (가)가 크게 느리다 — 큰 버퍼를 관리하는 비용 때문이다
- 측정할 때마다 무작위로 달라진다
`readable.pipe(writable)` 대신 `stream/promises` 의 `pipeline` 을 쓰는 가장 큰 이유는?
- pipe 는 배압을 지켜 주지 않기 때문이다
- pipeline 이 내부 버퍼를 더 작게 잡기 때문이다
- 한쪽이 실패했을 때 정리하고 오류를 올려 주기 때문이다
- pipeline 이 조각을 병렬로 처리하기 때문이다
초당 6MB 를 만들어 내고 초당 2MB 를 받아 가는 경로가 있습니다. 버퍼 한도를 120MB 로 잡았다면 한도에 닿기까지 걸리는 시간은?
- 20초
- 60초
- 영원히 닿지 않는다
- 30초