모던 자바 인 액션

부제는 ‘전문가를 위한 자바 8, 9, 10 기법 가이드’라고 한다.

처음 책의 목차를 살피며 기대했었는데, 기대만큼이나 알찬 내용을 담고있다. (처음은 그 두께에 놀랐었다.ㅎㅎ)

파트 1에서는 대략적인 로드맵을 설명한다.

자바8에 대해 세 가지 개념으로 소개했다.

  • 스트림 처리
  • 동작 파라미터화
  • 병렬성+공유된 가변

그 중 함수형 데이터 처리에 대해 파트 2에서 다루며 API 연산들도 설명한다.

새롭게 알게 된 것들

메서드 참조(method reference) : e.g. .listFiles(File::isHidden);
생산자 Instance::new 같은 형식으로는 자주 봤던 것 같은데 원리라던가 내부 동작 등에 대해 자세히 알 수 있었다.

Predicate : 수학에서는 인수로 값을 받아 true/false를 리턴하는 함수를 말한다.
실제 자주 잘 사용할 수 있을법한 인터페이스다. 이 외에도 Consumer, Function, Supplier, BinaryOperator 등이 있다.

순차처리와 병렬처리 : 동작의 차이, 내부적으로 fork/join과정을 거친다는 것,
오버헤드를 고려해서 사용하지 않으면 성능 개선이 아닌 저하가 있을수 있다는 점(chap 7),
연산에 따라 중간연산, 최종연산이 있는데 중간연산은 lazy하게 이루어진다는 것

디폴트 메서드 : 공개된 인터페이스를 변경해서 메서드를 추가할수 있다. 동반되는 다중 상속의 문제가 해결되는 법도 포함한다.

Optional<T> 🎉

자바9에 대해서는 잘 모르고 있었는데 모듈 정의나 리액티브 프로그래밍(병렬 실행 기법)에 대해 다루고 있다.

#

전체적으로 디테일이 상당해서 시간을 들여 공부해도 좋을만한 내용이다.

단순히 어떤 변경이 있었는지 뿐 아니라 패러다임, 그리고 상세한 구현의도가 들어간 예시들이 있어서 도움이 되었고,

자바 8, 9, 10 등 이후 버전이 완전히 좋아졌고 잘 익혀서 새로운 기능들에 제대로 적응하고 싶다는 생각이 들었다.