한 원소가 collection을 반환할 때 map을 쓰면 Stream<List<R>>처럼 중첩이 남습니다.
T→R · 원소 하나가 결과 하나
T→Stream<R> · 중첩 유지
T→Stream<R> · 한 층 flatten
핵심: 하위 source 수명과 null 금지 규칙까지 확인해 flatMap을 선택합니다.