2023. 1. 4. 11:59γJAVA/Effective JAVA
item01. μμ±μ λμ μ μ ν©ν°λ¦¬ λ©μλλ₯Ό κ³ λ €νλΌ.
" p.12 μλΉμ€ μ 곡μ μΈν°νμ΄μ€κ° μλ€λ©΄ κ° κ΅¬ν체λ₯Ό μΈμ€ν΄μ€λ‘ λ§λ€ λ 리νλ μ μ μ¬μ©ν΄μΌ νλ€. "
리νλ μ μ΄λ?
: ν΄λμ€λ‘λλ₯Ό ν΅ν΄ μ½μ΄μ¨ ν΄λμ€ μ 보λ₯Ό μ¬μ©νλ κΈ°μ
리νλ μ μ ν μμμ λ‘λλ class νμ μ κ°μ²΄λ₯Ό ν΅ν΄ μνλ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±ν μ μλλ‘ μ§μνκ³ , μΈμ€ν΄μ€μ νλμ λ©μλλ₯Ό μ κ·Ό μ μ΄μμ μκ΄μμ΄ μ¬μ©ν μ μλλ‘ μ§μνλ api μ΄λ€.
ꡬ체μ μΈ ν΄λμ€ νμ μ μμ§ λͺ»ν΄λ, κ·Έ ν΄λμ€μ λ©μλ, νμ , λ³μλ€μ μ κ·Όν μ μλλ‘ ν΄μ£Όλ μλ° API μ΄λ€.
λ°νμμ μ§κΈ μ€νλκ³ μλ ν΄λμ€λ₯Ό κ°μ Έμμ μ€νν΄μΌ νλ κ²½μ°λ λμ μΌλ‘ κ°μ²΄λ₯Ό μμ±νκ³ λ©μλλ₯Ό νΈμΆν΄μΌ νλ κ²½μ°μ μλ° νΌλ₯Όλ μ κΈ°μ μ μ΄μ©νλ©΄ ν΄λμ€, μΈν°νμ΄μ€, λ©μλλ€μ μ°Ύμ μ μκ³ , κ°μ²΄λ₯Ό μμ±νκ±°λ λ³μλ₯Ό λ³κ²½νκ±°λ λ©μλλ₯Ό νΈμΆν μ μλ€.
ex) μ€νλ§μ μ΄λ Έν μ΄μ κΈ°λ₯ λ±μ΄ 리νλ μ μ μ΄μ©ν κΈ°λ₯μ΄λ€.
HelloServiceλΌλ μΈν°νμ΄μ€λ₯Ό ꡬνν EnglishServiceλΌλ ν΄λμ€λ₯Ό μμ±νκ³ , 리νλ μ μ μ¬μ©ν μμ μ΄λ€.
getConstructor() λ₯Ό ν΅ν΄ μμ±μλ₯Ό μ»μ΄μ€κ³ , newInstance() λ₯Ό ν΅ν΄ HelloService μΈμ€ν΄μ€λ₯Ό λμ μΌλ‘ μμ±ν΄μ€ μ μλ€.
κ·Έλ¦¬κ³ μμ±ν μΈμ€ν΄μ€μ νλμ λ©μλλ₯Ό μ κ·Ό μ μ΄μμ μκ΄μμ΄ μ¬μ©ν μ μλ€.
리νλ μ μ₯λ¨μ
- μ₯μ
: λ°νμ μμ μμ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±νκ³ , μ κ·Ό μ μ΄μμ κ΄κ³μμ΄ νλμ λ©μλμ μ κ·Όνμ¬ νμν μμ μ μνν μ μλ μ μ°μ±μ μ 곡ν΄μ€λ€.
- λ¨μ
: λ°νμ μμ μ μΈμ€ν΄μ€λ₯Ό μμ±νκΈ° λλ¬Έμ μ»΄νμΌ μμ μ ν΄λΉ νμ 체ν¬λ₯Ό ν μ μλ€.
λ°νμ μμ μ μΈμ€ν΄μ€λ₯Ό μμ±νκΈ° λλ¬Έμ ꡬ체μ μΈ λμ νλ¦μ νμ νκΈ° μ΄λ ΅λ€.
리νλ μ λ μΈμ μ¬μ©νλκ°?
- νΉμ μ λ Έν μ΄μ μ΄ λΆμ΄μλ νλ λλ λ©μλ μ½μ΄μ€κΈ° (Junit, Spring)
- νΉμ μ΄λ¦ ν¨ν΄μ ν΄λΉνλ λ©μλ λͺ©λ‘ κ°μ Έμ νΈμΆνκΈ° (getter,setter)
- IDE μμ μ μλ λ©μλλ₯Ό κ°μ Έμ€κ±°λ ν λ
κ·λͺ¨κ° μμ νλ‘μ νΈλΌλ©΄ κ°λ°μκ° μΆ©λΆν μ»΄νμΌ μμ μ νλ‘κ·Έλ¨μμ μ¬μ©νλ κ°μ²΄μ μμ‘΄κ΄κ³λ₯Ό λͺ¨λ νμ νλ κ²μ΄ κ°λ₯νμ§λ§,
νλ μμν¬μ κ°μ΄ κ·λͺ¨κ° κ΅μ₯ν ν° νλ‘μ νΈμ λν΄μλ μλ§μ κ°μ²΄μ μ΄ μμ‘΄κ΄κ³λ₯Ό λͺ¨λ νμ νλ κ²μ μ΄λ ΅λ€.
λ°λΌμ μ΄λ 리νλ μ μ μ¬μ©νλ©΄ λμ μΌλ‘ ν΄λμ€λ₯Ό λ§λ€μ΄μ μμ‘΄κ΄κ³λ₯Ό λ§Ίμ΄μ€ μ μλ€.
spring Bean Factoryμμ @Controller, @Service, @Repository λ±μ μ΄λ Έν μ΄μ μ λΆμ΄λ©΄ Bean Factoryμμ μμμ ν΄λΉ μ΄λ Έν μ΄μ μ΄ λΆμ ν΄λμ€λ₯Ό μμ±νκ³ κ΄λ¦¬ν΄μ£Όλλ°, μκ°ν΄λ³΄λ©΄ Bean Factoryμ ν΄λΉ ν΄λμ€μ λν΄μ μ μν μ μ΄ μλλ° μμμ κ΄λ¦¬ν΄μ€ μ μλ μ΄μ κ° λ¦¬νλ μ λλΆμ΄λ€.
λ°νμ μμ μ μ΄λ Έν μ΄μ μ΄ λΆμ ν΄λμ€λ₯Ό νμνκ³ λ°κ²¬νλ©΄ 리νλ μ μν΅ν΄ ν΄λΉ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±νκ³ νμν νλλ₯Ό μ£Όμ νμ¬ Bean Factoryμ μ μ₯νλ μμΌλ‘ μ¬μ©λλ€.