자바로 개발하면서 map과 flatMap을 종종 사용하였는고 map과 flatMap에 대해 이렇게 생각하고 있었다. map은 컬렉션의 반복을 위해 사용하는 것이고 flatMap은 2차원을 1차원으로 만드는 것이지 그러나 이것은 대단히 잘못 알고 있었던 것이었다. 결론부터 말하자면 Optional 클래스의 map과 flatMap 메서드는 다음과 같은 역할을 한다. // map을 이용하여 Optional -> Optional로 변경 Optional stringOne = Optional.of("1"); Optional integerOne = stringOne.map(s -> Integer.parseInt(s)); // flatMap을 이용하여 Optional -> Optional로 변경 Optional str..