--- kind: CONCEPT slug: grpc-advanced-streaming-c01 title: 상한 없는 request(n)은 단계만 늘린 무제한 버퍼링이다 topic: admission-budget-and-backpressure project: clean-architecture-backend-template status: 게시 전 sourceRevision: 21234e38cdb9a926cbc92bb97a2aee2e4a7d2916 rootTreeNode: concept:grpc-advanced-streaming-c01 evidenceCapturedOn: 2026-09-01 assets: - key: grpc-advanced-streaming-c01 file: ../../../final/evidence/rendered/grpc-advanced-streaming-c01.svg evidence: - ../../../final/evidence/raw/grpc-advanced-streaming-c01.txt source: - 원본 분석 절은 analysis/grpc/grpc-advanced-streaming.md#L86 이다. module: grpc-advanced-streaming --- # 상한 없는 request(n)은 단계만 늘린 무제한 버퍼링이다 수동 흐름 제어는 승인이 record의 필드이고 거짓이면 생성자가 거부한다. 수요 상한과 교착 감시가 필수다. ## 본문 승인이 record 의 필드이고 거짓이면 생성자가 거부한다. > "Approval is a field because this capability is granted per method, not per service. A method that reads a large result set benefits; the one next to it does not, and enabling both because they share a service is how the second one acquires a bug nobody was looking for." 수요 상한과 교착 감시가 필수다 — 상한 없는 `request(n)` 은 단계만 늘린 무제한 버퍼링이다. ## 감시견이 비교하는 두 시각 감시견은 잠들지 않고 두 시각을 비교한다 — 마지막으로 수요를 요청한 때와 마지막으로 메시지가 움직인 때. 둘 다 시간 제한만큼 멈춰 있으면 교착이다. ## 이 기록이 다루는 파일 범위 :::evidence key="grpc-advanced-streaming-c01" alt="코드베이스에서 파일 목록을 만든 출력 14줄. 이 기록이 다루는 범위가 그 목록이다." caption="코드베이스 파일 목록 — 14줄 · exit 0" zoom="true" :::