본문 바로가기

카테고리 없음

[함수형 프로그래밍 with 자바 - 한빛미디어] 자바로 익히는 함수형 프로그래밍

자바로 익히는 함수형 프로그래밍의 기초

사실 함수형 프로그래밍 자체는 범위가 매우 넓고, 제대로 이해하기 위해서는 많은 개념들을 학습해야 한다. 하지만 프로그래밍 언어를 사용하는 개발자 입장에서 그런것들을 모두 완벽하게 파악하고 어찌 개발을 할 것인가...  그래서 개발을 할 때 함수형 프로그래밍에서 제시하는 모든 개념에 대해 응용을 하면서까지 개발을 진행하지는 않을 것이다.

자바의 함수형 프로그래밍 역시 마찬가지다. 자바 8에서 함수형 프로그래밍을 할 수 있도록 언어 자체가 굉장히 많이 버전업이 되었다. 이 때 개발자가 함수형 프로그래밍에 대해서 전부를 알 필요 없이 많은 것들을 추상화 하고 사용하기 쉽도록 언어적 차원에서 제공하게끔 변경되었고, 심지어 함수형 프로그래밍의 규칙을 벗어난 듯한 문법도 제공하게 되어 개발자가 함수형 프로그래밍을 쉽고 빠르게 프로덕션 레벨 수준에서 이용할 수 있게 되었다.

그런 차원에서 혹시나도 자바를 사용하지만 함수형 프로그래밍에 대해서 접하지 못한 사람들에게 이 책은 도움이 된다.

책은 개인적으로 크게 3파트로 구성되는 것 같다. 

1. 함수형 프로그래밍에 대한 개괄

2. 자바에서의 함수형 프로그래밍

3. 자바에서 추가된 다른 기능들(Optional, CompletableFuture)

우선 책의 앞 파트에서는 함수형 프로그래밍에서 사용되는 용어에 대해서 설명하고 있다. 함수형 프로그래밍이 최신의 기법은 절대 아니고 예전에 존재하던 개념인데 해당 패러다임을 사용하면 어떠한 장점이 있는지에 대해서 알 수 있고, 또한 내부적으로 사용하는 단어에 대해서도 알 수 있다. 

개인적으로 해당 파트가 지루하다면 바로 파트 2로 넘어가서 자바에서 함수형 프로그래밍을 어떻게 적용하고 있는지 확인해보는 것이 좋을 것 같다.

파트 2부터는 본격적으로 자바에서 어떤식으로 함수형 프로그매잉을 적용하는지에 대해서 설명한다. 그림과 코드를 같이 제공하여 해당 코드가 어떠한 방식으로 동작하는지에 대해서 쉽게 파악할 수 있을 것이다.

그 이외에 자바 8부터 추가적으로 제공하는 기능들에 대해서 설명한다. 이 때 이러한 기능들이 함수형 프로그래밍식으로 코드를 작성할 수 있는데, 그 중에서도 Optional이 있다. 사실 자바에서 널 체크를 하는 부분이 어떻게 보면 굉장히 성가시고, 심지어 프로덕션 레벨에서 빼먹고 처리를 못하는 경우도 있지만, 해당 기능을 유용하게 잘 활용하면 안정적인 코드를 작성할 수 있다.

위 Optional도 마찬가지로 map, filter와 같은 함수형 프로그래밍에서 사용되는 기법을 사용할 수 있으므로 좀 더 깔끔한 코드를 작성할 수 있다.

특히 비동기 작업에서 Future만 제공하던 방식에서 CompleatableFuture을 자바 8에서 제공함으로써 함수형 프로그래밍 방식으로 비동기 작업을 깔끔하게 진행할 수 있게 되었는데 위 기능도 빠짐없이 설명하였다.

이 책은 철처하게 함수형 프로그래밍에 대한 개괄과, 자바에서 함수형 프로그래밍을 어떻게 적용하고 있는지에 대해서 설명하고 있다. 함수형 프로그래밍에 대해서 처음 접하거나, 자바에서 함수형 프로그래밍을 적용시키는 것을 알고 싶은 사람들에게 추천한다.

혹시나 자바 코드를 어떻게 잘 작성하는지에 대해서 알아보려면 모던 자바 인 액션 굉장히 추천한다. 이 책에서도 역시 함수형 프로그래밍에 대한 내용이 적혀 있으므로 해당 내용 확인해보면 매우 좋을 것이다.

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.