μλ° κ°λ°μλΌλ©΄ λꡬλ ν λ²μ―€μ λ€μ΄λ΄€μ μ΄νν°λΈ μλ°(Effective Java).
μ‘°μμ λΈλ‘ν¬(Joshua Bloch)κ° μ΄ μ΄ μ±
μ, μλ° νλ‘κ·Έλλ°μ λ°μ΄λΈκ³Ό κ°μ μ‘΄μ¬λ‘ μ¬κ²¨μ§λλ€.
2001λ
μ 1νμ΄ λμ¨ μ΄ν, μλ° μΈμ΄μ λ³νμ ν¨κ» κΎΈμ€ν κ°μ νμ΄ μΆκ°λμκ³ , νμ¬λ 3νκΉμ§ λμ μμ΅λλ€.
Effective Javaλ₯Ό μ νν μ΄μ λ, μλ° κ°λ°μλ‘μ λμ± μ±μνκ³ ν¨μ¨μ μΈ μ½λλ₯Ό μμ±νκ³ μΆμ κ°λ§ λλ¬Έμ΄μμ΅λλ€.
μ‘°μμ λΈλ‘ν¬λ λ°μ΄λ μλ° κ°λ°μμ΄μ μ μ κ°μ
λλ€.
κ·Έλ μΉ΄λ€κΈ° λ©λ‘ λνκ΅μμ μ»΄ν¨ν° κ³Όν λ°μ¬ νμλ₯Ό λ°κ³ , μ λ§μ΄ν¬λ‘μμ€ν
μ¦(Sun Microsystems)μ ꡬκΈ(Google)μμ ν΅μ¬μ μΈ μν μ μννμ΅λλ€.
νΉν, μλ° μ»¬λ μ
νλ μμν¬μ java.math ν¨ν€μ§λ₯Ό μ€κ³νκ³ κ΅¬ννλ λ° μ£Όλμ μΈ μν μ νμ΅λλ€.
κ·Έμ κΉμ΄ μλ μ§μκ³Ό νλΆν κ²½νμ Effective Java κ³³κ³³μ λ
Ήμ μμΌλ©°, λ
μλ€μκ² κΉμ ν΅μ°°λ ₯μ μ 곡ν©λλ€.

