π Book/β Clean Code
[Book] ν΄λ¦°μ½λ - 9μ₯ λ¨μ ν μ€νΈ
9μ₯ λ¨μ ν μ€νΈ μ§λ 1997λ λ§ ν΄λ TDDλΌλ κ°λ μ μ무λ λͺ°λκ³ λ¨μ ν μ€νΈλ μκΈ° νλ‘κ·Έλ¨μ΄ λμκ°λ€λ μ¬μ€λ§ νμΈνλ μΌνμ± μ½λμ λΆκ³Όνλ€. ν΄λμ€μ λ©μλλ₯Ό 곡λ€μ¬ ꡬνν ν μμ μ½λλ₯Ό κΈμ‘°ν΄ ν μ€νΈλ₯Ό μννλλ° λκ°λ κ°λ¨ν λλΌμ΄λ² νλ‘κ·Έλ¨μ ꡬνν΄ μμ μ΄ μ§ νλ‘κ·Έλ¨μ μλμΌλ‘ μ€ννλ€. νμ§λ§ μ§κΈμ λλΆμ μ±μ₯μ μ΄λ€λ€. κΌ¬μΉκΌ¬μΉ λ°μ§λ©° μ½λκ° μ λλ‘ λλμ§ νμΈνλ ν μ€νΈ μ½λλ₯Ό μμ±νκ³ ν μ€νΈ μΌμ΄μ€λ₯Ό λͺ¨λ ꡬννκ³ ν΅κ³Όν νμλ λ΄ μ½λλ₯Ό μ¬μ©ν μ¬λλ€μκ²λ 곡κ°νκ³ ν μ€νΈ μ½λμ λ΄ μ½λλ₯Ό κ°μ μμ€ ν¨ν€μ§λ‘ λ¬Άμ΄ μ²΄ν¬μΈνλ€. μ μμΌκ³Ό TDD λνμ λ¨μ ν μ€νΈλ₯Ό μλννλ νλ‘κ·Έλλ¨Έλ€μ΄ μ΄λ―Έ λ§μμ‘μΌλ©° μ μ λ λμ΄λλ μΆμΈμ΄λ€. νμ§λ§ μ°λ¦¬ λΆμΌμ ν μ€νΈλ₯Ό μΆκ°νλ €κ³ ..
![[Book] ν΄λ¦°μ½λ - 8μ₯ κ²½κ³](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc4LCwv%2FbtqUo9wq8rJ%2F3lKOKo8m3yXa6O4mDXaIOK%2Fimg.png)
[Book] ν΄λ¦°μ½λ - 8μ₯ κ²½κ³
8μ₯ κ²½κ³ μμ€ν μ λ€μ΄κ°λ λͺ¨λ μννΈμ¨μ΄λ₯Ό μ§μ κ°λ°νλ κ²½μ°λ λλ¬Όλ€. λλ‘λ ν¨ν€μ§λ₯Ό μ¬κ³ μ€ν μμ€λ₯Ό μ΄μ©νλ€. μ΄λ€ μμΌλ‘λ μ΄ μΈλΆ μ½λμ μ°λ¦¬ μ½λμ κ²½κ³λ₯Ό κΉλνκ² μ²λ¦¬νκ³ ν΅ν©ν΄μΌ νλ€. 1. μΈλΆ μ½λ μ¬μ©νκΈ° ν¨ν€μ§ μ 곡μλ νλ μμν¬ μ 곡μλ μ μ©μ±μ μ΅λν λν λ λ§μ νκ²½μμ λμκ°κΈΈ μνλ€. νμ§λ§ μ¬μ©μλ μμ μ μꡬμ μ§μ€νλ μΈν°νμ΄μ€λ₯Ό λ μνλ€. μλ‘ java.util.Mapμ μ΄ν΄λ³΄μ. Mapμ΄ μ 곡νλ κΈ°λ₯μ±κ³Ό μ μ°μ±μ νμ€ν μ μ©νμ§λ§ κ·Έλ§νΌ μνλ ν¬λ€. λκΈ°λ μͺ½μμλ Map λ΄μ©μ μμ νμ§ μμΌλ¦¬λΌ λ―Ώμ μ μμ§λ§, Mapμ΄ μ 곡νλ λ©μλ μ€ Clear()κ° μ‘΄μ¬νλ€. μ¦, Map μ¬μ©μλΌλ©΄ λꡬλ Map λ΄μ©μ μ§μΈ μ μλ€. μ΄λ€ ν΄λμ€λ₯Ό μ μ₯νλ ..
[Book] ν΄λ¦°μ½λ - 7μ₯ μ€λ₯ μ²λ¦¬
7μ₯ μ€λ₯ μ²λ¦¬ λκ° μλͺ»λ κ°λ₯μ±μ λ μ‘΄μ¬νλ€. λκ° μλͺ»λλ©΄ λ°λ‘ μ‘μ μ± μμ λ°λ‘ νλ‘κ·Έλλ¨Έμκ² μλ€. κ·Έλ λ€λ©΄ κΉ¨λν μ½λμ μ€λ₯ μ²λ¦¬κ° κ΄λ ¨μ΄ μμκΉ? νμ€ν μ°κ΄μ±μ΄ μλ€. μλΉμ μ½λ κΈ°λ°μ μ μ μΌλ‘ μ€λ₯ μ²λ¦¬ μ½λμ μ’μ°λλ€. μ¬κΈ°μ μ’μ°λλ€λ ννμ μ½λ κΈ°λ°μ΄ μ€λ₯λ§ μ²λ¦¬νλ€λ μλ―Έκ° μλ μ¬κΈ°μ κΈ° ν©μ΄μ§ μ€λ₯ μ²λ¦¬ μ½λ λλ¬Έμ μ€μ μ½λκ° νλ μΌμ νμ νκΈ°κ° κ±°μ λΆκ°λ₯νλ€λ μλ―Έμ΄λ€. μ€λ₯ μ²λ¦¬λ μ€μνμ§λ§ μ΄ μ½λλ‘ μΈν΄ νλ‘κ·Έλ¨ λ Όλ¦¬λ₯Ό μ΄ν΄νκΈ° μ΄λ €μμ§λ€λ©΄ κΉ¨λν μ½λλΌ λΆλ₯΄κΈ° μ΄λ ΅λ€. 1. μ€λ₯ μ½λλ³΄λ€ μμΈλ₯Ό μ¬μ©νλΌ μμΈ μ²λ¦¬λ₯Ό μ§μνμ§ μλ νλ‘κ·Έλλ° μΈμ΄κ° μ€λ₯ μ²λ¦¬λ₯Ό ν λ, μ€λ₯ νλκ·Έλ₯Ό μ€μ νκ±°λ νΈμΆμμκ² μ€λ₯ μ½λλ₯Ό λ°ννλ λ°©λ²μ΄ μ λΆμλ€. public v..
[Book] ν΄λ¦°μ½λ - 6μ₯ κ°μ²΄μ μλ£ κ΅¬μ‘°
6μ₯ κ°μ²΄μ μλ£ κ΅¬μ‘° λ³μλ₯Ό privateλ‘ μ μνλ μ΄μ κ° μλ€. λ¨λ€μ΄ λ³μμ μμ‘΄νμ§ μκ² λ§λ€κ³ μΆμ΄μ, λ³μ νμ μ΄λ ꡬνμ λ§λλ‘ λ°κΎΈκ³ μΆμ΄μ κ·Έλ λ€λ©΄ μ λ§μ νλ‘κ·Έλλ¨Έκ° μ‘°ν(get) ν¨μμ μ€μ (set) ν¨μλ₯Ό λΉμ°ν publicμΌλ‘ μ μν΄ private λ³μλ₯Ό μΈλΆμ 곡κ°ν κΉ? 1. μλ£ μΆμν μλ λ ν΄λμ€ λͺ¨λ 2μ°¨μ μ μ νννλ€. // ꡬ체μ μΈ Point ν΄λμ€ // ꡬνμ μΈλΆλ‘ λ ΈμΆνλ€. // λͺ ννκ² μ§κ΅ μ’νκ³λ₯Ό μ΄λ€λ κ²μ μ μ μλ€. public class Point { public double x; // κ°λ³μ μΌλ‘ μ’νκ°μ μ½κ³ μ€μ νλ€. public double y; } // μΆμμ μΈ Point ν΄λμ€ // ꡬνμ μ¨κ²¨ ν΄λμ€ λ©μλκ° μ κ·Ό μ μ± μ κ°μ νλ€...
[Book] ν΄λ¦°μ½λ - 5μ₯ νμ λ§μΆκΈ°
5μ₯ νμ λ§μΆκΈ° νλ‘κ·Έλλ¨ΈλΌλ©΄ νμμ κΉλνκ² λ§μΆ° μ½λλ₯Ό μ§μΌνλ€. μ½λ νμμ λ§μΆκΈ° μν κ°λ¨ν κ·μΉμ μ νκ³ κ·Έ κ·μΉμ μ°©μ€ν λ°λΌμΌ νλ€. μ½λ νμμ μμ¬μν΅μ μΌνμ΄κΈ° λλ¬Έμ νμΌλ‘ μΌνλ€λ©΄ νμ΄ ν©μν΄ κ·μΉμ μ νκ³ λͺ¨λκ° κ·Έ κ·μΉμ λ°λΌμΌ νλ€. 1. μ μ ν ν κΈΈμ΄λ₯Ό μ μ§νλΌ ν κΈΈμ΄λ νμΌμ ν¬κΈ°(κΈΈμ΄)λ₯Ό λ§νλ€. 500μ€μ λμ§ μκ³ λλΆλΆ 200μ€ μ λμΈ νμΌλ‘λ 컀λ€λ μμ€ν μ ꡬμΆν μ μλ€. 2. μ λ¬Έ κΈ°μ¬μ²λΌ μμ±νλΌ μμ€ νμΌμ μ΄λ¦μ κ°λ¨νλ©΄μλ μ€λͺ μ΄ κ°λ₯νκ² μ§λλ€. μ΄λ¦λ§ λ³΄κ³ λ μ¬λ°λ₯Έ λͺ¨λμ μ΄ν΄λ³΄κ³ μλμ§ μλμ§λ₯Ό νλ¨ν μ λλ‘ μ κ²½ μ¨μ μ§λλ€. μμ€ νμΌ μ²« λΆλΆμ κ³ μ°¨μ κ°λ κ³Ό μκ³ λ¦¬μ¦μ μ€λͺ νκ³ μλλ‘ λ΄λ €κ°μλ‘ μλλ₯Ό μΈμΈνκ² λ¬μ¬νλ€. λ§μ§λ§μλ κ°..
[Book] ν΄λ¦°μ½λ - 4μ₯ μ£Όμ
4μ₯ μ£Όμ μ λ¬λ¦° μ£Όμμ μ΄λ€ μ λ³΄λ³΄λ€ μ μ©νμ§λ§ λμ μ£Όμμ μ½λλ₯Ό μ΄ν΄νκΈ° μ΄λ ΅κ² λ§λ λ€. μ£Όμμ λμ μ½λλ₯Ό 보μνμ§ λͺ»νλ€. μ½λμ μ£Όμμ μΆκ°νλ μΌλ°μ μΈ μ΄μ λ μ½λ νμ§μ΄ λμκΈ° λλ¬Έμ΄λ€. ννλ ₯μ΄ νλΆνκ³ κΉλνλ©° μ£Όμμ΄ κ±°μ μλ μ½λκ° ν¨μ¬ μ’λ€. μ½λλ‘ μλλ₯Ό νννλΌ λ§μ κ²½μ° μ£ΌμμΌλ‘ λ¬λ €λ μ€λͺ μ ν¨μλ‘ λ§λ€μ΄ ννν΄λ μΆ©λΆνλ€. 1. μ’μ μ£Όμ λ²μ μΈ μ£Όμ: νμ¬κ° μ 립ν ꡬν νμ€μ λ§μΆ° λ²μ μΈ μ΄μ λ‘ λ£λλ€. Ex) μ μκΆ, μμ κΆ λ± μ 보λ₯Ό μ 곡νλ μ£Όμ: κΈ°λ³Έμ μΈ μ 보λ₯Ό μ£ΌμμΌλ‘ μ 곡νλ©΄ νΈλ¦¬νλ€. Ex) λ°νκ° λ± μλλ₯Ό μ€λͺ νλ μ£Όμ: ꡬνμ μ΄ν΄νκ² λμμ£Όλ μ μ λμ΄ κ²°μ μ κΉλ¦° μλκΉμ§ μ€λͺ νλ€. μλ―Έλ₯Ό λͺ λ£νκ² λ°νλ μ£Όμ: λͺ¨νΈν μΈμλ λ°νκ°μ κ·Έ μλ―Έλ₯Ό..