STREAM

2016-08-01
이번 글에서는 Java8 Stream의 parallel에 대해 살펴보도록 하겠습니다. Stream API는 설계 시 실제 실행에 대한 부분을 추상화 시켜 각 Element에 대한 처리가 어떻게 실행되는지에 대해서는 프로그래머는 신경쓰지 않이도 된다. 즉, 병렬 처리 등도 쉽게 할 수 있게 설계되어 있다. 하지만 쉽다는 의미는 좋다, 효과적이다 라고 할 수 없기 때문에 Stream에서 병렬 처리의 원리를 알고 있어야 필요한 시점에 적절하게 "쉽다" 라는 장점을 활용할 수 있다. (그림: https://javatechnocampus.wordpress.com/2015/10/03/544/)...
2016-08-01
Java8에서는 Lambda와 Stream이라는 새로운 개념을 통해 기존 Java를 이용하는 프로그램 방식과는 완전 다른 형태의 프로그램을 가능하도록 하고 있습니다. 필자도 최근 Presto의 소스 코드를 보면서 이제부터 만드는 코드는 Java8 스타일로 개발을 해야 겠다고 생각하고 몇가지 프로그램을 만들어 보고 있습니다.  Java8 스타일로 프로그램을 만드는 중에 첫번째 부딪힌 문제가 for loop에서의 break 문제 였습니다. Stream forEach는 loop가 아니다. Stream의 forEach는 loop가 아닙니다. 따라서 특정 조건이 발생했을 때 Stream 자체를 중단 시킬 방법이 없습니다. 따라서 다음과 같은 코드의 경우 반드시 주의를 기울여야 합니다....
더보기