Effective Javaλ μ΄ 12κ°μ μ±ν°λ‘ ꡬμ±λμ΄ μμΌλ©°, κ° μ±ν°λ μλ° νλ‘κ·Έλλ°μ νΉμ μμμ λν ꡬ체μ μΈ μ§μΉ¨κ³Ό κΆμ₯ μ¬νμ λ΄κ³ μμ΅λλ€.
κ° μ±ν°μ ν΅μ¬ λ΄μ©μ ν λ¬Έμ₯μΌλ‘ μμ½νλ©΄ λ€μκ³Ό κ°μ΅λλ€.
1μ₯.
λ€μ΄κ°κΈ°: μλ°λ₯Ό ν¨κ³Όμ μΌλ‘ μ¬μ©νκΈ° μν μ λ°μ μΈ μ‘°μΈ
2μ₯.
κ°μ²΄ λ§λ€κΈ°: κ°μ²΄ μμ±κ³Ό κ΄λ¦¬μ λν λͺ¨λ² μ¬λ‘
3μ₯.
λ©μλ: λ©μλ μ€κ³ λ° μ¬μ©λ²μ λν μ§μΉ¨
4μ₯.
ν΄λμ€μ μΈν°νμ΄μ€: ν΄λμ€μ μΈν°νμ΄μ€ μ€κ³ μμΉ
5μ₯.
μ λ€λ¦: μ λ€λ¦μ ν¨κ³Όμ μΌλ‘ μ¬μ©νλ λ°©λ²
6μ₯.
μ΄κ±° νμ
κ³Ό μ λν
μ΄μ
: μ΄κ±° νμ
κ³Ό μ λν
μ΄μ
νμ©λ²
7μ₯.
λλ€μ μ€νΈλ¦Ό: λλ€μ μ€νΈλ¦Όμ νμ©ν ν¨μν νλ‘κ·Έλλ°
8μ₯.
λ©μλ: λ©μλ μ€κ³ λ° μ¬μ©λ²μ λν μ§μΉ¨
9μ₯.
μΌλ°μ μΈ νλ‘κ·Έλλ°: μλ° νλ‘κ·Έλλ° μ νν λ°μνλ λ¬Έμ μ κ³Ό ν΄κ²°μ±
10μ₯.
μμΈ: μμΈ μ²λ¦¬μ λͺ¨λ² μ¬λ‘
11μ₯.
λμμ±: λ©ν°μ°λ λ νκ²½μμμ νλ‘κ·Έλλ° κΈ°λ²
12μ₯.
μ§λ ¬ν: μ§λ ¬νμ μνμ±κ³Ό λμ
μ΄ μ±
μ 체λ₯Ό κ΄ν΅νλ ν΅μ¬ λ©μμ§λ μλ° μΈμ΄μ κΈ°λ₯μ μ λλ‘ μ΄ν΄νκ³ μ¬μ©νλΌλ κ²μ
λλ€.
Effective Javaλ μλ° μΈμ΄μ μ¨κ²¨μ§ κΈ°λ₯κ³Ό μ μ¬λ ₯μ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅Ρ, κ°λ°μλ€μ΄ λμ± ν¨μ¨μ μ΄κ³ μ μ§λ³΄μκ° μ©μ΄ν μ½λλ₯Ό μμ±ν μ μλλ‘ μλ΄ν©λλ€.
Effective Javaμλ κΈ°μ΅ν΄μΌ ν λ¬Έμ₯λ€μ΄ κ°λν©λλ€.
κ·Έμ€ λͺ κ°μ§λ₯Ό κΌ½μλ©΄ λ€μκ³Ό κ°μ΅λλ€.
μμ΄ν
1: μ μ ν©ν°λ¦¬ λ©μλλ₯Ό κ³ λ €νλΌ
μμ΄ν
3: private μμ±μλ μ΄κ±° νμ
μΌλ‘ μ±κΈν΄μμ 보μ¦νλΌ
μμ΄ν
8: equalsλ₯Ό μ¬μ μν λλ hashCodeλ μ¬μ μνλΌ
μμ΄ν
13: ν΄λμ€μ λ©€λ²μ μ κ·Ό κΆνμ μ΅μννλΌ
μμ΄ν
52: μμΈλ₯Ό 무μνμ§ λ§λΌ
Effective Javaλ₯Ό μ½μΌλ©΄μ κ°μ₯ ν¬κ² λλ μ μ, μλ° νλ‘κ·Έλλ°μλ μ λ΅μ΄ μ ν΄μ Έ μμ§ μλ€λ κ²μ
λλ€.
μν©μ λ°λΌ κ°μ₯ μ ν©ν λ°©λ²μ λ¬λΌμ§ μ μμΌλ©°, Effective Javaλ κ·Έλ¬ν μν© νλ¨ λ₯λ ₯μ ν€μμ£Όλ λ° λμμ μ€λλ€.
Effective Javaλ λ¨μν κΈ°μ μμ μ λμ΄, μλ° κ°λ°μλ‘μμ μ¬κ³ λ°©μκ³Ό νλλ₯Ό κ°λ€λ¬λ λ° ν° μν₯μ λ―ΈμΉλ μ±
μ
λλ€.
Effective Javaλ μλ° κ°λ°μ κΉμ΄λ₯Ό λνκ³ , λ λμ νλ‘κ·Έλλ¨Έκ° λλλ‘ μ΄λμ΄μ£Όλ νλ₯ν μ§μΉ¨μμ
λλ€.
Effective Javaμ κ°μ₯ ν° λ§€λ ₯μ, κ° μμ΄ν
λ€μ΄ λ¨μν μ΄λ‘ μ μΈ μ€λͺ
μ κ·ΈμΉμ§ μκ³ , μ€μ μ½λ μμ μ ν¨κ» μ μλλ€λ μ μ
λλ€.
Effective Javaλ₯Ό ν΅ν΄ μ»μ μ§μμ μ€μ κ°λ° νμ₯μμ μ¦μ μ μ©ν μ μμΌλ©°, λ¬Έμ ν΄κ²° λ₯λ ₯μ ν₯μμν€λ λ° λμμ΄ λ©λλ€.
Effective Javaλ μλ° κ°λ°μλΌλ©΄ λ°λμ μ½μ΄μΌ ν μ±
μ΄λ©°, κΎΈμ€ν λ°λ³΅ν΄μ μ½κ³ μ€μ²ν΄μΌ ν κ°μΉκ° μμ΅λλ€.
Effective Javaλ₯Ό ν΅ν΄ μ¬λ¬λΆμ μλ° μ½λ© μ€λ ₯μ΄ ν λ¨κ³ λ λ°μ ν μ μκΈ°λ₯Ό λ°λλλ€.