<Note>
스트림 외의 클래스에서도 flatMap 메서드를 접할 것이다. flatMap은 컴퓨터 과학에서 일반적인 개념이다. 제네릭 타입 G(예를 들면, Stream), 타입 T를 G<U>로 변환하는 함수 f 그리고 타입 U를 G<V>로 변환하는 함수 g가 있다고 하자. 그러면 flatMap을 사용해서 이 함수들을 합성 compose할 수 있다(즉, 먼저 f를 적용한 후 g를 적용한다). 이는 모나드 이론 theory of monads에서 핵심 개념이다. 하지만 걱정할 필요는 없다. 모나드에 관해 전혀 몰라도 flatMap을 사용할 수 있다.