2021년 읽은 책의 리뷰나 거창한 정리 글은 아니고, 읽으면서 부족했던 부분, 추가적으로 깊이 있게 알아봐야 할 내용을 정리한다.

1. 함수형 반응형 프로그래밍 - FRP 입문자를 위한 종합 안내서

함수형 반응형 프로그래밍에 관한 최초의 종합 안내서. FRP는 관찰자 패턴의 잠재적 버그 원인을 근본적으로 차단하여 더 복잡한 시스템으로 쉽게 확장할 수 있도록 해준다. 이 책의 저자는 FRP 프레임워크인 소듐(Sodium)의 창시자로서, FRP의 기초부터 기존 프로젝트를 점진적으로 FRP 시스템으로 탈바꿈시키는 방법까지 친절히 안내한다.
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=114161078

함수형 프로그래밍 학습을 위해 구입해서 봤지만 중도 포기했다. 좋은 내용이지만 원서가 2016년이라 그런지 예제들이 old 한 느낌이었다. 확실히 프로그래밍은 빠르게 진화한다고 느꼈고, 출판된 지 오래된 책은 베스트셀러 및 고전 등의 책을 사야겠다고 생각하게 됐다. 그렇다고 나쁜 책은 아니다 단지 Sodium으로 진행되는 내용들이 나한텐 와 닿지 않았다. Spring Reactor Webflux를 더 공부해야겠다.

  • Spring WebFlux

- 2021.01

2. 함수형 사고 - 객체지향 개발자에서 함수형 개발자로 거듭나기

객체지향 언어에 길든 개발자들에게 예제를 통해 함수형으로 ‘생각’하는 법을 깨닫게 해주는 책. 스칼라 같은 함수형 언어의 수요가 늘고 있지만 자바 같은 객체지향에 익숙한 개발자들은 함수형 패러다임으로 넘어가는 데 어려움을 겪고 있다. 단순히 새 언어 문법을 익히는 것이 아니라 사고방식 자체를 바꿔야 하기 때문이다. 이 책은 자바 8, 스칼라, 클로저, 그루비 예제를 통해 객체지향 개발자가 함수형으로 사고를 전환하고 시야를 넓히는 일을 돕는다. 익숙한 사고방식을 바꾸려 노력하는 자바 개발자에게 소중한 디딤돌이 될 것이다.
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=85956851

이 책 역시 함수형 프로그래밍 학습을 위해 구입했다, 자바에서 함수형 프로그래밍을 구현하는데 도움이 될까 싶어 구입해서 봤지만 글쎄.. 전반적인 함수형 프로그래밍 기법을 설명하는데 여러 가지 함수형 언어를 예제로 다룬다. 자바만을 학습하기 위한 용도로는 별로인 느낌 자바 함수형 프로그래밍을 학습하는 용도로 Functional Programming in Java 8 - 자바 8 람다의 힘 책을 구입해서 봐야겠다. 그리고 함수형 언어로 하스켈이나 클로저를 학습하기보단 코틀린을 나중에 학습하는 게 좋겠다란 생각이다.

- 2021.02

3. 스프링으로 하는 마이크로서비스 구축

기존 일체형 애플리케이션을 마이크로서비스로 나누고 온프레미스나 클라우드로 배포하려는 자바, 스프링 개발자와 아키텍트를 위한 책이다. 스프링 부트, 스프링 클라우드와 도커, 쿠버네티스, 이스티오, EFK 스택, 프로메테우스, 그라파나 등의 오픈 소스 도구를 조합해 마이크로서비스를 구축하는 방법을 설명한다. 스프링 기반의 자바 개발과 오픈 소스 도구 사용법을 실습 위주로 설명하며, 최소한의 시간 투자만으로도 다양하고 넓은 범위의 지식을 학습할 수 있게끔 효율적으로 구성돼 있다.
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=256544920

MSA 학습을 위해 이책을 구입했다. 마이크로 서비스 아키텍처의 개념보단 스프링으로 MSA를 구축하는 방법 학습을 위해, MSA를 제대로 구축 하기엔 정말 방대한 내용의 학습이 필요할거 같다. 마이크로 서비스의 예제는 심플했고 아키텍처를 구축하는 예제도 심플했다. 하지만 심플할 수 밖에 없다 중요 포인트만 설명하면서 방대한 내용을 함축했다. 이책을 기반으로 MSA를 구축해보면서 세세한 내용을 알아가면 좋을거같다.

  • 도커
  • 쿠버네티스

- 2021.03

4. Functional Programming in Java 8 - 자바 8 람다의 힘

자바 8의 람다 표현식을 사용하여 애플리케이션의 품질을 향상할 수 있도록 해주며 더 효율적인 방법으로 프로그래밍을 설계하도록 하고, JDK 라이브러리에 추가된 여러 기능의 장점을 알아본다. 더불어 람다 표현식에 대한 개념을 익히기 위해 엄선된 예제를 제공한다. 엄선된 예제를 통해 람다 표현식의 설계 내부에 숨겨져 있는 원리를 이해할 수 있도록 하며, 특히 새로운 기능들이 왜 더 좋은 코드를 만들 수 있도록 해주는지 그 이유를 이해하게끔 도와준다.
https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=42133916

자바로 함수형 프로그래밍을 하는 방법을 학습하기 위해 구매했다, 일전에 봤던 함수형 반응형 프로그래밍, 함수형 사고 책보단 좀 더 구체적으로 자바에서 구현하는 함수형 프로그래밍 방법을 설명해준다. 함수형 프로그래밍이라는 걸 알게 되고 업무에서도 최대한 써보려 노력하고 이젠 얼추 흉내는 내는 거 같지만 아직도 자세하게는 모르겠다.

Stream을 사용해서 내부 반복을 사용하고, 변수에 항상 final로 선언하여 작업하는 등 하지만 주로 하는 업무에서의 비즈니스 처리를 할 땐 Functional Interface나 람다를 사용하는 케이스는 적은 거 같다, Stream을 사용할 때나 쓰는 정도? Functional Interface는 아키텍처 설계 수준에서 활용하면 좋을 거 같은데 아직 전체적으로 바라볼 수 있는 시야가 좁은 거 같다.

이 책의 마지막 장에 이런 내용이 있었다, 객체지향과 함수형 프로그래밍이 서로 조화가 되어 사용될 때 더 빛을 볼 수 있을 거라고 그래서 이제 객체지향에 대해서도 좀 더 깊게 공부해봐야겠다. 객체지향 프로그래밍도 제대로 공부하진 않았으니 이제 좀 깊게 공부해볼 생각이다. 그리고 시간이 된다면 모던 자바 인 액션 책을 다시 펴보자.

  • 객체지향
  • 디자인패턴

- 2021.04