λ°μν
λλ―Έν° λ²μΉ
Law of Demeter
: λͺ¨λμ μμ μ΄ μ‘°μνλ κ°μ²΄μ μμ¬μ μ λͺ°λΌμΌ νλ€.
- κ°μ²΄λ μλ£λ₯Ό μ¨κΈ°κ³ ν¨μλ₯Ό 곡κ°νλ€.
- μ¦, κ°μ²΄λ μ‘°νν¨μλ‘ λ΄λΆ ꡬ쑰λ₯Ό 곡κ°νλ©΄ μλλ€λ μλ―Έλ€.
- λνμ μΈ ν΄λ¦¬μ€ν±μ΄λ€.
ν΄λ¦¬μ€ν± Heuristic
μλ²½νμ§ μμ§λ§, μΌλ°λ²μΌλ‘ μ’μ/κ°λ¨ν ν΄κ²°λ²μ λ§νλ€.
- μμΈν μμλ‘
ν΄λμ€ Cμ λ©μλ fλ λ€μκ³Ό κ°μ κ°μ²΄μ λ©μλλ§ νΈμΆν΄μΌ νλ€.- ν΄λμ€ C
- f κ° μμ±ν κ°μ²΄
- f μΈμλ‘ λμ΄μ¨ κ°μ²΄
- C μΈμ€ν΄μ€ λ³μμ μ μ₯λ κ°μ²΄
- νμ§λ§ μ κ°μ²΄μμ νμ©λ λ©μλκ° λ°ννλ κ°μ²΄μ λ©μλλ νΈμΆνλ©΄ μλλ€.
볡μ‘ν λ―μ΄ λ³΄μ΄μ§λ§ λλ―Έν° λ²μΉμ μλ°νλ μ¬λ‘λ§ νΌνλ©΄ λλ€.
ν΄λμ€ A→Bμμ μ‘°νλ₯Ό νλ€λ©΄ Bμ μλ μλ£λ§ κ°μ ΈμμΌμ§
A→B→Cμ‘°νλ₯Ό νλ©΄ μλλ€λ κ±°λ€.
νλ§λλ‘ μ½λκ° κΌ¬μΈ μν.
κΈ°μ°¨ μΆ©λ Train wreck
μ΄ μ¬λ‘λ μλ£κ΅¬μ‘°λ 무쑰건 ν¨μμμ΄ κ³΅κ° λ³μλ§ ν¬ν¨νκΈ°λλ¬Έμ΄κ³
κ°μ²΄μμλ μλλ€.
μ‘μ’ κ΅¬μ‘°
μμ κ°μ΄ λλ―Έν° λ²μΉμ μλ°νλ©΄ μ½λκ° κΌ¬μ΄λ νΌλμ΄ μκΈ°λλ°
κ°λ°μλ μ΄ μ½λλ₯Ό νμ©νκΈ° μν΄ μ λ°μ κ°μ²΄, μ λ°μ μλ£ κ΅¬μ‘°μΈ μ‘μ’ κ΅¬μ‘°λ₯Ό λ§λ€κ² λλ€.
μ΄λ κ² λλ©΄ μ΄μ κΈμμ μ€λͺ νλ λ°μ κ°μ΄ μλ‘μ΄ ν¨μ/μλ£κ΅¬μ‘° λͺ¨λ μΆκ°νκΈ° μ΄λ €μ΄ μν©μ΄ λλ€.
κ·Έλμ μ λ΅μ
- κ²°κ΅ κ°μ Έμ€λ €λ κ²μ File Pathμ΄λ€.
- μ΄λ₯Ό κ°μ Έμ€κΈ° μν ν¨μλ₯Ό ꡬννλ©΄ λ΄λΆκ΅¬μ‘°λ₯Ό λ€μ΄λ΄μ§ μμ μ μλ€.
- ν¨μλ₯Ό μλ‘ λ§λ€λ©΄ λλ κ²μ΄μ§ μ΄κ² μ κ² λμ΄λ€ μ°λ μκ° μ½λκ° κΌ¬μ΄κ² λλ κ² κ°λ€.
μλ£ μ λ¬ κ°μ²΄
μλ£κ΅¬μ‘°μ²΄μ μ νμ μΈ ννλ κ³΅κ° λ³μλ§ μκ³ ν¨μκ° μλ ν΄λμ€μ΄λ€.
DTO(Data Transfer Object)λΌκ³ λ νλ€.
Socketμ΄λ DBμ μ μ₯λ μ 보λ₯Ό μ½λμμ μ¬μ©ν κ°μ²΄λ‘ λ³ννλ κ³Όμ μμ 첫λ²μ§Έλ‘ μ¬μ©λλ€.
κ΅μ₯ν μ μ©νκ² μ¬μ©λλ€.
μ’ λ μΌλ°μ μΈ ννλ‘λ λΉBean ꡬ쑰μ΄λ€.
(μ΄μ μ λ§μ΄ μ¬μ©λμλλ°, μμ§λ νμ₯μμ 리ν©ν λ§ν λ AS-IS μ½λμμ λ§μ΄ 보μ λλ€)
μΌμ’ μ μ¬μ΄λ² μΊ‘μνλ‘ λ³λ€λ₯Έ μ΄μ΅μ μ 곡νμ§ μλλ€.
νμ±λ μ½λ
DTOμ νΉμν νν.
λΉμ¦λμ€ κ·μΉ λ©μλλ₯Ό μΆκ°ν΄ μ¬μ©νλ κ²½μ°κ° λ§μλ°
μ΄λ° κ²½μ° μ‘μ’ κ΅¬μ‘°κ° λμ€κΈ° λλ¬Έμ μΆμ²νμ§ μλλ€.
λ°μν
'π CleanCode' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[CleanCode]μ€λ₯μ²λ¦¬-μμΈμ¬μ©λ² (0) | 2024.09.27 |
---|---|
[CleanCode]μ€λ₯μ²λ¦¬-μ€λ₯μ½λλ³΄λ€ μμΈ(try/catch&throws)λ₯Ό μ΄μ©νλΌ (1) | 2024.09.25 |
[CleanCode]κ°μ²΄μ μλ£κ΅¬μ‘° 1 (0) | 2024.09.23 |
[CleanCode]νμ λ§μΆκΈ° (0) | 2024.09.21 |
[CleanCode]λμ μ£Όμ (0) | 2024.09.20 |