Stream 도입 전에 확인할 결과 계약
순서·재사용·변경·실행 횟수를 질문해 표현을 고른다.
| 질문 | Stream 선택 | 다른 선택 |
|---|---|---|
| 원본을 보존하는가 | 새 결과 수집 | in-place loop |
| 한 번만 소비하는가 | pipeline | materialized List |
| 부수 효과가 핵심인가 | 가급적 아님 | 명시적 command loop |
| 순서가 기능인가 | ordered terminal | unordered 허용 |
핵심: 결과를 여러 번 읽어야 하면 Stream보다 불변 collection을 반환한다.