본문 바로가기

소프트웨어,IT,컴퓨터공학 도서리뷰/기술 명세 서적(technical specific) : PL

카이호스트만의 코어자바9 -카이호스트만- [6/7][책리뷰][2021][길벗출판사][신경근옮김]

카이 호스트만의 코어 자바.

알라딘 중고서점에서 득템!


코어 자바 Volume 1에 대한 추억.

 

현재의 연구실에 학부 연구생으로 들어왔을 때가 떠오른다.

 

연구실은 객체지향 개발론, 함수형 패러다임, 도메인 주도 설계, 마이크로 서비스 아키텍처의 분야들을 연구 분야로 두고 있다.

 

많은 연구 분야들 속에서 연구실에서는 객체지향적으로 바라보는 관점을 상당히 강조했다.

 

그때는 왜 객체지향적으로 바라보는 관점을 중요하게 생각했는지 모르겠으나, 지금 생각해보면 객체지향에 대한 철학이 단단할수록 안정적인 구조로 프로그래밍할 수 있었기 때문이 아닐까 한다.

 

객체지향적인 질문을 가지는 것만으로도 무수히 많은 모델링에 기여할 수가 있기 때문이다.

 

[ 객체지향에서 활용되는 SOLID 원칙은 현실세계의 문제를 해결하는 철학으로 사용해도 될 만큼 훌륭하다. ]

 

그러다 보니 내가 현실 도메인에서 바라보는 대상을 객체지향 프로그램으로 전환하도록 도와주는 힘과 그것을 프로그램으로 옮기는 힘이 필요했다.

 

그중에서 프로그램으로 옮기는 힘을 기르기 위해선 객체지향 개발에 도움이 되는 프로그래밍 언어를 학습해야 했다.

 

교수님은 프로그래밍 언어로 자바를 공부하라고 하셨다.

 

마음 같아서는 C++을 배우라고 말하고 싶지만, 국내에서는 현실적으로 자바가 훨씬 영향력이 있다고 말씀해주셨다.

 

그리고 미래를 생각해서라도 자바만큼 괜찮은 언어가 없다고 말씀하셨다.

 

그리고 C++은 골치 아픈 언어라고 덧붙여 말씀해주셨다. [ 정말 매니악한 개발자가 될게 아니라면 말이다.. ]

 

따로 가이드라인은 주지 않았다. 그냥 객체지향을 기반으로 하는 자바 프로그래밍 언어를 공부하라고 하셨다.

 

하나의 프로그래밍 언어를 진지하게 파고들어 공부해야겠다는 마음가짐이 들었고,

 

자바 프로그래밍 언어 관련 기술 서적들을 찾아보게 되었다.

 

그중 가장 눈에 띈 책이 바로 카이 호스트만의 코어 자바 Volume 1, 2였다.

 

기초는 Volume 1에 심화 내용과 모던 자바의 기능들은 Volume 2로 정리한 책이었다.

 

책은 상당한 역사를 자랑했다.

 

개정된 횟수만 봐도 이 책의 역사를 가늠해볼 수 있다.

 

자바에 큰 변화가 올 때마다 책도 함께 개정되었는데 그 횟수가 2019년 기준 무려 11번이다.

 

번역서가 있지 않을까 하고 도서관에 검색해봤다.

 

번역서는 아주 오래전 개정판에서 멈췄다.

 

그도 그럴 것이 이 방대한 책의 개정판들을 어떻게 따라가면서 번역하리...

 

학술정보관에 들어가서 원문의 책(최신 개정판)을 신청하고 기다렸다.

 

그리고 책이 도착했고 바로 대여했다.

 

대학교 4학년 겨울방학부터 하루 4개의 뽀모도로를 할당하고 할당된 시간 동안 원문의 코어 자바 책을 읽었다.

 

중간중간 무척 괴로웠다.

 

영어로 된 책을 읽는 것은 정신적으로 힘들다.

 

내가 옳게 번역한 것인지 불안하며 정신적인 에너지가 더 빨리 소모된다.

 

여차 저차 해서 4개월이 지나 원문 1판을 끝낼 수 있었다.

 

과정에 집중하다 보면 어느새 결과에 도착해 있으리라는 그것이 나의 행동 철학이었기 때문이다.

 

지금도 노션에 정리된 책의 내용들은 시간이 날 때마다 훑어보고 있다.

 

카이 호스트만

 

카이 호스트만의 책을 읽어보면 

 

저자의 지식이 어디까지 뻗쳐져 있는지 소름이 돋을 정도로 광범위한 역사와 내용들을 마주하게 된다.

 

저자는 자바 프로그래밍 언어에만 능한 것이 아니다.

 

스칼라, 자바스크립트, C++에도 상당히 능하다.

 

그래서 그런지 저자의 책에는 C++ 혹은 자바스크립트, 함수형 프로그래밍 개발 방법에 대한 날카로운 지식이 별도의 노트 칸에서 소개되기도 한다.

 

내가 경험한 바로는 코어 자바 Volume 1의 경우 C++과 레거시 프로그래밍 언어(현재는 대중적으로는 이용하지 않는)들과의 비교를 아주 깔끔하게 맛볼 수 있었다.

 

