로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

이펙티브 자바 제2판

 [Effective Java 2/E]
   
지은이 Joshua Bloch/심재철   |   출판사 도서출판 대웅  |   발행일 2009년 04월 27일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 29,000원27,550원 5%
마일리지 1% 290원
발행일 2009-04-27
ISBN 8986044765 | 9788986044768
기타정보 번역서 | 460쪽
예상출고일
배송비 무료배송
   
프로그래밍언어
종합지수 23p 70 위
   
이 책의 원서
  Effective Java (2/E)
Addison-Wesley Professional | Joshua Bloch
 

더 명쾌하고, 더 정확하고, 더 강력하고, 재사용 가능한 코드를 작성하기 위해 자바 프로그래밍 언어를 좀 더 깊게 이해할 수 있는 책을 찾으십니까? 더 이상 찾지 마십시오! 이펙티브 자바 제2판이 있습니다. 이 책에는 필수 불가결한 프로그래머의 산 경험이 78개의 항목으로 녹아있습니다. 우리가 매일 접하는 자바 프로그래밍의 과제들에 대해 실전적인 최적의 솔루션을 제공합니다.

소프트웨어 분야의 최고 영예인 Jolt Award 상을 수상한 이 책은 제1판 출간 이후 새롭게 소개된 자바 SE5와 자바 SE6의 내용을 다루기 위해 완전히 개정되었습니다. 이 책의 저자인 Joshua Bloch가 새로운 디자인 패턴과 자바 언어 이디엄을 탐구하여 제네릭에서 enum까지, 그리고 주석에서 오토박싱까지 대부분의 새로운 기능을 어떻게 사용하는지를 보여줍니다.

이 책의 각 장은 여러 개의 "항목"으로 구성되어 있으며, 각 항목에서는 자바 플랫폼의 오묘함을 파헤치는 조언과 실전적인 코드 예를 제공하면서 간결하고 독립적인 설명을 하는 형태로 되어 있습니다. 각 항목의 이해하기 쉬운 설명을 통해서 해야 할 것과 하지 말아야 할 것, 그리고 왜 그래야 하는지를 명확하게 알 수 있습니다.

이 책의 가장 중요한 내용을 요약하면 다음과 같습니다.
- 제네릭, enum, 주석, 오토박싱, for-each 루프, 가변인자, 동시성 등의 새로운 기능을 효과적으로 사용하는 방법
- 객체, 클래스, 라이브러리, 메소드, 직렬화를 포함해서 종전의 내용에 대한 기법과 경험을 대폭 보완
- 언어에 대한 흔한 오해로 인해 생길 수 있는 함정이나 오류를 피하는 방법
- 언어와 가장 기본적인 라이브러리(java.lang, java.util, java.util.concurrent, java.io)의 실전 활용 시 필요한 깊이 있는 고찰과 기법 소개

한마디로 말해, 이펙티브 자바 제2판은 효율적이고 잘 설계된 자바 프로그램을 작성할 수 있는 가장 실전적이고 믿을만한 지침을 제공합니다.
추천서문 v
저자서문 vii
역자서문 xi

CHAPTER 1 개요 1

CHAPTER 2 객체의 생성과 소멸 7
[항목 1] 생성자 대신 static 팩토리(factory) 메소드 사용을 고려하자 7
[항목 2] 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자 15
[항목 3] private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자 24
[항목 4] private 생성자를 사용해서 인스턴스 생성을 못하게 하자 27
[항목 5] 불필요한 객체의 생성을 피하자 29
[항목 6] 쓸모 없는 객체 참조를 제거하자 35
[항목 7] 파이널라이저(finalizer)의 사용을 피하자 40

CHAPTER 3 모든 객체에 공통적인 메소드 47
[항목 8] equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자 48
[항목 9] equals 메소드를 오버라이드 할 때는 hashCode 메소드도 항상 같이 오버라이드 하자 65
[항목 10] toString 메소드는 항상 오버라이드 하자 73
[항목 11] clone 메소드는 신중하게 오버라이드 하자 76
[항목 12] Comparable 인터페이스의 구현을 고려하자 88

CHAPTER 4 클래스와 인터페이스 95
[항목 13] 클래스와 그 멤버의 접근성을 최소화하자 95
[항목 14] public 클래스에서는 public 필드가 아닌 접근자(accessor) 메소드를 사용한다 100
[항목 15] 가변성을 최소화 하자 103
[항목 16] 가급적 상속(inheritance)보다는 컴포지션(composition)을 사용하자 112
[항목 17] 상속을 위한 설계와 문서화를 하자. 그렇지 않다면 상속의 사용을 금지시킨다 120
[항목 18] 추상 클래스보다는 인터페이스를 사용하자 127
[항목 19] 타입을 정의할 때만 인터페이스를 사용하자 134
[항목 20] 태그(tagged) 클래스보다는 클래스 계층을 사용하자 137
[항목 21] 전략을 표현할 때 함수 객체를 사용하자 141
[항목 22] static 멤버 클래스를 많이 사용하자 145

