이펙티브 자바 - 제3판
“외국어를 배워서 교실 밖에서 써먹어보려고 하면, 세 가지를 마스터해야 한다는 것을 알게 된다. 언어의 구조를 알아야 하고(문법), 사물의 이름들을 알아야 하며(어휘), 일상적인 필요를 표현하는 관례와 효과적인 전달 방법을 알아야 한다(용례).” - 2판 재번역
“자신이 공부한 외국어를 실전에서 활용해보았다면 세 가지를 통달해야 한다는 사실을 알고 있을 것이다. 바로 언어의 구조(문법), 말할 대상의 이름(어휘), 일상의 이야기를 풀어내는 관례적이고 효과적인 방법(용어)이다.” - 3rd
1
인사이트
에서 이펙티브 자바 3판이 출간된지 약 10개만에 번역본을 국내에 선보였다. 나는 1~2년 정도 거릴꺼라 예상했는데 생각보다 빠른 시간에 번역되어 나와서 관심을 가지고 있었지만, 회사의 프로젝트 때문에 잊고 지내다, 번역본을 2019년이 되어서야 읽었다.
나는 심재철님 번역본(대웅출판사)을 주로 읽었다. 인사이트에서 이병준님이 전면 재번역하신 ‘2판 재번역’도 참고했던 스터디 때문에 읽었지만 눈과 손에 익은 심재철님 번역본을 발표 자료나 작은 강의가 있을 때 주로 활용했다. 심재철님 번역에 익숙해져서 2판 재번역이 어색했기 때문이다.
3판이 출간되었을 때 7 Lambdas and Streams
때문에 아마존에서 구매(무려 $35)해서 관련 부분만 발췌해서 읽었다. 전체를 다 읽을만한 시간도 없었고, 당장 필요했던 것이 Date
와 Lambdas
부분이었기 때문이다. 당연히 영어로 되어있는 문자를 해독하는데 많은 시간이 필요했고 부분적으로 이해가 부족한 것은 대략적인 코드의 흐름으로 적당히 이해하고 넘겼다. 마법같이 느꼈던 parallelStream()
에 대해서 다시 생각해보는 기회가 되기도 했다. 영어의 압봨을 견디지 못하고 부분 발췌해서 읽었지만 언젠가 번역본이 나올 것을 기대하며 킨들을 덮었고 이젠 킨들이 어디에 있는지 모르겠다.
2
3판은 이전 번역본에 비해서 훨씬 가독성이 좋아졌다(한글로 번역된 문장을 소리내서 읽어보자. 훨씬 잘 읽힌다. 잘 읽히는 글이 좋은 글이다). 그리고 JDK 8에 포함된 소소한 변경사항등이 본문에 반영되어 있어서 JDK 8 사용자에게 소소한 도움을 줄만한 내용이 많이 반영되어 있다. 그러니 3판은 꼼꼼하게 읽어둘 필요가 있다.
많은 자바 개발자들이 이 책을 필독서로 선정한 이유는 경험적인 측면과 Java의 이론적인 부분이 잘 결합되어 있기 때문이다. 단시간에 수준높은 코드를 작성 할 순 없겠지만, 수준 높은 코드가 가지는 특징에 대해서 세밀하게 지식을 전달하고 있으며, 단편적인 수준으로 머물게 될 문법적인 내용에 대한 용례를 제공하기 때문이다.
다양한 관점을 책 한권에서 얻을 수 있다는건 기적에 가깝다(사실 기적이다). 좋은 코드나 다양한 관점은 읽는 사람으로 하여금 많은 고민을 하게 만들지만 빠른 속도로 책장을 덮게 만드는 원인 중 하나다. 그럼에도 불구하고 이 책은 살아남았고 많은 개발자에게 수준높은 코드와 다양한 관점을 제시한다.
따라서 이 책의 포인트는 내용이 아니라(내용은 이미 검증되었다) 번역에 있다. 이 책의 성공과 실패는 국내의 자바 개발자들이 이 책의 번역을 어떻게 받아들이느냐에 달려있다. 앞서 말했듯이 이번 번역은 이전 번역에 비해서 훌륭하다(이전 번역이 훌륭하지 않았음이 아니라 이번 번역이 유달리 좋다는 뜻이다). 단편적인 예로 번역자(이복연님)께서 코드저장소와 용어 해설서를 제공하고 있다는 점에서 번역에 많은 공을 들였고, 많은 고민의 결과물이다. 그 고민의 결과물 덕분에 우리는 좋은 번역서를 읽을 수 있다.
3
장점만 있는 책은 아니다. 이 책을 필독서라 입을 모아서 이야기 한다는 점에서 매우 고무적이라 할 수 있지만, 난이도가 생각보다 높다. 그러서 이 책은 집단 지성의 힘을 필요로 한다. 유투브에 백기선님이 자신의 경험을 녹여서 풀어주시고 있고, 다양한 기사, 원저자의 발표자료등을 활용해야 한다.
스터디 그룹을 만들고 해당 내용에 대해서 깊이 있는 이야기를 커피 한 잔과 할 수 있는 모임을 적극 권한다. 혼자서는 쉽지 않으니, 다함께 도전해보길 권한다.
모든 장/절을 다 이해하면 좋겠지만, 당장 필요한 부분부터 먼저 읽어도 좋다. 난 그렇게 이 책을 읽었고, 지금도 꾸준히 필요한 부분을 읽는다. enum
의 심오함에 대해서 이 책 덕분에 알았다. steram
이 뭐 그렇지라고 생각했지만 지금은 조심스럽고 나름의 원칙을 가지고 사용한다.
다 읽을면 좋다. 하지만 필요한 부분이라도 잘 발췌해서 읽자. 무엇보다 자신의 의견을 사람들과 나누고 공유하자.