이 책의 리뷰는 한빛미디어 ‘나는 리뷰어다’로 부터 책을 지원받아 작성된 글입니다.

mordern_java_in_action-01

자바는 8 부터 많은 것들이 바뀌었다고 한다. 그래서 언젠가 한번 최신 스택을 공부하겠다고 다짐했을 때 믿고보는 in action 시리즈 가 믿고 사는 출판사 한빛 미디어 에서 나온 것을 보고 지원하게 되었다.

처음 책을 받은 후 700 페이지 정도의 책 분량의 압박이 존재했던건 사실이다. 하지만 역시나 다른 in action 시리즈와 비슷한 방식으로 상세한 설명을 해주다 보니 늘어날 수 밖에 없는 상황이었던 것 같다.(작가님, 역자님 감사합니다) 자바8,9,10 에서 추가된 스펙을 정말 알아듣기 쉽게 설명해준다. 또한 예시와 함께 제시해주니 어느 때 써야할지 감을 잡을 수 있게 해준 것 같다.

물론, 자바8이 나온지 벌써 몇년이 지났기 때문에 아마 이미 사용하고 있는 사람도 많을 것 같다. 작성자의 경우도 Optional 이라던지, Stream API 등은 이미 실무에서 계속해서 사용하고 있던 것들이다. 하지만 항상 사용하던 것들만 사용하게 되고, 그냥 쓰면 좋다니까 별 생각 없이 사용해왔었던 것 같다. 그러다 보니, 이 책을 읽으니 이제는 최신 문법이 어떤 구조로 되어 있고, 어떻게 사용해야 잘 사용하는 방법인지 대충 감을 잡을 수 있었던 것 같다.

하지만 이 책의 경우 각잡고 열심히 읽어야 하는, 실습을 반드시 따라하면서 봐야하는 책은 아닌 것 같다. 오히려 지하철이나 버스에서 오며가며 읽어보고 나중에 프로젝트에서 사용하게 될 때 레퍼런스 책으로 사용하면 좋을 것 같다는 생각이 든다. 특히, 작성자처럼 이런 스펙을 왜 사용해야 하는지, 어떤 구조로 되어있는지 궁금한 사람들이 보면 좋을 것 같다고 생각한다.

다만, 기본 자바 문법을 설명하는 책이 아니기 때문에, 어느정도 자바를 사용할 수 있는 사람이 읽어야하지 않나 싶다.

이런 점들을 고려해 봤을 때 총 평은 최신 자바 문법을 이해하고 사용하고 싶은 사람을 위한 책 이라고 하고 싶다.

mordern_java_in_action-02

책의 구성은 역시나 최신 자바 스펙을 기존코드 -> 새로운 스펙을 사용한 코드 로 리펙토링을 해가면서 설명한다. 초반에 이해해야만 하는 스트림, 람다 등에 대해서 설명하고 후반부애서는 함수형 프로그래밍, 리액티브 프로그래밍에 대해서 설명해준다.

위 사진에서 보듯이 잘 이해하기 힘든 부분들은 그림으로 도식화하거나, UML 을 만들어서 보여주는 경우도 많다. 또한 in action 시리즈의 특징인데, 글에서 설명한 모든 것을 예제 코드에 주석으로 설명해준다. 그러다보니 설명 읽고, 코드를 읽으면 이해하기 정말 편하다. 그 때문에, 직접 실습을 안해도 될 것 같다는 느낌이 든 것이다.

그 후엔 아래 사진처럼 설명한 스펙에 대한 퀴즈가 나오는데, 이를 정답을 보지 않고 풀어나가다 보면 도움이 될 것이라 생각한다. 작성자의 경우도 실습은 하지 않아도 퀴즈는 직접 손코딩으로 한번씩 풀어보았다.

마지막에는 지금까지 설명한 메서드들, 설명하진 않았지만 사용할 수 있는 메서드를 요약해서 표로 나타내 주기 때문에 전체적으로 요약해서 보기 좋다.

mordern_java_in_action-03

이번 책은 작성자의 실무와 매우 밀접하게 있는 분야라서 그런지 정말 흥미 있게 읽을 수 있었던 것 같다. 아무래도, “내가 썼던 API 가 이렇게 사용되는 구나” 라던가 “내가 짰던 코드를 이렇게 리펙토링 해봐야 겠다” 등의 생각을 하게 되었다. 물론, 현재는 리펙토링을 할만한 시간이 조금 부족해서 지금 개발하는 부분에 적용해볼까 생각중이다. 나중에 기능 개발이 완료되면 이 책을 레퍼런스 삼아 리펙토링을 진행해보고 싶다.

이 책의 장점은 기본적인 자바 문법을 설명하는 것이 아니라, 최신 자바 문법만을 모아놓고 거진 700 페이지 분량으로 설명했기 때문에 기존에 자바를 사용하던 사라도 새로운 문법을 많이 볼 수 있는 책이 아닐까 싶다.

물론 단점으로는 개념서이기 때문에, 프로젝트에 직접 적용할 때는 더 많은 고민이 들어가야 하지 않을까 싶다.

결론적으로 이 책을

  • 1 자바를 프로젝트에서 사용해본 사람
  • 2 자바를 사용하면서 좀 더 발전하고 싶은 사람
  • 3 이미 최신 스펙을 쓰지만 어떤 구조로 되어 있는지 궁금한 사람

등에게 추천하고 싶다.