산호세 주립 대학교의 컴퓨터 과학 교수이며 12권이 넘는 책을 집필한 사람.

 

내가 이제까지 본 기술 서적 중에서 이만한 역사를 가진 사람은 거의 없다.

 

거진 반평생을 프로그래밍 언어를 공부하고 관련 도서를 제작했고 우수한 학생들을 가르친 사람.

 

"가장 빨리 만나는" 코어 자바 9

 

원문은 CORE JAVA SE9 FOR THE IMPATIENT.

 

IMPATIENT라는 표현이 조금은 날카롭게 느껴진다.

 

국내 서적으로 치면 일주일 만에 끝내는 이런 뜻으로도 해석될 수 있지만 역자는 재치 있게 "가장 빨리 만나는"으로 해석해 주었다.

 

책은 "가장 빨리 만나는"이라는 말이 붙었지만 외부의 사람이 보기엔 이 책으로는 가장 빨리 만나는 것은 택도 없어 보인다.

 

저자의 책 중에서는 나름 가장 빨리 만나게끔 도와주도록 요약한 책이지만

 

평균적인 기술서적과 비교하면 상당히 어려운 내용과 방대한 내용이 있는 골치 아픈 서적이다. 

 

나는 이 책을 읽는데 Volume 1과 마찬가지로 3달이 걸렸다.

 

이번에는 2 뽀모도로였다. 

 

그리고 Volume 1처럼 한 번에 이해하기 힘든 내용들이 많았고, 어마 무시한 지식들을 소화해낼 수도 없었다.

 

그래서 노션으로 언제든 레퍼런스 할 수 있도록 꼼꼼하게 정리했다.

 


 

추천도 :6/7. [ 난이도가 상당하다. ]

★★★★★★☆

 

읽은 기간 📅 : 대략 3달. [ 3번의 시도 끝에 완독 했다. ]

 

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

  • 모던 자바를 공부하고자 하는 사람들
  • 스트림, 람다 표현식, 자바가 새로 도입한 깔끔한 API들을 맛보고자 하는 사람들.

 

난이도 🦈

중상. [ 문제까지 풀어본다면 최상... ]

책의 예제들은 그렇게 친절하지 않다. 필요하다면 실제 레퍼런스를 참고해보면서 예제 코드를 만들어봐야 할 것이다.

 

관련된 책들 📚

  1. 카이 호스트만의 코어 자바 Volume 1 & 2
  2. 이펙티브 자바. (자바 프로그래밍 언어 중급자로 도약하기 위한 도서로 같이 읽으면 좋을 듯하다.)
  3. Practical 모던 자바 [ 장윤기 저자 ] [ 개인적으로 장윤기 저자의 책이 좀 더 함수형 패러다임을 학습하기 좋았다. ]

 

한 줄 평 ✍️

공부하다 보면 가장 기초적인 게 가장 힘들게 얻어지는 것이라는 걸 배운다.


 

개인적인 후기. 마지막으로 갈수록 자바 프로그래밍 언어의 복잡성을 마주하게 되었다.

 

그리고 자바는 자바 8에서 함수형 패러다임을 수용하면서 왕자의 자리로 돌아왔다. 

 

람다식, 스트림, 날짜와 시간 API의 개선, 병행 처리, 깔끔한 파일 처리 등등.

 

지속적으로 개선에 대한 요구를 받았던 핵심 라이브러리의 기능들을 개선했다. 

 

모던 자바로 아예 자바 프로그래밍 언어를 다시금 공부해야 하는 때가 온 것이다.

 

가장 놀라운 변화는 함수형 패러다임을 수용한 스트림 파트이다.

 

스트림의 API는 놀라울 정도로 깔끔하다.

 

그동안 콜백 메커니즘으로 처리하던 방대한 익명 클래스들과도 작별 인사를 할 만큼 많은 부분이 추상화되었다.

 

람다 표현식을 사용하고 스트림을 사용하는 사람들이 순수 로직에만 신경 써도 될 만큼 편해졌다.

 

덤으로 병렬 처리도 매우 수월해졌다. 그뿐일까 컬렉션 API도 개선되었다. 날짜와 시간 API도 명확해졌고 파일 처리도 명확해졌다.

 

이전에 자바 프로그래밍 방식과는 거리를 둬야 할 만큼 개선된 기능들이 너무도 많이 나왔다.

 

그뿐일까.. 자바 9부터는 강제적으로 자바 플랫폼의 모듈 시스템을 이용해야 한다. 

 

복잡하게 느껴질 수 있지만 거대한 시스템을 위해서라면 더 큰 분류가 필요한 법이다.

 

탄탄한 JVM위에서 계속 나아가고 있는 자바를 죽었다고 표현할 일은 앞으로 없을 듯하다.

 

모던 자바를 익히기에 정말 좋은 책이라고 말하고 싶다.

 

다만 끈기와 노력이 필요한 책이다.

 

연습문제까지 고민해본다면 더할 나위 없는 책.

 

나중에 회사에 들어가게 된다면 틈틈이 연습문제들을 풀어보고자 한다.

 


좋은 책으로 번역해주신 신경근 옮긴이에게 감사를 표한다.

 

왕성한 저작을 남겨준 카이 호스트만 교수님에게도 감사를 표한다.


반응형