ν΄λΌμ΄μΈνΈ ν λͺ¨μ¬μ ν μΌμ λν μ 리. νμΌ/λλμ /κ΅ν(ThreeFs) λ±μ μκ°ν΄λ³Ό μ μλ κΈ°νκ° λμμΌλ©΄ ν¨. (νμλ΄ μμ λ‘μ΄ λΉλ°© νμ©; μΉμΈλ²κΆμ ν¬;)
6.7 ¶
- μμ
μν©μ΄ λ§λ°μ§μΈκ²μ μ€κ°ν κ±° κ°λ€. μμ²λκ² κΈΈμ΄μ§ μ½λλ₯Ό 보면 μ μ μλ€. λ΄κ° μλ μ¬μ΄μ μμ²λκ² λ§μ λ³νκ° μμλ€. μ£Όμμ΄ μλ μ½λλΌμ κ·Έλ°μ§ ν΄μνλ λ° μ λ¨Ήμλ€. μ΄κΆ...CVS μ¬μ©μ λ©°μΉ μν΄λ΄€λ€κ³ λ μμ΄λ¨Ήμλ€. λ°λΆ..λμλ§ λ€μ§λ μ€μ΄λ€. μλ§ μ΄λ² νλ‘μ νΈμμ λ΄κ° κ°μ₯ ν¬κ² λλΌλ κ²μ μμμ λΉμ·ν κ² κ°λ€. μλ° μΈμ΄μ λν 곡λΆλ³΄λ€λ νλ‘μ νΈ μ§ν λ°©λ², ννλ‘μ νΈμμ κ°μΈκ³Ό νμ μν λ±μ κ°μ₯ ν¬κ² λ°°μ°λ κ² κ°λ€. μμ μ μΉκ΅¬μ ν¨κ» λ νλ νλ€κ° μ΄μ€νκ² λλ μ μ΄ μλλ° μλ§ λ΄κ° κ·Έλ§νΌ μ΄μ€νκ² μ§ννλ κ² κ°λ€. μλ¬΄νΌ μ΄λ²μ κ°μ₯ ν¬κ² λλ μ μ΄λ€. λ νλ λλμ μ΄ μλ€λ©΄ ννκ³ pair νλ €λ©΄ μ΄μ λλ‘ κ³΅λΆνκ³ λ
Έλ ₯ν΄μλ λΆμ‘±ν κ² κ°λ€λ μκ°μ΄λ€. μμ§ λ΄κ° κ° κΈΈμ λ©μλ€λ μκ°μ΄... -_-;; μ΄λ²μ νμ€ν λμ΄λ μ€λ ₯μ μλ§λ μμΌμ κ°λ
μ΄ μλκΉ...-_-;;
- μΌμ΄ κ±°μ λ§λ§μ§μ λ€λ€λ₯Έλ€. 12μ μ΄ν 본격μ μμ
. μ΄νκ°μ μ€μΌμ€μμ λμ΄ μ°Έμ¬λ₯Ό νμ§ μμμΌλ―λ‘, μμ
μ μ£Όλ‘ μ½λ μ€λͺ
μ΄ μ£Όκ° λ μ λ°μ μμλ€. Pairλ‘ Refactoring ν΄λκ°λ©° μ€λͺ
νκΈ°μ λ΄κ° λ무 λ§μ΄ μ½λλ₯Ό κ³ μ³€λ. -_-; (λλ ν λ§μλκ²μ΄, κ°μ₯ μ€μμ¬νμ€ νλμΈ ν¨ν· νΈλ€λ¬ μ²λ¦¬λΆλΆν λ λ€λ€λΉ μ§λλκ²μ΄λ€. -_-; μ μΌ μ»μ κ²λ λ§μ λΆλΆμΌκ±΄λ° μ©. κ°μΈμ μΌλ‘ λ§λ€λ©΄μ νλ(^^;) νλ λΆλΆμ΄κ³ ;)
- μννΈμ¨μ΄ κ°λ°μ΄ 곡μ₯μ€νμΌμ΄ λ μ μλ μ΄μ λ₯Ό νλ λ λ€κ³ νλ€λ©΄ κ°λ°μ€ κ°λ°μκ° κ³μ νμ΅μ ν΄λκ°λ€λ μ μ μμ§ μμκΉ νλ€. μ²μλΆν° λκΉμ§ λͺ¨λ κ²μ λ€ μμνκ³ κ°λ°ν μ λ μμκ²μ΄λ. (νμν λΌμ΄λΈλ¬λ¦¬κ° 무μμΈμ§, μ€μ κ·Έ λΌμ΄λΈλ¬λ¦¬μ μ₯λ¨μ μ΄ λ¬΄μμΈμ§, μ΄λ»κ² μ¬μ©νλ©΄ λ°λ‘ μμ μλ λ²κ·Έκ° λμ΄λ²λ¦¬λμ§ λ±λ±. λ ν° μννΈμ¨μ΄μΌ κ²½μ° μ΄κ²μ λ€ μμΈ‘ν΄μΌ νλ€λΌκ³ νλ©΄ ν λ§μμ§λ§. μ΄κ²λ λΉμ©μ κ³ λ €ν΄μ μ²μ ν΄μΌνκ² μ§. Cost Estimate μμ²΄κ° Cost κ° λλκ²μΌκ±°λ.) μνΌ μμ¬μ΄κ±΄ μ€κ°μ λμμΈμ΄ λ°λμμλ (μ€μ λ‘ μ²μ λμμΈμ ν΄λμ€λ€μ λͺκ° λΊκ²λ μκ³ , μΈν°νμ΄μ€λ§ λ§μΆ°λ³Έ κ²λ€λ μκ³ κ·Έλ¬ν¨) λ°μ μ¬λλ€μ΄ μ°Έμμ νμ§ λͺ»ν΄μ μ²μλΆν° μ€λͺ
ν΄μΌ νλ κ²½μ°μ΄λ€.
- νκ΅μμμ μμ
μ λ¨μ μ€ νλλ κ³ μ λ μ₯μμ κ³ μ λ μ€μΌμ€μ λ§λ€κΈ°κ° μ½μ§ μλ€λ μ μ΄λ€. νκ΅μκ°ν λ³΄κ³ λΉ μκ°λλ₯Ό λ§μΆ°μΌ νκ³ , κ·Έ μ¬λμ λ κ·Έ μ¬λ λλ¦λλ‘μ μ€μΌμ€μ΄ λ°λ‘ μ‘΄μ¬νλ€. μνμ΄λΌλμ§, λμ리 νλμ΄λΌλμ§ λ±λ±. μ΄ κ²½μ° νμλ³ μ€μΌμ€μ λ³΄κ³ νλ΄ κΈ°μ¬λλ₯Ό μμνλ€μ κ·Έ κΈ°μ¬λλ₯Ό μ€μ¬μ£Όλλ‘ ν΄μΌ μλ‘κ° λΆλ΄μ΄ μ μ κ²μ΄λ€. λ¨, μμμ μΈκΈνλλ‘ κ°λ°μ€ μ§μμ μΈ νμ΅κ³Όμ μ΄ μλ μ΄μ, μ€κ° μ°Έμ¬λ κ·Έλ§νΌ μ΄λ ΅κ² λλ€. CVSκ° μμ κ²½μ° ν΄λΉ μ½λμ λ³νλ₯Ό μ§μμ μΌλ‘ κ΄μ°°ν΄λκ°μΌ νλ©°, μΈλΆμ μλ μ¬λμ λ΄λΆ μμ
μμκ² νμμ λ°λΌ ν΄λΉ λ¬Έμλ₯Ό μꡬν΄μΌ νλ€. (λ΄λΆ μμ
μκ° μ΄λ€ μμ ν건 -_-; λμ€μ λ€μ μ°Έμ¬μμ 리μ€ν¬λ₯Ό μ€μ΄λ €λ©΄) λ΄λΆ μμ
μλ κ·Έ λ³νκ³Όμ μ κ³μ κΈ°λ‘μ λ¨κ²¨μΌ ν κ²μ΄λ€. (Configuration Management κ° λκ² μ§.)
- νκ΅μμμ μμ
μ λ¨μ μ€ νλλ κ³ μ λ μ₯μμ κ³ μ λ μ€μΌμ€μ λ§λ€κΈ°κ° μ½μ§ μλ€λ μ μ΄λ€. νκ΅μκ°ν λ³΄κ³ λΉ μκ°λλ₯Ό λ§μΆ°μΌ νκ³ , κ·Έ μ¬λμ λ κ·Έ μ¬λ λλ¦λλ‘μ μ€μΌμ€μ΄ λ°λ‘ μ‘΄μ¬νλ€. μνμ΄λΌλμ§, λμ리 νλμ΄λΌλμ§ λ±λ±. μ΄ κ²½μ° νμλ³ μ€μΌμ€μ λ³΄κ³ νλ΄ κΈ°μ¬λλ₯Ό μμνλ€μ κ·Έ κΈ°μ¬λλ₯Ό μ€μ¬μ£Όλλ‘ ν΄μΌ μλ‘κ° λΆλ΄μ΄ μ μ κ²μ΄λ€. λ¨, μμμ μΈκΈνλλ‘ κ°λ°μ€ μ§μμ μΈ νμ΅κ³Όμ μ΄ μλ μ΄μ, μ€κ° μ°Έμ¬λ κ·Έλ§νΌ μ΄λ ΅κ² λλ€. CVSκ° μμ κ²½μ° ν΄λΉ μ½λμ λ³νλ₯Ό μ§μμ μΌλ‘ κ΄μ°°ν΄λκ°μΌ νλ©°, μΈλΆμ μλ μ¬λμ λ΄λΆ μμ
μμκ² νμμ λ°λΌ ν΄λΉ λ¬Έμλ₯Ό μꡬν΄μΌ νλ€. (λ΄λΆ μμ
μκ° μ΄λ€ μμ ν건 -_-; λμ€μ λ€μ μ°Έμ¬μμ 리μ€ν¬λ₯Ό μ€μ΄λ €λ©΄) λ΄λΆ μμ
μλ κ·Έ λ³νκ³Όμ μ κ³μ κΈ°λ‘μ λ¨κ²¨μΌ ν κ²μ΄λ€. (Configuration Management κ° λκ² μ§.)
- μ΄μ μ
InformationRadiator λ₯Ό λΆμΌ μ μλ λ²½κ³Ό νμ΄νΈλ³΄λκ° κ·Έλ¦½λ€; λ°©νμ€μ νΌμμ€ λ¬Έμ§μλΌλ λΆμ¬λ³΄λμ§ κΆλ¦¬λ₯Ό;
- νλ΄ κΈ°μ¬λμ λν΄μλ μ¬λ¬κ°μ§λ₯Ό μκ°ν΄μΌ ν κ² κ°κΈ΄ νλ°, μ΄κ²μ κ°μΈμ λͺ©μ κ³Ό νμ λͺ©μ κ³Ό κ²°λΆμ§μ΄μ μκ°ν΄λ΄μΌ ν κ²λ κ°λ€. κ°μΈμ λͺ©μ κ³Ό νμ λͺ©μ μ΄ μΌμΉν λ κ·Έ μ¬λμ μμ μ κΈ°μ¬λλ₯Ό λμ΄λ €κ³ ν κ²μ΄λ€ (μ΄κ²μ μμ μ μ΄μ΅κ³Ό μΌμΉνλ κ²μΌν
λ).
- μ΄λ² νλ‘μ νΈμ λͺ©μ μ Java Study + Team Project κ²½νμ΄λΌκ³ 보μμΌ ν κ²μ΄λ€. μμ½κ²λ μ²μμ 곡λΆν κ²μ λͺ©μ μΌλ‘ μ΄ νμ μ μν μ¬λλ€μ μμ μ λͺ©μ κ³Ό νμ λͺ©μ μ μΌμΉμν€μ§ λͺ»νκ³ , μ΄λ κ°μΈμ μ€μΌμ€κ΄λ¦¬μ μ°μ μμ μ μ μ€ν¨ (λΌκ³ μκ°νλ€. ν μ
μ₯μμ . κ°μΈμ κ²½μ°μΌ μ°μ μμλ€μ΄ λ€λ₯Όν
λ ν λ§μμ§λ§, κ·Έλ‘ μΈν μμ€μ λν΄μ μμ¬μν μ λλΌλ©΄ κ°μΈμ μ€ν¨μλ μ°κ²°μ μμΌμΌκ² μ§)λ‘ μ΄μ΄μ‘λ€κ³ λ³Έλ€. (μ μ΄λ° μ μμλ€λ³΄λ€ νλ° μ°Έμ¬μλ€μ΄ λ μ΄μ¬ν λ°μμκΉ) ννΈ, μ λ°°μ μ
μ₯μΌλ‘μ νμ λͺ©μ μΈ κ°κ°μΈμ μ€λ ₯ν₯μλΆλΆμ κ°κ³Όνκ³ νΌμμ λ무 λ§μ΄ μ§ννλ€λ μ μμ λ κ°μΈμ λͺ©μ κ³Ό νμ λͺ©μ μ λΆμΌμΉλ‘μ μ΄ λν μ€ν¨μ΄λ€. μμ±λ νλ‘κ·Έλ¨λ§μ΄ μ€μν건 μλκ²μ΄λ€. (νμ§λ§, λμ κ²½μ° Java Study μ Team Project κ²½ν ν₯μλ λ΄ λͺ©μ μ€ νλκ° λλ―λ‘, λ΄ κΈ°μ¬λλ₯Ό μ¬λ¦¬λ κ²μ λμκ² μ΄μ΅μ΄λ€. Team Project κ²½νμ μν΄ PairProgrammingλ₯Ό νκ³ , λνλ₯Ό μν λͺ¨λΈλ§μ νμΌλ©°, CVSμ commit μ νκ³ , μ€κ°μ λ°μ μ¬λλ€μ μ€μΌμ€μ λΊλ€.) μνΌ, μ€μ€λ‘ ν λ§νΌ μ»μ΄κ°λ€. Good Pattern μ΄κ±΄ Anti Pattern μ΄κ±΄.
- μ΄λ² νλ‘μ νΈμ λͺ©μ μ Java Study + Team Project κ²½νμ΄λΌκ³ 보μμΌ ν κ²μ΄λ€. μμ½κ²λ μ²μμ 곡λΆν κ²μ λͺ©μ μΌλ‘ μ΄ νμ μ μν μ¬λλ€μ μμ μ λͺ©μ κ³Ό νμ λͺ©μ μ μΌμΉμν€μ§ λͺ»νκ³ , μ΄λ κ°μΈμ μ€μΌμ€κ΄λ¦¬μ μ°μ μμ μ μ μ€ν¨ (λΌκ³ μκ°νλ€. ν μ
μ₯μμ . κ°μΈμ κ²½μ°μΌ μ°μ μμλ€μ΄ λ€λ₯Όν
λ ν λ§μμ§λ§, κ·Έλ‘ μΈν μμ€μ λν΄μ μμ¬μν μ λλΌλ©΄ κ°μΈμ μ€ν¨μλ μ°κ²°μ μμΌμΌκ² μ§)λ‘ μ΄μ΄μ‘λ€κ³ λ³Έλ€. (μ μ΄λ° μ μμλ€λ³΄λ€ νλ° μ°Έμ¬μλ€μ΄ λ μ΄μ¬ν λ°μμκΉ) ννΈ, μ λ°°μ μ
μ₯μΌλ‘μ νμ λͺ©μ μΈ κ°κ°μΈμ μ€λ ₯ν₯μλΆλΆμ κ°κ³Όνκ³ νΌμμ λ무 λ§μ΄ μ§ννλ€λ μ μμ λ κ°μΈμ λͺ©μ κ³Ό νμ λͺ©μ μ λΆμΌμΉλ‘μ μ΄ λν μ€ν¨μ΄λ€. μμ±λ νλ‘κ·Έλ¨λ§μ΄ μ€μν건 μλκ²μ΄λ€. (νμ§λ§, λμ κ²½μ° Java Study μ Team Project κ²½ν ν₯μλ λ΄ λͺ©μ μ€ νλκ° λλ―λ‘, λ΄ κΈ°μ¬λλ₯Ό μ¬λ¦¬λ κ²μ λμκ² μ΄μ΅μ΄λ€. Team Project κ²½νμ μν΄ PairProgrammingλ₯Ό νκ³ , λνλ₯Ό μν λͺ¨λΈλ§μ νμΌλ©°, CVSμ commit μ νκ³ , μ€κ°μ λ°μ μ¬λλ€μ μ€μΌμ€μ λΊλ€.) μνΌ, μ€μ€λ‘ ν λ§νΌ μ»μ΄κ°λ€. Good Pattern μ΄κ±΄ Anti Pattern μ΄κ±΄.
- μνΌ. μ΄λ κ² ν΄λ΄€μΌλ, μμΌλ‘λ λ μν μ μλλ‘, λμ±λ μν μ μλλ‘. DoItAgainToLearn νμΌλ©΄ νλ€. μμΌλ‘ λ κΆλ¦¬ν΄λ΄μΌ ν μΌλ€μ΄κ² μ§. -- μμ²
- μ.. μ무λλ λ λ§λΉ¨ κΈλΉ¨ λ€ λΈλ¦¬λκ±°κ°λ€.. μμκΈμ²λΌ λ©μκ² μ°κ³ μΆμλ°, κ·Έλ₯ λ΄μλλ‘ μ¨μΌκ² λ€.. κ°λ§μ λ΄κ° λ νλ³΄λ€ μΌμ°μλ€. μ΄νλμ λΉ μ§κ² νκ²©μ΄ λ무 μ»Έλ보λ€.. MainSourceμ μλ‘ μΆκ°λ νμΌλ κ½€λκ³ κΈ°μ‘΄νμΌλ μ
λ°μ΄νΈλ λ΄μ©μ΄ λ§μμ μ΄ν΄κ° μλλΌ μ½μ΄λ³΄λκ²λ§ν΄λ μμ²λ μκ°μ΄ λ€μλ€.. --;; μ ν΅λΆ νμκ²Έ κΈ°μ§±ν±λμ μΌμ°κ°λλ° μ무λλ κΈμμΌλ‘ μλ£κ° λ λͺ¨μμ΄λ€.. μ΄λ²μ΄ λλ‘μ κ±°μ μ²μ ν΄λ³Έ νλ‘μ νΈμλλ°, λ΄κ° λ³λ‘ ν건μμ§λ§, μμ§ν λκ° λ§λ κ²λ³΄λ¨ λ°°μ΄κ² λ λ§μκ±°κ°λ€.. νκΈ΄ νλ‘μ νΈλ₯Ό ν΄λ³Έλ€λκ±° μμ²΄κ° λ°°μ΄λ€λκ±°μμΌλκΉ.. κΌ μλ°μ λν΄μ λ°°μ΄κ²λ³΄λ€λ Designμ΄λΌλμ§ Architecture(λ§λ?) κ°μκ²μ λν΄μλ λ°°μ κ³ .. νλ‘μ νΈλ μ΄λ κ² μ§νν΄μΌ νλ거ꡬλλΌλκ²λ λκΌλ€. λκ° λ§μ΄ μ°κ³ μΆμλ° λ¨Έλ¦¬μμ΄ μ λ¦¬κ° μλλ€.. μ΄λ΄λ μ λ§~~ γ
.γ
μμ°~ λμ€μ λ μ¨μΌκ² λ€..
- (λμ€) νμ λ§λλ‘ μμ½λ€λ μκ°μ΄ λ κ±Έλ‘ λ΄μλ μ€ν¨λ μκ°μ΄ λ€κΈ΄νλ€.. κ·Έλλ νλ‘μ νΈλ₯Ό νλ©΄μ μ¬λ¬μ¬λλ€κ³Ό 머리λ₯Ό λ§λλ³Έκ²λ§μΌλ‘λ μ€λ μ΄λμ΄ λκ΅΄μμ λΉμ μ°Ύμκ²μ²λΌ λκ»΄μ§λ€.. λ€λ₯Έμ¬λμ΄ λͺ¨λΌ ν μ§λΌλ κ·Έκ²λ§μΌλ‘λ λμκ² μ΄λ² νλ‘μ νΈκ° λλ¦λλ‘ ν° μ±κ³΅μ΄λΌκ³ μκ°νλ€.. κ·Όλ° μμ§ λ©μ μ λ₯Ό λͺ»μ€νμμΌλ΄€λ€.. μ΄λ»κ² ν΄μΌλλμ§ λͺ¨λ₯΄κ² λ€.. --;; μλ²μͺ½μ μμ½μ΄λ΄μ κ·Έλ°κ°.. μ΄κ±° μ°κ³ νλ² λλ €λ΄μΌκ² λ€.. λ³λ‘ ν건 μμ§λ§, μλλ€ λλ μμ²λ μν μ νκΈ°μ λλ €λ³΄λ©΄ λ무 κΈ°μ κΊΌκ°λ€..
100% μ€ν¨μ 100% μ±κ³΅ λλ‘ λλκ³ μΆμ§ μλ€. Output μ΄ μ΄λμ λ λμλ€λ μ μμλ μ±κ³΅ 70-80% κ² κ³ , κ·Έλμ νλ‘μ νΈμ λͺ©μ μΈ Java Study μ μ±κ³΅μ μΈ Team Play μ μ΄μ©μ μκ°ν΄λ΄€μλλ μ±κ³΅ 40-50% μ λ λΌλ κ²μ΄μ§. μ±κ³΅νλ€κ³ μκ°ν μ μ λν΄μλ (μ΄ λν κ°μΈμ μ±κ³΅κ³Ό νμ μ±κ³΅μΌλ‘ λλμ΄μ μκ°ν΄λ΄€μΌλ©΄ νλ€.) κ·Έ κ°μ μ λ°κ²¬ν΄μΌ νκ² κ³ , μ€ν¨νλ€κ³ μκ°ν μ μ λν΄μ 보μν λ°©λ²μ μκ°ν΄μΌ κ² μ§. --μμ²
- (λμ€) νμ λ§λλ‘ μμ½λ€λ μκ°μ΄ λ κ±Έλ‘ λ΄μλ μ€ν¨λ μκ°μ΄ λ€κΈ΄νλ€.. κ·Έλλ νλ‘μ νΈλ₯Ό νλ©΄μ μ¬λ¬μ¬λλ€κ³Ό 머리λ₯Ό λ§λλ³Έκ²λ§μΌλ‘λ μ€λ μ΄λμ΄ λκ΅΄μμ λΉμ μ°Ύμκ²μ²λΌ λκ»΄μ§λ€.. λ€λ₯Έμ¬λμ΄ λͺ¨λΌ ν μ§λΌλ κ·Έκ²λ§μΌλ‘λ λμκ² μ΄λ² νλ‘μ νΈκ° λλ¦λλ‘ ν° μ±κ³΅μ΄λΌκ³ μκ°νλ€.. κ·Όλ° μμ§ λ©μ μ λ₯Ό λͺ»μ€νμμΌλ΄€λ€.. μ΄λ»κ² ν΄μΌλλμ§ λͺ¨λ₯΄κ² λ€.. --;; μλ²μͺ½μ μμ½μ΄λ΄μ κ·Έλ°κ°.. μ΄κ±° μ°κ³ νλ² λλ €λ΄μΌκ² λ€.. λ³λ‘ ν건 μμ§λ§, μλλ€ λλ μμ²λ μν μ νκΈ°μ λλ €λ³΄λ©΄ λ무 κΈ°μ κΊΌκ°λ€..
6.4, 6.5 ¶
- 1002 νΌμμ μμ
. μ§μμ μμ
ν΄μ κ·Έλ°μ§ μ€κ°μ λ€λ₯Έ μΌμ μ’ λ§μ΄ νλ€. (μ λλ³΄κ³ μΆκ΅¬λ³΄κ³ . -_-;) μ₯μκ° μ£Όλ μ₯λ¨μ μ΄ νμ€ν μ‘΄μ¬νλ€. μ무리 μ§μ μ»΄ν¨ν°κ° λμκ² μ
ν
μ΄ λ§μΆ°μ Έμλ€κ³ νλλΌλ, μ§μλ λ무 μ νΉκ±°λ¦¬κ° λ§λ€.)
- μ€κ° μ€κ° ν
μ€νΈλ₯Ό μν΄ μλ²μͺ½ μμ€λ₯Ό λ€μ΄λ°μλ€. μλ―Όμ΄κ° μ€λΉλ₯Ό μ² μ νκ² ν κ²μ΄ νμ€ν λκ»΄μ§λ 건 λΉλμ©/μ€νμ© λ°°μΉνμΌ, λνλ¨ΌνΈμ μλ€. λ°°μΉνμΌμ μ€ννλ²λ§ ν΄μ£Όλ©΄ μλ²μͺ½ μ»΄νμΌμ μμμ ν΄μ£Όκ³ νλ²μ μ€νν μ μλ€. (μ€νμ μν Interface λ©μλλ₯Ό μ μν΄λμκ²μ΄λ λ€λ¦μκ΅°.) μ΄λ€ μμ€μμλ μ§ Javadoc μ΄ λ€ λ¬λ €μλ€. (Coding Standardλ‘ κ²°μ ν μ¬νμ΄κΈ΄ νμ§λ§, κ°μΈμ μΌλ‘ μ½λμ Javadoc μ΄ λ§μ΄ λ¬λ €μλκ±Έ μ«μ΄νκΈ΄ νμ§λ§; μ½λ μ½λλ° λ°©ν΄λμ΄μ; νμ§λ§ javadoc generator λ‘ document λ§λ€κ³ λλ©΄ κ·Έ μ΄μΌκΈ°κ° λ¬λΌμ§κΈ΄ νλ€.)
- TDD κ° μλμλ€λ μ μ μΆν λͺ¨λκ° Interface λ₯Ό κ²°μ ν λ 골μΉκ° μνμ§λ€. μ€κ°μ½λμ μ μ©νκΈ° λν΄μ κΆμ¬μ§μ±
μΌλ‘ Main ν¨μλ₯Ό hard coding νλ€ Refactoring μ νλ μ€νμΌλ‘ νκΈ΄ νμ§λ§, TDD λ§νΌ Interfaceκ° κΉλνκ² λμ€μ§ μλλ€κ³ μκ°. μ°¨λΌλ¦¬ μ‘°κΈμ©μ΄λΌλ UnitTest μ½λλ₯Ό λΆμ΄λκ² λμκ² κ°κΈ΄ νλ€. νμ§λ§, λ§κ°μ΄ 2μΌμΈ κ΄κ³λ‘.
μ€ν μλ£λ€ κ³ λ €νλμ§, μλλ©΄ μ²μλΆν° TDDλ₯Ό μΌλν΄λκ³ νλμ§. μ€μν건 λͺ¨λμμ²΄λ³΄λ€ λͺ¨λμ μ΄μ©νλ Client μ κ΄μ μ΄λ€.
6.3 (μ) ¶
- λ΄κ° μ§λλ²κ³Ό κ°μ΄ 5λΆ Pairλ₯Ό μν΄μ μ΄λ²μλ 5λΆPlayλ₯Ό νλ€.. μμ λ₯λ₯ μ μ΄λ€.. νκ³Ό λ λλ€ μ€νν©λ¨ΉμΈ λ§λ¦°κ°μλ€.. --;; λ¨λ²μ 1:1 Dialogμ°½ μμ±!! κ·Όλ° νκ°μ§ μ²λ¦¬(Focus κ΄λ ¨)λ₯Ό μ λλ‘ λͺ»νκ² μμ½λ€.. λ νΌλ°μ€λ₯Ό μμμ΄ λ€μ Έλ΄λ κ²°κ΅ μλ°μ€ν°λκΉμ§ κ°λ΄€μ΄λ λͺ»νλ€.. μ λ¨λ€μ λ€ λλ€κ³ νλλ° μ΄κ²λ§ μλλμ§ λͺ¨λ₯΄κ² λ€.. μ νΌ μ»΄ν°κ° κ΅¬λ €μκ·Έλ°κ±°κ°λ€.. μ΄μ 1.7Gλ‘ λ°κΏμΌνλ€. μ€λ λ€μ 좩격μ μΈ λ§μ μ°½μμ΄κ° μ£Όμ κ΄κ³λ‘ κ±°μ λͺ»ν κΊΌκ°λ€λλ§μ΄μλ€.. κ·ΈμκΈ΄ μμΌμ λλ ν΄μΌλλ€λ λ§μΈλ°.... λμκ² λ λ§μ 곡λΆλ₯Ό νκ² ν΄μ€ μ°½μμ΄κ° μ λ§ κ³ λ§λ€.. μ λ§ κ³ λ§μμ λλ¬Όμ΄ λ μ§κ²½μ΄λ€.. γ
.γ
λλΆμ μμΌκΉμ§ μ΄μ¬ν ν΄μΌλλ€.. λ°₯λ¨Ήκ³ μμ ν λ€νΈμν¬λΆλΆμ κ·Έλ₯ κ³ κ°λ§ λλμμ§ μ΄ν΄κ° μκ°λ€.. κ·Έλμ Try Catchλ 맨λ μ΄λ€.. κΈ°λ³ΈκΈ°κ° μλμμ΄ ν λλ§λ€ κ΄λ ¨λκ²λ§ 보λ λ―ΈμΉκ² λ€.. μμ κΈ°λ³ΈκΈ°κ° μΆ©μ€ν΄μΌλλ€. μ΄μ μ±
μ λ΄μΌκ² λ€.. μμ
~ κ·ΈλΌ μΈμ ν΄λΌμ΄μΈνΈλ λ΄κ° μμ±νλκ²μΈκ°~~ -_-V (1002νμ AdviserλΌκ³ μκ°ν λ... γ
‘_γ
‘;;) μνΌ λΉ¨λ¦¬ μμ±ν΄μ μνν΄λ³΄κ³ μΆλ€.. 3μΌκ» λ΄κ° μ €λ¨Όμ μΌλ€.. λ€μνλ² -_-V - μμ
μ΄μ°¨νΌ μ°½μμ΄κ° μ£Όμ μ΄ μλλΌ νλλΌλ μλ€λ μμΌμ 곡λΆν΄μΌ νμκ±Έ. -_-v (μλ. μ€κ°μ μ°½μμ΄λ λλ Pair ν κ²μ΄μμΌλκΉ. μ°½μμ΄λ Swing κ΄λ ¨ 곡λΆλ₯Ό ν΄λ¬μΌ νκΈ΄ λ§μ°¬κ°μ§) μ°Έ, κ·Έλ¦¬κ³ ν΄λΉ μ½λλλΉ μμ±μκ°μ λ°λμ 체ν¬νλλ‘. μ°Έκ³ λ‘ 1:1 Dialog λ 1μκ° 10λΆμ λ μ΄μ©νμ. --μμ²
5.31 (κΈ) ¶
- PairProgramming μ ν λ κ°μ₯ λ΅λ΅ν΄μ§λ μν©μ μ μ΄ν΄ μκ°λ©΄μ λλκ³ μμλλ, λμ΄ κ°μ΄ μμ΄λ Solo Programming νλ μ¬λ λ§λ₯ νΌμμ λ¬Έμ λ₯Ό λλ거리며 νλ €κ³ νλ λͺ¨μ΅μ΄λ€. κΌ λ¬Έμ λ₯Ό μ€μ€λ‘ μ½μ§ν΄μ νμ΄μΌλ§ μκΈ°μ€λ ₯μ΄ ν₯μλλκ²μΌκΉ? λ€λ₯Έ μ¬λμκ² μ¬λ°λ₯Έ μ§λ¬Έμ ν μ μλ μ¬λμ νΌμμ λ¬Έμ νΈλλ°μλ μ€λκ±Έλ¦¬κ² λλ€κ³ μκ°νλ€. μλλ°©μκ² μ§λ¬Έμ νλ©΄μ μμ μ΄ λͺ¨λ₯΄λ κ² μ체λ₯Ό ꡬ체ννκ³ (λ¬Έμ μμ²΄κ° λͺ¨νΈνμν μμ²΄κ° λ¬Έμ λ€. 무μμ΄ λ¬Έμ μΈμ§, μμ μ΄ λͺ¨λ₯΄λ κ²μ΄ ꡬ체μ μΌλ‘ 무μμΈμ§ λͺ¨λ₯΄λ©΄μ μ΄λ»κ² λ¬Έμ λ₯Ό ν΄κ²°ν κΉ? μμ μ΄ λͺ¨λ₯΄λκ² λ²ν΄λ¦¬μμΌ μ 체 μ¬μ©κ³Όμ μΈμ§ μμΌ APIμ μΈμλ€μ λͺ¨λ₯΄λ©΄μ λ€νΈμ νλ‘κ·Έλλ°μ ν μ μμκΉ. κ·Έλ°μ¬λλ€μκ² 'μ§κΈ λͺ¨λ₯΄κ² λκ² λμ§?' λΌκ³ λ¬ΌμΌλ©΄ 80-90%λ 'λ€ λͺ°λΌμ' μ΄λ€. λͺ¨λ₯΄κ² λ λΆλΆμ λν΄μ νλνλ ꡬ체νμμΌλκ°λΌ. ꡬ체νμν¨ μλ‘μ μκ°μ ν΄λ΄λ μ’μκ²μ΄λ€. μλ리μ€λ₯Ό λ§λ€μ΄λ³΄λ©΄μ, κ·Έλ¦Όμ κ·Έλ €λ³΄λ©΄μ, μλλ©΄ μκΈ° μμ μ΄ κ·Έ μμ€ν
μ μΌλΆκ° λμ΄ λ³΄λ©΄μ.) λ€λ₯Έ μ¬λμ μμ΄λμ΄λ₯Ό μμ μ μ¬κ³ μ λΆμ¬λκ°λ©΄μ 'λ μ’μ λ°©λ²' μμκ°ν΄λΌ μλ μμκΉ? μΈμ λ λ¬Έμ μ λ΅μ λ΄λ λ°©λ²μ 'μ΄μ¬λμ λ°©μ' μλλ©΄ 'μ μ¬λμ λ°©μ' λΏμΌκΉ.
- PairProgramming μ κ΅λμκ°μ 5λΆμΌλ‘ ν΄λ΄€λ€. ν μ¬λμ΄ 5λΆλμ ν΄λΉ λΆλΆμ νλ°νλ€κ° λ€ λͺ»μ§λ©΄ λ€μμ¬λμ΄ λ€μ 5λΆμ μκ°μ κ°μ§κ³ μ΄μ΄μ μ§κ³ νλ©° κ΅λλ‘ νλ‘κ·Έλλ°μ μ΄μ΄λκ°λ (λ§μΉ 릴λ μ΄κ²½μ£Όμλ κ°λ€) λ°©λ²μ΄λ€. μ¬λλ€μκ² μ μνμλ κ·Έ νμ λ€μ΄ μ¬μμΉ μλ€;; κ·Έλ λν¬λ€μ μ€νμ© λͺ¨λ₯΄λͺ¨νΈλ€;; νν.
- -_-; λλμ μ΄λ μΌμ μ΄λ... μ΄λ―Έ μμ΄μλλ°... --;;
- 5λΆκ°κ²©μΌλ‘ Pair Programmingμ νλ€.. μ§μ§ Pairλ₯Ό ν κΈ°λΆμ΄ λ λ€.. Testκ° μλ Real Client UIλ₯Ό λ§λ€μλλ°, νλ€λ³΄λ Testλ νλ²μ© λ€ ν΄λ³Έκ±°μλ€.. κ·Έλ°λ° μμ μλμ 1002νμ΄ μ΄κ±Έ 보λ μΌκ΅΄μ΄ λ¬μμ€λ₯Έλ€.. --;; μμ
.. 3μΌμ μΌμ μ°λ €λ λ무 νλ€λ€.. μΌκΈ°λ₯Ό λ°λ €μ μ΄κΈ°λΆμ΄λ€.. μμν΄μ λ§ μ°κ³ μΆμ§λ§ λ΄κ°μ μ μμ§ν΄μΌκ² λ€.. κ·Έλ₯ μκ°λλκ²λ§ μ¨μΌμ§.. γ
‘.γ
‘++ νμ€ν 5λΆκ°κ²©μΌλ‘ νλ μλκ° λ°°κ°λ κΈ°λΆμ΄λ€.. λ§μ½μ νμνμμ μ½λ©μ νλ λλμ΄μλ€.. μνΌ νΌμμ νλ©΄ μΈμ λλ μ§ μμμκ³ κ°μ΄ ν΄λ κ·Έκ±°λ³΄λ¨ λ κ±Έλ Έμλ―νλ°, 1μκ°λ§μ Loginκ΄λ ¨ UIλ₯Ό μ§°λ€λκ² λλ‘μ μ κΈ°νλ€.. κ·Όλ° νΌμμ λμ€μ ν Treeλ§λ€λ μ λλ‘ λͺ»νλ€.. μμ§ λ―μ λ―νλ€. λμκ² μ§κΈ νλ‘μ νΈλ κΈ°μ΄κ³΅μ¬κ° μλμνμμ λ°λ‘ 1μΈ΅μ μ¬λΌκ°λ κ·Έλ°κ±°κ°λ€.. 머리μμ μ§λ΄κ³ μλλ° μκ°μ΄ μλλ€ κ·Έλ§ μ°λ ¨λ€.. γ
‘γ
‘;; - μμ
5λΆ νλ μ΄λ₯Ό μλνλ €κ³ ν λ νμ΅κ³Ό λ₯λ₯ μ¬μ΄λ₯Ό μ μ μΈμ§ ν νμκ° μμλ―. μκ°μκ³±νλλͺ¨μμ κΈμμλ κ·Έλ λ―, μ¬λκ³Όμ μ견κ΅νκ³Ό νλ‘ κ³΅λΆνκ³ μκ°νλ κ² μμκ°μ κ· νμ μ‘μμΌκ² μ§. νμ§λ§, μ°λ¦¬κ° λ§λμ νλ°ν λ ν΄λΉ λΌμ΄λΈλ¬λ¦¬κ³΅λΆμ νλ°μ λ λ€ νκΈ°μ μκ°μ΄ λͺ¨μλ₯΄λ, νμ΅λΆλΆμ κ°μΈμ μΌλ‘ μ΄λμ λ ν΄μΌ κ² μ§. (λλ JTree λ³΄λ €κ³ Graphic Java λ Core Java, Professional Java μ μλ JTree λ€ μ½μ΄λ³΄κ³ μ§μμ κ°μΈμ μΈ μμ μ½λ μμ±νκ³ κ·Έλ¬λ€. κ·Έμ λ νμΌλκΉ μλ€λ νλ°ν λ λ νΌλ°μ€ μλ€μ Έλ³΄μ§. λλ μ§ κΈ°λ³Έ λ°λ°νμ΄ λλ건 νμ΅λμ΄λΌ μκ°. νμ΅λ * ν¨μ¨μ λ°©λ²λ‘ = Output --μμ²
μ²μμλ μμμ GUI Programmingμ νλ€. Main Frame class μ λ©λ΄λΆμ΄κ³ 리μ€λ μ°κ²°νλ κ²λΆν° μμ, μ λ ₯ λ€μ΄μΌλ‘κ·Έλ₯Ό λ Έκ°λ€ μ½λ©ν΄μ λ§λλλ° μλ‘ κ΅λν΄μ 1μκ°μ΄ κ±Έλ Έλ€. μ½λ© μλλ μ λ²μ λΉν΄ λμ± λΉ¨λκ³ , λνν λλ κ·Έ μ§λ¬Έμ΄ κ°λ¨νλ€. (5λΆκ°κ²©μ΄λ μ무리 νλ°μ΄ μ΅μν μ¬λμ΄ μ§νν΄λ κ·Έ μ§νμμ΄ λ§μ§κ° μλ€. κ·Έλ¦¬κ³ μμ μ΄ κ·Έ μ¬λμ λ―Έμμ± μ½λλ₯Ό μμ±ν΄μΌ νκΈ°μ λͺ¨λ₯΄λ©΄ λ°λ‘ μ§λ¬Έμ νκ² λλ€.)
λ€μλ²μ μ°½μμ΄μ Socket Programming μ κ°μ λ°©λ²μΌλ‘ νλλ°, μμμμ κ°μ ν¨κ³Όκ° λμ€μ§ μμλ€. μ€κ°μ μκ·Έλ΄κΉ μκ°ν΄λ΄€λλ, μκΉ GUI Programming μ νκΈ° μ μ μμμ UI Diagram μ κ·Έλ Έμλ€. κ·Έλ¬λ―λ‘, μ 체μ μΌλ‘ μ΄λκΉμ§ ν΄μΌ νλμ§ λμΌλ‘ νμ€ν 보μ΄λ κ²μ΄μλ€. νμ§λ§, Socket Programming λλ μΌμ’
μ Libraryλ₯Ό λ§λλ μ€νμΌμ΄ λμ΄μ μ°½μμ΄κ° μ 체μ μΌλ‘ 무μμ μμ±ν΄μΌνλμ§ μ체λ₯Ό λͺ¨λ₯΄λ κ²μ΄μλ€. κ·Έλμ μ€λ°μ―€μ Socketκ΄λ ¨ ꡬ체μ μΈ μλλ¦¬μ€ (UserConnection Class λ₯Ό μ΄μ©νλ main μ μ
μ₯κ³Ό κ΄λ ¨νμ¬ μλ² μ μ & κ²°κ³Ό λ°μμ€λ κ²μ λν κ°λ¨ν sequence λ₯Ό κ·Έλ Έλ€) λ₯Ό λ§λ€κ³ , μ§νν΄ λκ°λκΉ μ§νμ΄ μ’ λ μν νλ€. μκ°κ΄κ³μ 1μκ°μ λλ°μ μμ
μ νμ§ λͺ»νκ² μ’ μμ½κΈ΄ νλ€.
5.28 (ν) ¶
μμμκ² JTree κ΄λ ¨ νλ‘κ·Έλλ°μ λν΄μ μ€λͺ
μ νλ€. JTreeμ κ΄λ ¨νμ¬ λ―Έλ¦¬ 곡λΆνλΌκ³ νκΈ΄ νλλ°, μμ§μ νλ κ° λ³΄λ€. μ€λ μμ
μκ°μ΄ 5μ 30λΆλΆν° 9μ (μ λ
30λΆκ°λ), μ½ 3μκ° κ°λμ΄ κ±Έλ Έλκ²μΌλ‘ κΈ°μ΅λλ€. νμΌλ‘ λͺ¨μΌ μ μλ μκ°μ΄ ννμ§ μμΌλ―λ‘, κ° νμν λΆλΆμ λν νμ΅κ³Ό μμ μ½λλ±μ JDKμ λν SpikeSolution μ λν΄μλ μ§μμ ν΄ λ΄μΌ ν κ²μ΄λ€. μμ
μκ°μ νμ΅μκ°μ κ°μ΄ ν μ νκΈ°μ μκ°μ΄ 그리 λλμΉ μλ€.
μ€λ° μ΄λμ λ λλΆλΆμ λͺ©ν μ½λκ° λμμ λλ¨Έμ§λ₯Ό μ±μλ£λ κ³Όμ μ λν΄μλ Solo λ‘ μμμκ² μμΌ°λλ°, μμ§κΉμ§ νλ‘κ·Έλλ°μ μ΅μνμ§ μμ λ― μΆλ€. μκΎΈ ν΄λΉ λΆλΆμ νλ°νλ €λλ°μμ κ°μ λΆλΆμ΄ ꡬνλ μμ€μ½λκ° μμμλ λΆκ΅¬νκ³ μκΎΈ μ± μ μ°Ύμλ³΄λ €κ³ νλ€. μμ κ°μ μ°¨μ΄μμκΉ. ν΄λΉ λΆλΆμ λν΄ κΌ μ½λλ₯Ό μΈμμ νλ°νλ € νμ§ μμμΌλ©΄ νλ€. 'νλ €λ μΌ' -> 'κ° μΈμ΄λ³ ꡬν λ°©λ² μμ μ‘μ보기' -> 'ꡬν' μ κ³Όμ μ κ±°μΉκ±°λ, ν΄λΉ λΆλΆμ λν΄μ μμ©ν μ μλ μ΄μ μ λ§λ€μ΄μ§ μ½λ (μ± μ μ½λ λ§κ³ νμ¬ 'μμ±λ' μ½λ)λ₯Ό λ€μΆ°λ³΄κ³ μκ°ν΄λ΄€μΌλ©΄ νλ μκ°μ΄ λ λ€.
κ·Έλλ λ©μ μ 리μ€νΈμ μ¬μ©μ μΆκ°/μμ λΆλΆμ λν JTree λΆλΆ νλ°μ λΉμ·ν μμ€μΌλ‘ νλ€λ κ²κ³Ό CVS μ add & commit νλ μ 체 ν κ³Όμ μ ν΄λ³Έμ μμ μμλ₯Ό λμ΄λ³Έλ€.
μ€λ° μ΄λμ λ λλΆλΆμ λͺ©ν μ½λκ° λμμ λλ¨Έμ§λ₯Ό μ±μλ£λ κ³Όμ μ λν΄μλ Solo λ‘ μμμκ² μμΌ°λλ°, μμ§κΉμ§ νλ‘κ·Έλλ°μ μ΅μνμ§ μμ λ― μΆλ€. μκΎΈ ν΄λΉ λΆλΆμ νλ°νλ €λλ°μμ κ°μ λΆλΆμ΄ ꡬνλ μμ€μ½λκ° μμμλ λΆκ΅¬νκ³ μκΎΈ μ± μ μ°Ύμλ³΄λ €κ³ νλ€. μμ κ°μ μ°¨μ΄μμκΉ. ν΄λΉ λΆλΆμ λν΄ κΌ μ½λλ₯Ό μΈμμ νλ°νλ € νμ§ μμμΌλ©΄ νλ€. 'νλ €λ μΌ' -> 'κ° μΈμ΄λ³ ꡬν λ°©λ² μμ μ‘μ보기' -> 'ꡬν' μ κ³Όμ μ κ±°μΉκ±°λ, ν΄λΉ λΆλΆμ λν΄μ μμ©ν μ μλ μ΄μ μ λ§λ€μ΄μ§ μ½λ (μ± μ μ½λ λ§κ³ νμ¬ 'μμ±λ' μ½λ)λ₯Ό λ€μΆ°λ³΄κ³ μκ°ν΄λ΄€μΌλ©΄ νλ μκ°μ΄ λ λ€.
κ·Έλλ λ©μ μ 리μ€νΈμ μ¬μ©μ μΆκ°/μμ λΆλΆμ λν JTree λΆλΆ νλ°μ λΉμ·ν μμ€μΌλ‘ νλ€λ κ²κ³Ό CVS μ add & commit νλ μ 체 ν κ³Όμ μ ν΄λ³Έμ μμ μμλ₯Ό λμ΄λ³Έλ€.
- PairProgrammingλ₯Ό νλ©΄μ SpikeSolution μΌλ‘ νλ² κ΅¬μ±νλ μμ€λ₯Ό λ€μ λ§λ€μ΄λ³΄κ³ , μ¬λ¬λ² λ§λ‘ μ€λͺ
ν΄λ³΄κ³ , λ μ¬μ΄ λ°©λ²μΌλ‘ μ€λͺ
ν΄λ³΄λ €κ³ νλ λμ μκ³ μλκ²μ λν΄ μκ°μ΄ 빨리 μ 리λλ€.
- λ€λ₯Έ MFCλ wxPython λ±μ λ€λ₯Έ GUI Frameworkμ λμμΈν¨ν΄ μ μ΅μνλ©΄ μ΄λ¬ν Swing μ μ΅μν΄μ§λλ°μλ λμμ΄ λμλ€. λλΆλΆμ GUI μμ CompositePattern μΌλ‘ μλμ°λ€μ ꡬμ±νκΈ°μ. κ·Έλ¦¬κ³ Java APIλ₯Ό 곡λΆνλ λμ IteratorPattern μ΄λ DecoratorPattern, MVC λ±μ λν΄μλ μ΄ν΄νκΈ° μ©μ΄νλ€.
DeleteMe) μ°Έκ³ λ‘ μλ°μμλ μμν ννμ MVC λͺ¨λΈμ μ¬μ©νμ§ μμ΅λλ€. λ³νλ ννμ MVC λͺ¨λΈμ μ¬μ©ν©λλ€ Introducing Swing Architecture. μ΄λ‘ κ³Ό μ€μ μ μ°¨μ΄λκΉμ. --μ΄μ μ°
μμν ννμ MVC λͺ¨λΈμ ꡬ경ν΄λ³Έμ μ΄ μλ κ΄κ³λ‘;; μ μκ² μΆμμ μΈ κ°λ μΌ λΏμΈμ§λΌ. νκΈ΄ JTree μμ TreeModel λΆλΆκ³Ό TreeRender & UIManager λΆλΆ, JTree λΆλΆμ μ°κ²°λ 리μ€λμ κ΄λ ¨ν λ μ νν Control λΆλΆκ³Ό UI λΆλΆμ΄ λ°λ‘ λ¨μ΄μ§μ§ μκ³ κ²½κ³κ° μ’ λͺ¨νΈνκΈ΄ νλ€λ. --μμ²
5.27 (μ) ¶
μμκ° μΌμ΄ μμλ κ΄κ³λ‘ μ°½μμ΄μ Socket κ΄λ ¨ μμ νλ°μ μ λ²μ μ΄μ΄μ νλ€. μ°½μμ΄κ° 곡λΆλ₯Ό ν΄μλμ§ μ΄λ²μλ μ½λ©μ μκΈ°κ° μ‘λλ€. μ€ μμ κ°;
κ°λ¨ν μμ½μλ² κ΄λ ¨ νλ‘κ·Έλλ°μ νλ κ²μΈλ°, μΌλΆλ¬ ν μΌμ μ£ΌμμΌλ‘ μ΄ λ€, νλ¨κ³μ© λμ΄κ°λ λ°©λ²μ μ¨ λ³΄μλ€. TDD κΉμ§λ μλμ§λ§, μμ λ¨κ³λ¨κ³λ₯Ό λ§λ€κ³ νμΈν΄λ³΄λ κ²μ΄ λ ν¨κ³Όμ μΈ κ² κ°λ€.
μ¬λλ€ μμ μκ°μ λ§μΆκΈ°κ° μ½μ§ μμκ² μμ½λ€. μλ²/ν΄λΌμ΄μΈνΈ μ 체 νμλ₯Ό ν΅ν΄ ν° κ·Έλ¦Όλ€μ λ€κ°μ΄ 곡μ ν΄μΌ ν ν λ°, μκ°νλ€μ΄ λ€λ₯΄λ, μ μ νκ² λ¨Έλ¦¬λ₯Ό μ°κΈ΄ ν΄μΌκ² λλ° μ’ νλ€κ΅°; --1002
κ°λ¨ν μμ½μλ² κ΄λ ¨ νλ‘κ·Έλλ°μ νλ κ²μΈλ°, μΌλΆλ¬ ν μΌμ μ£ΌμμΌλ‘ μ΄ λ€, νλ¨κ³μ© λμ΄κ°λ λ°©λ²μ μ¨ λ³΄μλ€. TDD κΉμ§λ μλμ§λ§, μμ λ¨κ³λ¨κ³λ₯Ό λ§λ€κ³ νμΈν΄λ³΄λ κ²μ΄ λ ν¨κ³Όμ μΈ κ² κ°λ€.
μ¬λλ€ μμ μκ°μ λ§μΆκΈ°κ° μ½μ§ μμκ² μμ½λ€. μλ²/ν΄λΌμ΄μΈνΈ μ 체 νμλ₯Ό ν΅ν΄ ν° κ·Έλ¦Όλ€μ λ€κ°μ΄ 곡μ ν΄μΌ ν ν λ°, μκ°νλ€μ΄ λ€λ₯΄λ, μ μ νκ² λ¨Έλ¦¬λ₯Ό μ°κΈ΄ ν΄μΌκ² λλ° μ’ νλ€κ΅°; --1002
μ΄ν.. μ λ² μκ°μ μ‘Έλ €μ λ©ν μνμΈλ°λ€κ° μνλ¬Ένμ 곡μ°μ€λΉνλ€κ³ 곡λΆλ₯Ό λ±νμν μνμλ€. μΉκ΅¬λ€κ³Ό 6μ μνλ³΄κΈ°λ‘ νλ κ²λ€ μ·¨μν¨μΌλ‘μ¨ λλμ± λ μμ μ΄ 'λλ체 μ΄λ€ κ²μ΄ μ°μ μΌκΉ... μ§κΈ λ΄κ° 무μμ νλ κ²μ΄ κ°μ₯ νλͺ
ν κΉ..' μ λν΄ κ³ λ―Όμ νλ©΄μ λ°μ±νκ³ μμλ€. κ·Έλ° λμκ² νλ μλ΄κ³ μ°¨λΆν μ€λͺ
ν΄μ£Όλ νμκ² λ무 λ―Έμνλ€. κ·Έλμ μν보λκ±Έ μ·¨μνλ€. λ΄κ° κ·Έ μ리μμ ν μ μλ μ΅μ μ λ°©μμ΄μκ³ νννμ§ μλλ€. κ·Όλ° λ¨λκ² λ³λ‘ μμλ€. λ©ν μνμ¬μ..-_- μ€λμ 곡λΆλ₯Ό μ’ ν μνμ¬μκΈ° 보λ€λ κ°λ
μ μ΄ν΄ν μνμ¬μ μμ μ΄ μμλ€. κ°λ
λ§ μ΄ν΄νλ©΄ λλ¨Έμ§λ μ΄λ ΅μ§ μμ κ²μ΄λΌλ λμ λ³νμ§ μλ μκ°λλ¬Έμ.. μ΄μ μλ° μμ μ’ νκ³ λμ λ©μ μ κΈ°λ³Έ νμ μ§λ΄μΌκ² λ€. --μ°½μ
μμ
.. μ€λμ μ μ£Όλλ‘ λνκ΅λ₯Ό κ° κ³ λ©λ μ € μΉνμΉκ΅¬κ° μ€λ‘ μ¬λΌμμ μΉκ΅¬λ§λλλΌκ³ μΌκ΅΄λ§ λ³΄κ³ λμλ€.. κ·Έλλ§ μ€λ ₯λ Xκ°μλ° κ³΅λΆλ μνλ.. 1λ
λ°μ λμκ² μμ΅μ΄ μλλ€.. λ§μκ°μ§λΆν° μ‘μμΌ λκ° λ κΊΌκ°μλ°... μμ§ μμ§ν μ¬μ μΌλ‘ λ§μκ°μ§λ μμ‘νλ€.. λλ 1002νκ» κ·Έμ μ£μ‘μ€λ΄λΏμ΄λ€. νμ κ°κ΅Όμ κΈ°μ¨μΌλ‘ λ°μλ€μ¬μ λ§μμ λ€μ λ€μ‘μμΌκ² λ€.. κ²°λ‘ μ μ€λ κ³΅λΆ μ©κΉ λ€.. γ
.γ
μμ°Έ νμ΄ λ³΄λΌκ³ νκ±° λ³΄κ³ μμΌκ² λ€.. --μμ
5.24 (κΈ) ¶
Client νμ μΌλ¨ λ©μ μ μ κ΄λ ¨ν μμ λ€μ λμμΈμ μ€λͺ
ν΄λ³΄λ μκ°μ κ°μ‘λ€. μ¬λλ€μ νλ‘κ·Έλλ°μ νκΈ° μ μ μ΄λ€ μ€νμΌλ‘ ꡬμμ νκ² λ κΉ. Agile Modeling μμ λ΄€λκ°. λͺ¨λΈ 보λ€λ λͺ¨λΈλ§μ΄ μ€μνλ€κ³ νμλ μ΄μΌκΈ°. λͺ¨λΈλ§μ ν΄ λκ°λ©΄μ μμ μ μκ°μ μ 리νκ³ , νλ‘κ·Έλ¨μ μ΄ν΄ν΄ λκ°λ κ²μ΄ μ€μνκΈ°μ.
1002μ κ²½μ° UMLμ 곡λΆν κ΄κ³λ‘, μ’ λ ꡬ쑰μ μΌλ‘ μμ ν μ μμλ κ² κ°λ€. μ€λͺ μ μν΄ Conceptual Model μμ€μ Class Diagram κ³Ό Sequence, κ·Έλ¦¬κ³ κ±°κΈ°μ Agile Modeling μμ μ κΉ λ΄€μλ UI μ λ°λ₯Έ νμ΄μ§ μ ν κ΄κ³μ λν κ·Έλ¦Όμ νλ λ κ·Έλ €μ μ€λͺ νλ€. νλμ νλ‘κ·Έλ¨μ λν΄ μ¬λ¬ κ°λμμ λ°λΌλ³΄λ κ²μ΄ νλ‘κ·Έλ¨μ μ΄ν΄νλλ° λ νΈνλ κ² κ°λ€.
μ°½μμ΄λ νλ‘κ·Έλ¨μ μλ μ리μ λν μμΈν μλ리μ€λ₯Ό μ¨μ μ€λͺ μ νλ€. μμκ° 'μ. λ¨Έλ¦ΏμμΌλ‘λ λκ° κ΅¬μμ νλλ°, μ μ λ¦¬κ° μλΌμ' λΌκ³ νλ€. 머리λ‘λ§ μκ°ν΄λ³Έ κ²κ³Ό κΈμ΄λ λνλ‘ νλ² μ 리λ₯Ό ν΄λ³Έ κ²μ μ°¨μ΄κ° ν¬λ€λ κ²μ λκΌκ² μ§.
1002μ κ²½μ° UMLμ 곡λΆν κ΄κ³λ‘, μ’ λ ꡬ쑰μ μΌλ‘ μμ ν μ μμλ κ² κ°λ€. μ€λͺ μ μν΄ Conceptual Model μμ€μ Class Diagram κ³Ό Sequence, κ·Έλ¦¬κ³ κ±°κΈ°μ Agile Modeling μμ μ κΉ λ΄€μλ UI μ λ°λ₯Έ νμ΄μ§ μ ν κ΄κ³μ λν κ·Έλ¦Όμ νλ λ κ·Έλ €μ μ€λͺ νλ€. νλμ νλ‘κ·Έλ¨μ λν΄ μ¬λ¬ κ°λμμ λ°λΌλ³΄λ κ²μ΄ νλ‘κ·Έλ¨μ μ΄ν΄νλλ° λ νΈνλ κ² κ°λ€.
μ°½μμ΄λ νλ‘κ·Έλ¨μ μλ μ리μ λν μμΈν μλ리μ€λ₯Ό μ¨μ μ€λͺ μ νλ€. μμκ° 'μ. λ¨Έλ¦ΏμμΌλ‘λ λκ° κ΅¬μμ νλλ°, μ μ λ¦¬κ° μλΌμ' λΌκ³ νλ€. 머리λ‘λ§ μκ°ν΄λ³Έ κ²κ³Ό κΈμ΄λ λνλ‘ νλ² μ 리λ₯Ό ν΄λ³Έ κ²μ μ°¨μ΄κ° ν¬λ€λ κ²μ λκΌκ² μ§.
1002λ CVS μ¬μ©λ°©λ²μ λν μλ₯Ό 보μ΄κ³ μ€λͺ
μ νλ€. wincvs μλμ° λ²μ μ μ΅μνμ§ μμλ κ΄κ³λ‘ command μ
λ ₯λ°©λ²μ κ°λ₯΄μ³μ€¬λ€. κ·Έλ¦¬κ³ μμμλ μ£Όλ‘ Swingμͺ½μ, μ°½μκ³Όλ Java Socket Class μ μ΅μν΄μ§κΈ° μν΄ Socket κ΄λ ¨ SpikeSolution μ νλ€.
νλ°°λ€κ³Όμ PairProgramming μ΄λ€. μ¬νκ»μ κ²½νμ μνλ©΄ μΈμ λ μ λ§€ν κ²μ΄ Junior : Expert λ¬Έμ μ΄λ€. μ΄λ²μλ μ΄μ°¨νΌ SpikeSolution μ΄λ―λ‘, λ΄κ° μλ νλμμ μ½κ°μ μλ₯Ό 보μ΄κ³ , νλ°°λ€λ‘ νμ¬κΈ ν΄λ³΄λλ‘ νλ μμΌλ‘ νλλ°, κ·Έ λμ λμ΄ Pair λ₯Ό ν΄λ³΄λ κΈ°νκ° μμλ κ² κ°λ€. μ€κ°μ λ΄κ° νμ₯μ€ κ°λ€μ¬λ μ μ λμ΄μ Pair λ₯Ό νλ λͺ¨μ΅μ λ΄€μλλ°, μ΄ μ μ λ΄κ° μ μ νκ² μ§μΌλκ°μΌκ² λ€. λ무 λ©λ¦¬λ, λ무 κ°κΉμ΄λ μλλλ‘. --1002
λνκ΅λ€μ΄μμ κ·Έμ λλ‘ μ΄μ¬ν(?)곡λΆνμ μ λ³λ£¨ μμλκ±°κ°λ€.. κ·Έλ μ΄μκΈ°λ₯Ό λ€μ 1002νμ λλνμ μ΄μμ§λ§ μ¬μ€ κ·Έλ¬λ€.. κ·Έλ¬λκΉ νμ μ΄ κ·Έλ κ² λμκ² μ§.. -_-;; μνΌ μΌμ£ΌμΌμ μ λ΄€λ μλ° κΈ°λ³Έκ°λ
μ λ°νμΌλ‘ λ¨λ€ λ€ ν΄λ³Έ μ€μ κΈ°λ³Ένμ΄λ λ©λ΄κ°μκ±Έ μμ±ν΄λ΄€λ€.. μμ°Έ κ·Έμ μ CVSμ¬μ©λ²μ λ°°μ°κ³ , Architectureμ Designμ λν΄μλ λ€μλ€.. μ κΈ°νλ€.. λ¬΄μ¨ λλ©΄κ°μλ€.. μ΄μ μμΌ λλκ±°μ§λ§ νλ‘κ·Έλ¨μ μ½λ©μ΄ μ°¨μ§νλλΉμ€μ 1/2λ μλλꡬλλΌλκ±Έ λκΌλ€.. (μ΄μ μμΌ? --;;) μ¬μ§κ» λμμκ°μ΄ λ무 μκΉμ λ€.. -_-;; --μμ