π CLEAN CODE
- Clean Code?
- νμν μ΄μ
- νμ΅λ²
1. Clean Code?
μ΄λ€ κ²μ clean νλ€κ³ ν μ§, κ·Έκ²μ μ μνλ κ²μ΄ μ€μ.
μ’ λ 보νΈμ μΌλ‘ ν΅μ©λλ ν΄λ¦°μ½λκ° μ΄λ€κ±΄μ§ μ± μμ κΈ°μ νκ³ μμ.
μ΄ μ± μμλ μ€λΈμ νΈ λ©ν λ€μ΄ μΆκ΅¬νλ ν΄λ¦° μ½λ λ΄μ©μ λ΄κ³ μμ.
- μ±λ₯μ΄ μ’μ μ½λ
- μλ―Έκ° λͺ νν μ½λ ( = κ°λ μ±μ΄ μ’μ μ½λ)
- μ€λ³΅μ΄ μ κ±°λ μ½λ
보μ΄μ€μΉ΄μ°νΈ λ£°
= μΊ νμ₯μ μ²μ μμ λλ³΄λ€ λ κΉ¨λνκ² ν΄ λκ³ λ λμΌ νλ€.
= λ΄κ° 건λ€κΈ° μ λ³΄λ€ λ κΉ¨λν μ½λλ‘ λ§λ€μ΄μΌ νλ€.
λ©ν λ€μ΄ μκ°νλ Clean Code
λλ μ°μνκ³ ν¨μ¨μ μΈ μ½λλ₯Ό μ’μνλ€.
λ Όλ¦¬κ° κ°λ¨ν΄μΌ λ²κ·Έκ° μ¨μ΄λ€μ§ λͺ»νλ€.
μμ‘΄μ±μ μ΅λν μ€μ¬μΌ μ μ§λ³΄μκ° μ¬μμ§λ€.
μ€λ₯λ λͺ λ°±ν μ λ΅μ μκ±°ν΄ μ² μ ν μ²λ¦¬νλ€.
μ±λ₯μ μ΅μ μΌλ‘ μ μ§ν΄μΌ μ¬λλ€μ΄ μμΉ μλ μ΅μ νλ‘ μ½λλ₯Ό λ§μΉλ €λ μ νΉμ λΉ μ§μ§ μλλ€.
κΉ¨λν μ½λλ ν κ°μ§λ₯Ό μ λλ‘ νλ€.
- c++ μ°½μμ, Bjarne Stroustrup
κΉ¨λν μ½λλ λ¨μνκ³ μ§μ μ μ΄λ€.
κΉ¨λν μ½λλ μ μ΄ λ¬Έμ₯μ²λΌ μ½νλ€.
κΉ¨λν μ½λλ κ²°μ½ μ€κ³μμ μλλ₯Ό μ¨κΈ°μ§ μλλ€.
μ€νλ € λͺ μΎν μΆμνμ λ¨μν μ μ΄λ¬ΈμΌλ‘ κ°λνλ€.
- Object Oriented Anlysis and Design with Application μ μ Grady Booch
κΉ¨λν μ½λλ μμ±μκ° μλ μ¬λλ μ½κΈ° μ½κ³ κ³ μΉκΈ° μ½λ€.
λ¨μ ν μ€νΈ μΌμ΄μ€μ μΈμ ν μ€νΈ μΌμ΄μ€κ° μ‘΄μ¬νλ€.
κΉ¨λν μ½λμλ μλ―Έμλ μ΄λ¦μ΄ λΆλλ€.
νΉμ λͺ©μ μ λ¬μ±νλ λ°©λ²μ νλλ§ μ 곡νλ€.
μμ‘΄μ±μ μ΅μμ΄λ©° κ° μμ‘΄μ±μ λͺ νν μ μνλ€.
APIλ λͺ ννλ©° μ΅μλ‘ μ€μλ€.
μΈμ΄μ λ°λΌ νμν λͺ¨λ μ 보λ₯Ό μ½λλ§μΌλ‘ λͺ νν ννν μ μκΈ°μ μ½λλ λ¬Ένμ μΌλ‘ ννν΄μΌ λ§λ νλ€.
- OTI 창립μμ΄μ μ΄ν΄λ¦½μ€ μ λ΅μ λλΆ Dave Thomas
κΉ¨λν μ½λμ νΉμ§μ λ§μ§λ§ κ·Έ μ€μμλ λͺ¨λλ₯Ό μμ°λ₯΄λ νΉμ§μ΄ νλ μλ€.
κΉ¨λν μ½λλ μΈμ λ λκ΅°κ° μ£Όμ κΉκ² μ§°λ€λ λλμ μ€λ€.
κ³ μΉλ €κ³ μ΄ν΄λ΄λ λ±ν μ λ κ³³μ΄ μλ€.
μμ±μκ° μ΄λ―Έ λͺ¨λ μ¬νμ κ³ λ €νμΌλ―λ‘.
κ³ μΉ κΆλ¦¬λ₯Ό νλ€λ³΄λ©΄ μΈμ λ μ μλ¦¬λ‘ λμμ¨λ€.
κ·Έλ¦¬κ³ λ λκ΅°κ° λ¨κ²¨μ€ μ½λ, λκ΅°κ° μ£Όμ κΉκ² μ§λμ μνμ κ°μ¬λ₯Ό λλλ€.
- Working Effectively with Legacy Code μ μ Michael Feathers
ν΄λ¦°μ½λ = κΈμ μ μ°λ κ²κ³Ό μΌλ§₯μν΅ νλ€.
- μ½κΈ° μ¬μ΄ μ½λ
- μ λ¬νκ³ μ νλ λ°λ₯Ό λͺ ννκ² μλ €μ£Όλ μ½λ
- κ°λ°μμ μλκ° λͺ¨λ λ΄κ²¨ μλ μ½λ
2. νμν μ΄μ ?
νλ₯ν κ°λ°μ νΌμ νλμ νλ‘μ νΈλ₯Ό μ λΆλ€ κ°λ°νλ μμ μ μ§λ¬λ€.
νμ λ₯λ ₯μ λ°μ μμΌμΌ νλ μλ.
νλ‘μ νΈλ₯Ό μ²μ μμνλ κ²½μ°λ₯Ό μ μΈνκ³ λ, λ€λ₯Έ μ¬λμ μ½λλ₯Ό μ½λ μκ°μ΄ ν¨μ¬ λ§μμ§κ² λμμ,
μ½λλ₯Ό λ§λλ μκ°μ λ¨μΆνλ κ²λ μ€μνμ§λ§.
λ€λ₯Έ μ¬λμ΄ μ½λλ₯Ό μ½λ μκ°μ μ€μ΄λ κ²μ΄ λμ± μ€μν΄μ§λ©° ν΄λ¦° μ½λκ° κ°κ΄λ°κ² λ¨.
μκ°μΈ λ΄κ° μκ°μ μ‘°κΈ λ λ€μ¬ μ’μ λ¬Έμ₯μΌλ‘ νννκ² λλ€λ©΄, λ§μ λ μλ€μ κ·Έ μ½λλ₯Ό μ μ μ½κ² λκ³ , λ λΉ λ₯Έ μκ° μμ ν΄λΉ λ΄μ©μ μμ§νκ³ , μλ‘μ΄ μ½λλ₯Ό λ§λ€κ±°λ μμ ν μ μκ² λ¨
ν΄λ¦° μ½λμ ν¨μ¨μ±
μλμ²λΌ, κ°λ°μ νΌμμλ€λ©΄ ν¨μ¨μ΄ λ¨μ΄μ§μ§λ§. νμ μ μλμμλ μ€νλ € ν¨μ¨μ±μ΄ μ¦κ°ν¨. (ex, μ€νμμ€)
- μΌλ° μ½λ
- κ°λ°μ : 1μκ° μ½λ©
- λ€ λͺ μ νμ μκ° μ½λ μ΄ν΄ : 1μκ° * 4λͺ = 4μκ°
- ν΄λ¦° μ½λ ( μ μ½λλ₯Ό κ°λ°μκ° μ’ λ 곡λ€μ¬ λ§λ¦ )
- κ°λ°μ 2μκ° μ½λ©
- λ€ λͺ μ νμ μκ° μ½λ μ΄ν΄ : 0.5μκ° * 4λͺ = 2μκ°
νμ΅λ²
- μΌλ¨, ν΄λ¦°μ½λ μ± μ μ½μ΄λ³Έλ€.
- μ§μ μ μ©ν΄λ³΄κΈ°
- λ΄κ° λ΄λΉν νλ‘μ νΈμμ λμ μ½λλ₯Ό λ°κ²¬νκ³ λ¦¬ν©ν λ§ν΄λ³΄κΈ°
- μλ‘ λ§λλ μ½λλ₯Ό clean code λ£°μ λ§μΆ° λ§λ€μ΄λ³΄κΈ°
- νλ‘μ νΈμ λ§λ clean code λ£°μ λ§λ€μ΄λ³΄κΈ°
- μ’μ μ½λ μ½μ΄λ³΄κΈ°
- λ΄λΉνκ³ μλ νλ‘μ νΈμμ μ’μ μ½λλ₯Ό μ°Ύμ보기
- μ€ν μμ€λ‘ μ 곡νλ μ½λμμ μ’μ μ½λλ₯Ό μ°Ύμ보기
π 리뷰 볡μ΅
λμ μ½λ
μ±λ₯μ΄ λμ μ½λ
λΆνμν μ°μ°μ΄ λ€μ΄κ°μ κ°μ μ μ¬μ§κ° μλ μ½λ
μλ―Έκ° λͺ¨νΈν μ½λ
- μ΄ν΄νκΈ° μ΄λ €μ΄ μ½λ
- λ€μ΄λ°κ³Ό κ·Έ λ΄μ©μ΄ λ€λ₯Έ μ½λ
μ€λ³΅λ μ½λ
- λΉμ·ν λ΄μ©μΈλ° μ€λ³΅λλ μ½λλ€μ λ²κ·Έλ₯Ό λ³λλ€.
λμ μ½λκ° λμ μ΄μ
κΉ¨μ§ μ 리창 λ²μΉ
λμ μ½λλ κΉ¨μ§ μ 리창μ²λΌ κ³μ λμ μ½λκ° μλΌλλλ‘ νλ€.
μμ°μ± μ ν
λμ μ½λκ° μμΌμλ‘ κΈ°μ λΆμ±κ° μμ΄κΈ° λλ¬Έμ μμ°μ±μ κ΅μ₯ν λ¨μ΄λ¨λ¦°λ€.
κ²°κ΅μλ, μλ‘μ΄ μμ€ν μ λ§λ€μ΄μΌ νλ€.
νμ¬μμ€ν μ μ μ§λ³΄μνλ©° λ체ν μλ‘μ΄ μμ€ν κ°λ°μ νμ€μ μΌλ‘ λ§€μ° μ΄λ ΅λ€.
(μ¬λμμ€ν κ³Ό λ΄ μμ€ν μ΄ κ°μ μꡬμ¬νμ μλ ΄νλ©΄μ, μλ‘μ΄ λ΄ μμ€ν μΌλ‘ λμκ°λκ² μ§μ§ μ½μ§ μλ€.)
λμ μ½λλ₯Ό μ§λ μ΄μ ?
μΌμ μ΄ μ΄λ°ν΄μ
νμ§λ§... λμ μ½λλ μμ°μ±μ μ ννκΈ° λλ¬Έμ μ€νλ € μΌμ μ λͺ»λ§μΆλ€.
μν₯ λ²μκ° λμ΄μ
μκ°λ³΄λ€ μν₯ λ²μκ° λμ΄μ 건λλ Έλ€κ° λ€λ₯Έ λΆλΆμ λ²κ·Έκ° λ°μν κΉλ΄ (μ¬μ΄λ μ΄ννΈ)
νμ§λ§... κΈ°μ λΆμ±λ λΆλ©λμ²λΌ μ°λ¦¬μκ² λμμ¨λ€.