CHAPTER 5 제네릭(Generics) 149
[항목 23] 새로 작성하는 코드에서는 원천(raw) 타입을 사용하지 말자 149
[항목 24] 컴파일 경고 메시지가 없게 하자 158
[항목 25] 배열보다는 List를 사용하자 162
[항목 26] 제네릭 타입을 애용하자 169
[항목 27] 제네릭 메소드를 애용하자 176
[항목 28] 바운드 와일드 카드를 사용해서 API의 유연성을 높이자 183
[항목 29] 타입 안전이 보장되는 혼성(heterogeneous) 컨테이너의 사용을 고려하자 193

CHAPTER 6 열거형(Enum)과 주석(Annotation) 201
[항목 30] int 상수 대신 enum을 사용하자 201
[항목 31] 서수(序數) 대신 인스턴스 필드를 사용하자 215
[항목 32] 비트(bit) 필드 대신 EnumSet을 사용하자 217
[항목 33] 서수(序數) 인덱스 대신 EnumMap을 사용하자 220
[항목 34] 인터페이스를 사용해서 확장 가능한 enum을 만들자 225
[항목 35] 작명 패턴보다는 주석(annotation)을 사용하자 230
[항목 36] Override 주석을 일관성 있게 사용하자 239
[항목 37] 타입 정의는 표시 인터페이스를 사용하자 243

CHAPTER 7 메소드(method) 247
[항목 38] 매개 변수가 유효한지 검사하자 247
[항목 39] 필요하면 방어 복사본을 만들자 251
[항목 40] 메소드 시그니처를 신중하게 설계하자 257
[항목 41] 오버로딩(overloading)을 분별력 있게 사용하자 260
[항목 42] 가변 인자(varargs)를 분별력 있게 사용하자 268
[항목 43] null대신 비어있는 배열이나 컬렉션을 반환하자 274
[항목 44] 외부에 제공하는 모든 API 요소에 대해 문서화 주석을 넣자 277

CHAPTER 8 프로그래밍 일반 285
[항목 45] 지역 변수의 유효 범위를 최소화 하자 285
[항목 46] 종전의 for 루프보다는 for-each 루프를 사용하자 289
[항목 47] 라이브러리를 배우고 사용하자 293
[항목 48] 정확한 계산에는 float나 double 타입을 쓰지 말자 297
[항목 49] 박스화 기본형보다는 기본형을 사용하자 300
[항목 50] 다른 타입을 쓸 수 있는 곳에서는 String 사용을 피하자 304
[항목 51] 문자열 결합의 성능 저하를 주의하자 308
[항목 52] 객체 참조는 그 객체의 인터페이스 타입으로 하자 310
[항목 53] 리플렉션보다는 인터페이스를 사용하자 313
[항목 54] 네이티브 메소드를 분별력 있게 사용하자 317
[항목 55] 잘 판단해서 최적화하자 319
[항목 56] 보편화된 작명 규칙을 따르자 323

CHAPTER 9 예외(Exceptions) 327
[항목 57] 예외 상황에서만 예외를 사용하자 327
[항목 58] 복구 가능 상황에는 checked 예외를 사용하고 런타임 예외는 프로그램 에러에 사용하자 331
[항목 59] checked 예외의 불필요한 사용을 피하자 334
[항목 60] 표준 예외를 사용하자 337
[항목 61] 하위 계층의 예외 처리를 신중하게 하자 340
[항목 62] 메소드가 던지는 모든 예외를 문서화하자 344
[항목 63] 실패 상황 정보를 상세 메시지에 포함하자 346
[항목 64] 실패 원자성을 갖도록 노력하자 349
[항목 65] 예외를 묵살하지 말자 351

CHAPTER 10 동시성(Concurrency) 353
[항목 66] 공유하는 가변 데이터에 접근 시 동기화하자 353
[항목 67] 지나친 동기화는 피하자 361
[항목 68] 스레드 그룹보다는 실행자와 작업을 사용하자 369
[항목 69] wait와 notify 대신 동시성 유틸리티를 사용하자 372
[항목 70] 스레드 안전을 문서화 하자 379
[항목 71] 늦 초기화를 분별력 있게 사용하자 383
[항목 72] 스레드 스케줄러에 의존하지 말자 387
[항목 73] 스레드 그룹을 사용하지 말자 390

CHAPTER 11 직렬화(Serialization) 393
[항목 74] Serializable 인터페이스를 분별력 있게 구현하자 393
[항목 75] 독자적인 직렬화 형태의 사용을 고려하자 400
[항목 76] 방어 가능한 readObject 메소드를 작성하자 408
[항목 77] 인스턴스 제어에는 readResolve 메소드보다 enum 타입을 사용하자 416
[항목 78] 직렬화된 인스턴스 대신 직렬화 프록시의 사용을 고려하자 422

