[BOOK] 함수형 프로그래밍 with 자바 – 벤 바이디히 지음 / 허귀영 옮김
![[BOOK] A Functional Approach to Java](https://jaewook.blog/wp-content/uploads/2024/04/2024-04-26-08.53.33.jpg?w=300&h=300)
부제: “함수형 프로그래밍을 적용하여 객체 지향 자바 코드 향상시키기”
JAVA를 처음 접한 것은 대학교 프로그래밍 수업 시간이었습니다. 첫 프로그래밍 언어 수업으로 C언어를 배우고, 두 번째 프로그래밍 수업이 JAVA였습니다. C언어의 절차적 패러다임에서 JAVA의 객체 지향 패러다임으로 변화는 꽤 신선한 충격이었습니다. (당시 JAVA 번역서가 없어서 원서로 수업을 진행한 것도 충격 🤣) 시간이 흘러 세상에 함수형 프로그래밍이 소개될 때에는 Scala를 공부하고 있었기에 저에게 JAVA는 객체 지향 프로그래밍 언어로 남게 되었습니다. 적어도 이 책을 만나기 전까지는요.
개발자는 항상 깔끔하고 더 간결한 코드를 추구해야 합니다. – p. 51
패러다임의 변화를 따라가는 것은 쉬운 일이 아닙니다. JAVA가 세상에 알려진 초기에는 C처럼 코딩하는 개발자도 (많이) 있었습니다. JVM에서 동작해야하니 JAVA로 개발했는데 손에 익은 프로그래밍 언어가 C라서 절차적인 방식으로 만들었던거죠. 언어를 사용하는 개발자에게도 힘든일이지만 패러다임의 변화를 수용해야하는 프로그래밍 언어 입장에서도 힘든 일입니다. 새로운 패러다임을 지원하면서도 기존 패러다임과의 호환을 유지해야하니까요. 이 책에서는 패러다임 변화에 대응하는 방법도 엿볼 수 있습니다.
“함수형 프로그래밍 with 자바”는 함수형 프로그래밍에 대한 기초적인 설명과 JAVA에서 함수형 프로그래밍을 할 수 있도록 추가된 기능들을 설명합니다. 새로 추가된 기능이 하위 호환을 위해 어떻게 구성되어 있는지, JAVA의 기본 원칙을 지키면서 함수형 프로그래밍 기능을 제공하기 위해 어떤 고민을 했는지를 살펴볼 수 있습니다.
함수형 원칙은 많은 객체 지향 디자인 패턴에서 필수적인 보일러플레이트 코드를 제거할 수 있는 가능성을 제공합니다. – p. 484
이 책을 읽으려면 JAVA의 기본 문법은 알고 있어야 합니다. JAVA 8버전 이후에 추가된 문법을 알면 이해가 쉽습니다. 함수형 프로그래밍에 대해서는 책에서 기초부터 다루기 때문에 함수형 프로그래밍을 처음 접하더라도 문제 없습니다. 다만, 객체 지향과 함수형 프로그래밍에 대한 내용을 알고 있으면 책을 더 재미있게 읽을 수 있습니다. JAVA를 시작으로 Scala, Kotlin 등의 JVM 기반 함수형 프로그래밍을 경험해 보는 것도 좋겠네요.
“한빛미디어 [나는 리뷰어다] 활동을 위해서 책을 제공받아 작성된 서평입니다.”