본문 바로가기

소프트웨어,IT,컴퓨터공학 도서리뷰/개념 서적: (Conceptual Books): TDD, OOP, DDD

자바8 람다의 힘 [벤컷 수브라마니암] [6/7] [ 실용주의책 시리즈] [책리뷰]

자바 8의 강력함 : 함수형 패러다임의 수용

 

 


자바의 뒤늦은 함수형 패러다임의 수용.

 

자바 프로그래밍 언어 커뮤니티에서는 옛날부터 함수형 패러다임을 수용해야 한다는 주장이 나왔었다고 한다.

 

하필 그 시기는 자바의 라이센스가 왔다 갔다 하던 바쁜 시기였고... 몇몇 프로그래밍 언어 진영에서는 자바를 탈출하는 움직임까지 보였던 시기..

 

다른 프로그래밍 언어들이 간결하고 분산처리에 적합하며, 불변성을 추구하고, 서술적인 프로그래밍 기법인 함수형 패러다임을 수용해 멋진 코딩 스타일을 보여줄 때

 

자바는 꿋꿋하게 객체지향 패러다임과 명령형 패러다임을 고집하고 있었다.

 

결론은 JVM기반의 다른 프로그래밍 언어들이 탄생하는 배경을 마련하게 되었다.

[클로저, 스칼라, 코틀린 등등...]

 

오랫동안 자바를 좋아했던 프로그래머들에게는 씁쓸한 순간이었을 것이다.

 

시간이 지나고 자바는 자바8로 함수형 패러다임을 수용하겠다는 매우 큰 변혁을 선언한다.

 

스트림(Stream)을 도입하고, 인터페이스에 대한 전반적인 변화를 통해서 자바 프로그래밍 언어에서도 함수형 패러다임을 수용할 수 있게끔 문법들을 만들어냈다.

 

늦게 출발했지만 늦은만큼 꼼꼼하게 함수형 패러다임을 멋지게 소화하게끔 만들었다.

 

이 책은 시중에 나온 책들에 있어서 자바의 함수형 패러다임을 가장 잘 설명해준 책이 아닐까 한다. 


 

추천도 : 6/7 [ 자바프로그래머라면 생산성을 위해서 함수형 패러다임 도입을 고려한다면 해당 책을 강력 추천한다]

★★★★★★☆

 

읽은 기간 📅 : 2021년 4월 5일 ~ 7월 21일

 

이 책을 추천하는 이들 👨‍👧

  • 자바8버전을 공부하고자 하는 사람들
  • 함수형 패러다임을 공부하고자 하는 개발자들

 

난이도 🦈

최상...

[ 함수형 패러다임이 가장 어려운 개념이다.. ]

 

관련된 책들 📚

  1. 함수형 사고
  2. Practical_java [ 함수형 패러다임 파트 ]
  3. 카이 호스트만의 코어 자바 (스트림 부분 + 함수형 패러다임 부분)
  4. 가장 빨리 만나는 코어자바9 (스트림 부분 + 컬렉션 파트)

한 줄 평 ✍️

점점 추상화되고 있는 프로그래밍 언어를 경험해보자.


실용주의 프로그래머 시리즈 선반에도 올라온 책.

 

이 책의 오른쪽 상단에 빨간색 배경을 가진 "The Pragmatic Programmers"라는 글자가 있다.

 

"실용주의 프로그래머"의 저자인 앤드류 헌트는 컨설턴트 일을 하는데

 

그는 실용주의 프로그래머를 위해서 실용주의 책 선반을 소개하는 사이트를 운영하고 있다.

 

다양한 책들이 존재하는데 상당히 난이도가 있는 책들이다. [ 그만큼 컴퓨터를 깊게 이해할 수 있다. ]

 

https://pragprog.com/

 

Pragmatic Bookshelf: By Developers, For Developers

Test Early, Test Often, Test Automatically: Tests that run with every build are much more effective than test plans that sit on a shelf.

pragprog.com

궁금하다면 해당 사이트를 참고해보기를 바란다.

 

위의 사이트에서 소개된 책들은 현업에서 강력한 실력을 가진 전문가들이 영혼을 담아 만든 책들이라고 느껴질 정도로

 

책의 품질이 상당히 좋다.

 

이 책도 그렇다.

 

함수형 패러다임? 객체지향 패러다임? 명령형 패러다임?

 

패러다임이 왜이리 많아, 하나만 선택해야 하는 건가? 등등의 질문들을 가지게 될 수 있는데

 

이 책은 패러다임은 하나만 채택되는게 아니라 멀티 패러다임으로 도메인 문제의 성질에 따라 적합한 패러다임을 활용해야 한다고 친절하게 설명해준다.

 

"함수형 사고"에서도 이와 비슷한 포지션으로 독자들을 이끌어준다.

 

과학이라면 패러다임은 전환에 가깝지만 컴퓨터 공학에서의 패러다임은 진보에 가깝다. [ 물론 과학에서의 패러다임도 진보이지만... ]

 

컴퓨터 공학에서의 패러다임은 수용을 하면서 진보한다는 것이다. 그것을 구조와 틀에 맞춰서 서로 공생할 뿐..

 

이 책은 객체지향 패러다임과 명령형 패러다임의 강력한 입지를 가진 자바 프로그래밍 언어에 있어서

 

함수형 패러다임을 수용한 자바가 얼마나 강력해질 수 있는지를 여러 파트로 나누어 설명해준다.

 

컬렉션과 관련해서, 문자열 처리와 관련해서, 리소스와 관련해서, 무한 스트림, 재귀 호출에 대한 최적화 등등..

 

그러니 자바 개발자이면서 함수형 패러다임이 어렵다면.. 이 책을 꼭 읽어보기를 바란다.

 

난이도 "최상"답게 한 번만 보고서는 이해가 되질 않는다. [ 나중에 또 읽어보고자 한다. ]

 

개인적으로 람다에 대한 충분한 이해를 거치고 이 책을 읽는게 좋다고 생각한다.

 

내가 개인적으로 도움 받았던 책을 통해 함수형 패러다임 공부 단계를 추천한다면

 

1. 코어자바(1,2)에서 부분적으로 람다식을 공부하고

 

2. Practical_java에서 함수형 패러다임 부분을 읽고

 

3. 가장빨리만나는 코어 자바에서 스트림을 빠르게 훑고

 

4. 함수형 사고로 함수형 패러다임을 장착한 다음

 

이 책을 읽었으면 한다.

 

이만큼 공부했는데도... 사실 어렵다.

 

객체지향 패러다임도 머릿속으로는 이해했지만 도메인을 모델로 전환하고 코드로 변환할 때 어려움을 겪고 있다.

 

무려 2년간 객체지향 패러다임만 달달 공부했는데도 말이다...

 

함수형 패러다임은 더 오랜 시간이 걸릴 것 같다.

 

언제 함수형 패러다임을 내가 생각하는 그대로를 코드로 전환할 때 쓸 수 있을지는 모르겠으나..

 

과거보다는 더 많이 알게 된 것에는 만족감을 느낀다.

 

좋은 책을 만들어준 벤컷 수브라마니암 저자와 장독대(전문가 그룹)에 감사함을 느낀다.

 

나중에 실무에 가서 프로그래밍하게 되는 순간들이 기대된다...

 

이 지식들이 살이 되어주는 날이 와야 할 텐데....

반응형