번역 용어 목록 427
부록:제1판과의 항목 대비 441
참고문헌 445
찾아보기 451
Joshua Bloch
Joshua Bloch는 현재 구글의 수석 자바 아키텍트로 근무하고 있으며, Jolt Award 수상자입니다. 그는 종전에 Sun Microsystems의 수석 엔지니어와 Transarc의 수석 시스템 설계자로 근무했습니다. Bloch는 수많은 자바 플랫폼 기능들의 설계와 구현을 이끌었으며, 거기에는 JDK 5.0의 언어 기능 향상 및 Jolt Award를 수상한 자바 컬렉션 프레임워크가 포함됩니다. 그는 JavaTM Puzzlers(Addison-Wesley, 2005)와 JavaTM Concurrency in Practice(Addison-Wesley, 2006)의 공동 저자이기도 합니다.


[역자소개]
심재철

현재: 프리렌서,UML/Java/DB컨설팅&강의
객체지향 시스템 개발 및 프로젝트 기술 지원(15년)
애플리케이션 개발(건설/ 금융 분야)(14년)

대표 저서/역서: “UML 사용자 지침서”
“Thinking in Java”(2nd & 4th Edition)
최고의 Best Practice!
김태기님이 쓰신 서평보기 I 평점 I 조회수(2139) I 공감 (2) I 블로그
최근에 자바 트랜드를 보면 스프링,하이버네이트,iBatis 등 오픈 소스와신기술의 홍수속에서 살고 있다.주위 후배나 동료들을 보면 이러한 트렌드만 쫓아 가려는 듯 보인다.하지만 그러한 기술을 응용을 하지 못하고 config only만 하는 경우를많이 본다. 그 이유는 core 자바에 대한 기본이 많이 부족해서이다.경력이 쌓을 수록 중급 이상 개발자들은 기본이 중요하다는걸 느낄 것이다. 그런 의미에서 effective java 2nd는 개발자들에게 정말 큰 힘이 되어 준것 같다. 기존 자바...
정말 좋은 자바 책
박영선님이 쓰신 서평보기 I 평점 I 조회수(1734) I 공감 (0) I 블로그
자바 언어의 기본을 가르쳐주는 책들은 무수히 많다.자바 입문자들이 언어 문법이나 API 라이브러리의 사용법을 알 필요가 있기 때문이다. 그러나 그 다음 단계로 자바 코드를 효율적이고 올바르게 작성하는데도움을 주는 그런 책은 이 책 외에는 없다고 해도 과언이 아니다. 객체지향의 장점을 극대화하면서 설계에서 자바 코드로 구현하기까지에 필수적인 그런 여러 관점들을 소개하고, 실전적으로 코드에 적용하는 지침을 주는 것이 바로 이 책이라고 생각한다. 내 생각에는...
자바 프로그래머의 필독서
서대원님이 쓰신 서평보기 I 평점 I 조회수(1828) I 공감 (1) I 블로그
자바 프로그래밍 언어의 문법이나 API를 배우고 실제 프로그램을 작성하려고 하면많은 문제점이나 의문들이 생기게 된다. 코드를 어떻게 작성하는 게 좋은지, 그렇게 해도 되는 건지 그리고 그게 과연 바람직한 것인지, 성능상의 문제점은 없는지, 왜 그런 코드를 작성해야 하는지..... 또한 클래스나 인터페이스를 설계하고 메소드를 만들 때 주의할 사항은 무엇인지,그리고 객체지향 언어인 자바로 그런 설계 내역을 코드로 작성할 때자바의 특성을 십분 살려서 잘 만들려면...
자바 병렬 프로그래밍...
David Holmes
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
C언어 스케치...
강환수, 이동규, 최재순
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
이펙티브 자바스크립트...
데이비드 허먼
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
 
전체평균(62)
회원평점   회원서평수 3
최고의 Best Practice!
김태기 님  2009-07-28
정말 좋은 자바 책
박영선 님  2009-05-26
자바 프로그래머의 필독서
서대원 님  2009-05-22
심재철 의 최근 저서
 
핵심만 골라 배우는 코틀린 프로그래밍
21,600원
(10%↓+5%)
 
Joshua Bloch 의 최근 저서
 
Effective Java
60,000원
(22%↓+1%)
 
Book of Kuzari
55,600원
(22%↓+1%)
 
Book of Kuzari
39,200원
(22%↓+1%)
 
Publications of the American Jewish Historical Society, No. 37
54,500원
(22%↓+1%)
 
도서출판 대웅 출판사의 신간
D 프로그래밍언어
Andrei Alexandrescu / 류광 역 저
32,010원
(3%↓+1%)
 
이메일주소수집거부