Java, 더 깔끔하고, 정확하고, 안전하며, 재사용이 쉬운 코드로 만들자!
『Effective Java(이펙티브 자바)』는 효율적이면서도 잘 설계된 자바 프로그램을 구현하기 위해 알아야 할 지침 78가지를 소개한 책이다. Java SE 5, Java SE 6에 새롭게 도입된 기능들을 반영하고, 새로운 기능들을 최대한 활용할 수 있는 방법들을 제시하고 있다. 또한, 최신 자바 7, 8에 대한 주석을 수록했다.
이 책은 제네릭, enum, 어노테이션, 자동 객체화, for-each 문, varargs, 병행성 유틸리티 등에 관한 새로운 지침과 객체, 클래스, 라이브러리, 메서드, 직렬화 등의 고전적 주제에 대한 최선의 지침들, 자바의 미묘한 부분에 대한 몰이해에서 오는 문제들을 회피하는 방법, 자바 언어와 그 기본적 라이브러리인 java.lang, java.util, java.util.concurrent, 그리고 java.io에 초점을 맞춘 설명을 담고 있다.
자바 언어를 더 깊게 이해하고 싶다면? 더 깔끔하고 정확하고 안전하며 재사용이 쉬운 코드를 만들고 싶다면? 바로 이 책 『Effective Java 2판』이 답이다. 여기 실린 78가지 지침들은 프로그래머가 매일 마주하는 도전들을 해결하기 위해 반드시 따라야 할, 최고의 실질적 해결책이다.
『Effective Java 2판』은 졸트(Jolt) 상을 수상하며 고전의 반열에 오른 초판을 전면적으로 개정한 것으로, Java SE 5와 Java SE 6에 새롭게 도입된 기능들을 반영하였다. 저자는 새로운 디자인 패턴과 숙어들을 탐구하면서 제네릭, enum, 어노테이션, 자동 객체화 등의 새로운 기능들을 최대한 활용할 방법을 제시한다.
이 책의 각 장은 짤막한 독립 에세이 형식으로 기술된 “규칙” 들의 묶음이다. 각각의 에세이에는 자바 플랫폼을 다룰 때 알아야 할 미묘한 사항들에 대한 통찰과 조언이, 그리고 놀라운 예제들이 담겨 있다. 그 포괄적 설명을 통해, 무엇을 하고 무엇을 하지 말아야 할지, 그리고 그 이유는 무엇인지 알 수 있을 것이다.
주된 특징은 다음과 같다.
● 제네릭, enum, 어노테이션, 자동 객체화, for-each 문, varargs, 병행성 유틸리티 등에 관한 새로운 지침들
● 객체, 클래스, 라이브러리, 메서드, 직렬화 등의 고전적 주제에 대한 최선의 지침들
● 자바의 미묘한 부분에 대한 몰이해에서 오는 문제들을 회피하는 방법
● 자바 언어와 그 기본적 라이브러리인 java.lang, java.util, java.util.concurrent, 그리고 java.io에 초점을 맞춘 설명
● 옮긴이 주석으로 최신 자바 7, 8에 대한 보충 설명 수록
간단히 말해서 이 책은, 효율적이면서도 잘 설계된 자바 프로그램을 구현하기 위해 알아야 할 가장 실질적이면서도 권위 있는 지침서다.
[추천의 글]
Effective Java에 쏟아진 찬사
“이 책을 십 년 전에 알았더라면 분명 좋았을 것이다. 나라면 자바 책은 필요로 하지 않을 거라고 생각하는 이들도 있겠지만, 이 책만큼은 다르다.”
- 제임스 고슬링(James Gosling), Liquid Robotics의 최고 소프트웨어 아키텍트이자 자바 언어의 창시자.
“자바 언어와 객체지향 언어를 어떻게 사용하는 것이 좋은지 알려주는 훌륭한 조언들로 가득한 최고의 책.”
- 기라드 브라차(Gilad Bracha), Google Dart 팀 소프트웨어 엔지니어이자 Newspeak 프로그래밍 언어의 창시자이며 『The Java Language Specification, 3/E』(Addision-Wesley, 2005)의 공저자.
“10점 만점에 10점 ? 다른 사람들이 읽고 관리하기에 훌륭한 자바 코드를 만들고 싶은 사람이라면 반드시 이 책을 가지고 있어야 한다. JDK 라이브러리가 진화하더라도 빛바래지 않을 정보가 담겨 있는 드문 책 가운데 하나다.”
- 피터 트란(Peter Tran), Pros Revenue Management 사의 선임 소프트웨어 엔지니어.
“현존하는 최고의 자바 서적. 술술 읽힐 뿐 아니라 아주 유용하다. 말로는 칭찬을 다 할 수 없을 정도다. JavaOne 2001 컨퍼런스에서 제임스 고슬링은 말했다. ‘얼른 가서 구매하세요!’ 그 충고를 따랐던 것이 기쁘다. 그의 생각에 100% 동의한다.”
- 키이스 에드워즈(Keith Edwards), Georgia Tech의 Interactive Computing 분야 교수이며, 『Core JINI』(Prentice Hall, 2000)의 저자
“개선된 자바 플랫폼 API(Collections API 포함) 일부를 설계한 바로 그 사람이 내놓은, 진정 훌륭한 책.”
- 제임스 클라크(James Clark), XML 표준화 그룹의 수석 기술원으로 활동했으며, 현재는 태국으로 이주하여 태국 오픈 소스 소프트웨어 센터(Thai Open Source Software Center)라는 회사를 운영하고 있다. 태국 소프트웨어 산업 진흥 협회에서도 일하고 있으며, groff를 비롯한 많은 오픈 소스 소프트웨어 개발에 참여했다.
“내가 따져본 바에 따르면, 매년 출간되는 좋은 프로그래밍 서적의 수는 한 권 이하이고, 몇 년 간 한 권도 나오지 않을 때도 있다. 커누스(Knuth) 교수의 삼부작(trilogy), K&R의 ‘White Book’, 커니건(Kernighan)과 플로저(Plauger)의 『Software Tools』 같은 책을 말하는 것이다. 이 책은 그 반열에 드는 책이다. 구입하라.”
- 앤드류 빈스톡(Andrew Binstock), Dr. Dobb’s Journal의 수석 편집장
“나는 제목은 거창하지 않으나 내용은 과할 정도로 풍성한 책을 좋아한다. 이 책에는 세심하게 선택된 57가지 프로그래밍 규칙이 실려 있다. 각각의 규칙은 자바 언어의 본질을 명료하고도 깊이 있게 드러내고 있으며, 직관에만 의존하는 프로그래밍의 한계, 그러니까 언어가 제공하는 기능을 완전하게 이해하지 못한 상태에서 눈에 보이는 길만 따라가는 프로그래밍의 한계를 단순하고도 실제적인 용어들로 설명하고 있다.”
- 마이클 어네스트(Michael Ernest), Cloudera 사의 선임 솔루션 자문
“자바 설계자에게는 이 책의 모든 부분이 중요하다. 제품을 납품하기 전에 이 책을 읽으면, 그 비용을 천 배로 보상받게 될 것이다.”
- 리처드 마테오션(Richard Mateosian), IEEE Micro, July/August 2002(vol. 22, no. 4)
“이 책을 구입한 것은 2주 전인데, 삼 개월 공부했을 때보다 더 많은 것을 사흘 만에 배우게 되었다. 놀라운 책이며, 내 자바 서재에 추가할 수 있어서 기쁘다.”
- 제인 그리스티(Jane Griscti), IT 자문 전문가