java8 이후 stream 을 많이 사용해왔지만 그동안 flatMap 은 사용해본 적이 없다. 설명을 봐도 잘 모르겠고 딱히 필요성을 느끼지 못했다. 현재 내게 필요한 건 flatMap 어떻게 사용하나? 가 아니라 flatMap 이 왜 필요한가? 이다. 그런데 오픈소스들을 보면 flatMap를 사용한 예제가 꽤 되어서 flatMap 에 대해 다시 알아봤다. 서칭해보니 map 과 비교하는 글들이 많은데 용어만 비슷할 뿐 역할이 완전히 다른데 왜 비교하는지 모르겠다.. 일단 flatMap 의 역할은 스트림 평탄화 라고 한다. flatMap 은 스트림을 리턴해야 하고 그렇게 리턴된 스트림은 1차원 평탄화 된다. 즉, 다차원 배열 또는 다차원 리스트? 를 단일배열 또는 단일 리스트로 변환해야 할 때 필요하다...