이상을 꿈꾸는 몽상가.. 프로그래밍을 좋아함..


Functional Programming in Java 8

Functional Programming in Java 8
( 이미지 출처 : 알라딘 )

  • 벤컷 수브라마니암 지음
  • 장독대 옮김
  • 루비페이퍼 출판

Java 8 이 release 된지 1년 반이나 지난 이 시점에서야 책을 구매했다.

Lambda에 대해서는 인터넷을 통해서 수없이 많이 들었고
개인적으로 사용해보기도 했었지만 결론적으로 든 느낌은
약간 수고스러움이 덜해졌다 정도..? 였었다.

책을 읽고난 지금의 느낌은 약간 뒷통수를 맞은 느낌이다.

Java 8이 내놓은 핵심 기능은 Stream에 의한 functional programming 이구나..

이곳저곳에서 람다.. 람다.. 라고만 외쳐되서
람다만 살짝 훑어보고 “Java 8.. 뭐 별 것 없구나..” 라고 착각했던 것 같다.


물론 람다가 중요하지 않다는 것은 아니다.

람다, default method 같은 기능들의 추가가 있었기 때문에 Stream이 있었을 테니까.


새로운 것을 알게되어 너무 재미있게 읽었고 구매하고 이틀만에 읽었다.

하지만 다른 Java 8에 대한 책을 읽어보지 않았으니 자신있게 추천하진 못 하겠다.

또한 번역서이다보니 좀 이해되지 않는 문장들이 있었고
용어에 대한 정의가 이뤄지지 않고 진행되어 나같이 용어에 약한 사람은 많이 어렵기도 했다.

하지만 전체적인 내용을 훑으며 Java 8의 functional programming에 대해서 감을 잡기에 좋은 책인 것 같다.

한번 다시 읽어봐야할 것 같고 다른 책도 한권 더 사서 읽어봐야 할 것 같다.


책을 사게 된 계기는 Stream을 통한 멀티 쓰레드 관리 방법을 보기 위해서였다.

List 를 filter, map, reduce 하는 내용을 멀티 쓰레드로 처리하는 작업 중이었다.
우직하게 밀어붙이며 거의 개발완료 무렵에 다가왔는데
보기 복잡성이 너무 높아져서 고민에 빠졌고 더 진행을 해야하는지 망설여졌었다.

그 와중에 우연찮게 인터넷에서 Java 8이 해당 기능을 가지고 있다는 글을 보게되었다.

지금은 Stream 을 통해서 지금까지 작성했던 소스가 얼마나 단순하고 명쾌해질지 기대를 하는 중이다.


Associated Posts

관련된 주제를 살펴볼 수 있도록 동일한 Tag를 가진 글들을 모아뒀습니다. 제목을 눌러주세요.

i