ProjectPrometheus μμ
μκΈ°. ThreeFs μ λ°λΌ. κ·Έλ μ νμΌκ³Ό λλμ , κ΅ν λ±μ μκ°ν΄λ³΄λ μκ°κ°μ§κΈ°. μκ°μ μ±μ§νκ³ λ―Όκ°ν μ μλλ‘.
10.12 (ν ) ¶
- TestCase ν΅κ³Ό μμ£Ό ZeroPageServer μμ TestCase λλ €λ΄
10.3 (λͺ©) ¶
- κ²μ κ΄λ ¨ μλ¬λ©μΈμ§ μΆλ ₯.
- ZeroPage μ Release. κ΄λ ¨ Ant Build νμΌ μμ±
- ν¨ν€μ§ λΆλ¦¬, λλ ν 리 μ 리.
- ν¨ν€μ§ λΆλ¦¬λ₯Ό νκ³ , κ΄λ ¨ κ²½λ‘ νμΌλ€μ μμ μ νλ©΄μ, μ€λ³΅μ΄ μλ μ½λκ° μΌλ§λ κ°λ ₯νμ§κ° 보μΈλ€. μ λ§μ λ§ κ³ μΉ λΆλΆμ΄ λ§μ΄ μ€μ΄λ λ€. (μ¬λμ΄κ±΄ ν΄μ΄κ±΄ λ κ³ μνκ² λλ€.)
- μλμ°μμ μμ
ν Java νμΌμ΄ μμΈλ‘ νλ°©μ Ant λ‘ λΉλνκ³ , ZeroPage μ Resin μλ²μμ λμνλ κ²μ 보며, λ€μκΈ μλ°μ μλ ₯μ΄ μ€κ°λλ€.
- λ©μΈ μ½λλ₯Ό μμ±νκ³ μμλμλ 'νμΌλ‘ λΉΌμΌ ν 거리' λ€μ΄ μ보μΈλ€. νμ§λ§, μ΄λ―Έ μ»΄νμΌ λκ³ κ΅³μ΄μ Έλ²λ¦° μ νμ μΈλμλ 'νμΌλ‘ λΊμ΄μΌ νλ 거리' λ€μ΄ 보μΈλ€. λ°μ΄ν°μ£Όλμ κΈ°λ²μλ§λ² μ΄μλκ°. λ, 미리 머리 μ€νλ΄λ©° ν΄λλ κ²μ YAGNI μ΄κ² μ§λ§, λμ λΉ€ν 보μΌλμλ. λ, μμΌλ‘ ν΄μ€κ±°λ¦¬. (Property class κ° μ’ λ νμ₯λ μ μμλ―.)
- μλλΌλ©΄ λ°©νμ€ νλ² Release νκ³ μ§κΈ λλ²μ§Έ μ΄μμ Release κ° λμ΄μΌ κ² μ§λ§. Chaos (?)μ μν₯λ μκ³ . -_-; μνΌ λλ¬κ° μ₯μ μμ μ΄μ λκ° νλ² ν λλμ΄ λ λ€. μ΄λ°μλ λ¬μμ€λ₯΄λ μ΄μ μ΄λ, νλ°μ λκΈ°μ΄λ€. μ€κ°μ λμ¨ν΄μ§ 거리λ€μ΄ λ§μμλ λΆκ΅¬νκ³ μ²μ²νλλ§ μ§μμ μΌ μ μμμμ΄ κΈ°μλ€.
- Pair λΌλ κ²μ κΌ νλ‘κ·Έλλ°μ΄ μλλ€ νλλΌλ μ¬λ¬κ°μ§ μλμ§λ₯Ό λ°νν μ μλ€. νΌμμ μκ°νλ κ²λ³΄λ€ λΉ λ₯Έ νΌλλ°±μ λ°μ μ μκΈ°μ. μ€λ λ‘λ³Άμ΄ λ¨ΉμΌλ©΄μ μμ΄λμ΄ κΆλ¦¬ν λμ μμ΄λμ΄λ€μ΄ λͺ¨μ΄κ³ μλλ°©μκ²μ λ°μμ λ€μ΄λ³΄κ³ λ§λΆμ¬μ§κ³ μμΈλ‘ μλ‘μ΄ μμ΄λμ΄κ° μ°½μΆλ λμ κ·Έ λλμ΄λ. --1002
10.2 (μ) ¶
- Advanced Search
- Mypage μμμ Best Point μμ.
- κ²μ κ²°κ³Ό 리μ€νΈμ λν΄ νμ΄μ§ λλκΈ°
10.1 (ν) ¶
- μ κ·ννμ νμ± λΆλΆ μΌλΆ μμ .
- UI λμμΈ κΆλ¦¬.
9.30 (μ) ¶
- Test κΉ¨μ§ κ² λ§μ μμ . ν
μ€νΈλ€ μΆκ°.
- UnitTest λ€μ΄ λλμ΄ λ€μ λ
Ήμλ°. κ·Έλ¦¬κ³ μλΈλ¦Ώμ μλ λ‘μ§ λΆλΆμ Extract, ν
μ€νΈλ€μ λΆμ¬μ€.
- UnitTest λ€μ΄ λλμ΄ λ€μ λ
Ήμλ°. κ·Έλ¦¬κ³ μλΈλ¦Ώμ μλ λ‘μ§ λΆλΆμ Extract, ν
μ€νΈλ€μ λΆμ¬μ€.
- Test λ§μ κ³ μΉλ μ€, λ΄κ° λΉμ°νλ€κ³ μκ°λμλ Test κ° κΉ¨μ§ λ¬Έμ λΆμμ΄ μ€μ λ‘ νλ Έμμ μκ² λμλ€. μλ―Όμ΄ λνμ μμΈλ‘ 30λΆ λ΄λ‘ κ°λ¨ν ν΄κ²°λμλ€. μ€λλ§μ AcceptanceTest ν¬ν¨ 80μ¬κ° ν
μ€νΈκ° λ
ΉμλΆμ μΌκ² λμλ€.
- νλμ PairProgramming ν λ μ£Όλ‘ κ΄μ°°μ μ
μ₯μ μμ΄μμΈμ§. (μ΄μνκ²λ. μ°½μ€μ΄νμ΄λ ν λλ μλ―Όμ΄λ ν λλ. κ·Έλλ§ μ λ² λ₯΄λ€μμ€ ν΄λ½λλ μ무λ μ£Όλμ μΌλ‘ μμ‘μμ κ·Έλ₯ λ΄κ° μ‘κΈ΄ νμ§λ§, λ€λ₯Έ μ¬λλ€μ΄ μ κ·Ήμ μΌλ‘ λμμ§ μμλμ μ¬μ§ κ·Έ μ¬λλ€κ³Ό κ°μ΄ ν΄μΌ νλ€λ κ°λ°κ΄λ
μ΄ μμ΄μ.)
κ·Έλ λ€κ³ μ΄ μν©μ λ€λ₯Έ μ¬λμκ² λ§λ‘ νλ©΄ λΉμ°ν 'μ. κ·Έλ. λ€μλ²μλ μ£Όλμ μΌλ‘ μ‘μ' λΌκ³ νμ§λ§. νλμ μκ°λ½μ΄ μ½κ² κ°μ§ μμ κ² κ°λ€. κ°μΈμ μΈ λ¬Έμ μΌκΉ. μμ§ νμμ λν λΆμμ΄ μ μλλμ€μ΄λ€.
- μλΈλ¦Ώ λ μ΄μ΄λΆλΆμ λν΄μ Controller μ Logic μ΄ λΆλ κ²½μ° μ΄λ»κ² Test λ₯Ό λΆμΌκΉ. (FacadePattern μ μκ°νκ³ , μΉ Tier λ₯Ό λ°λ‘ λΆλ¦¬νλ μκ°μ ν΄λ³΄κ² λλ€.) --1002
9.27 (κΈ) ¶
- Test κΉ¨μ§ κ² μμ νκΈ°.
Test λ€μ΄ μμΌλ©΄ νμ€ν μ’μμ μ, κΉ¨μ§ ν
μ€νΈλ€μ΄ To Do List κ° λλ€λ μ μ΄λ€. 볡ꡬμμλ? κΉ¨μ§ ν
μ€νΈλ€μ€ κ°μ₯ μ¬μ보μ΄λ κ²μ΄λ, κ·Έ λ¬Έμ λ₯Ό νμ€νκ² νμ
νλ€κ³ μλΆνλ ν
μ€νΈλ€μ λ¨Όμ μ‘κ³ λκ°λ©΄ λλ€.
- κ·Όλ°, ν΄λκ³ λμ 컀λ°ν μκ°μ΄.. μ’ μλκΈ΄ νλ€. ννΈμΌλ‘λ Test λ€μ ν΅κ³ΌνλκΉ λμ΄ μλ‘ μ ν μλλλ‘ ν κ²μ΄λ μκ΄μλ€λ μκ°. νμ§λ§, ννΈμΌλ‘λ 'Pair λ‘ ν κ²μ΄ μλλ°..' νλ μκ°. κ·Έλ₯ Spike λ²μ μ λλ‘ μκ°ν΄λκΉλ.
9.25 (μ) ¶
- λμκ΄ UI λ³κ²½κ³Ό κ΄λ ¨, Test κΉ¨μ§κ² μμ νκΈ°
λ€νν λͺ¨λνκ° μ λμ΄μμκ³ , Test λ€μ΄ μμκΈ°μ neocoin κ³Ό 1002 λ μ£Όλ‘ κΉ¨μ§ ν
μ€νΈλ€μ λ°λ‘μ‘κΈ°λ‘ νλ€. μΌλ¨ λμκ΄λ€μ HTML μ μ»κ³ , Local HTML λ¬Έμμ λν΄ λ°μ΄ν°λ€μ μ μΆμΆν΄λ΄λμ§μ λν ν
μ€νΈλ₯Ό λ¨Όμ 볡ꡬνλ€.
9.3, 9.4 (ν,μ) ¶
- Recommender, lightView, heavyView service μμ±. view μΆκ°.
(κ·Έλμ μμμΌλ μλ νλ‘κ·Έλ¨ μμ±μ Menual Test λ°©λ²μ λ¨Όμ μκ°ν΄λκ³ , νλ‘κ·Έλλ° μμ±μ νλ μμΌλ‘ μ κ·Όν¨)
- λμμ μκ°μ€μΈλ°, μΌμ’
μ Facade λ₯Ό λ§λ€κ³ , Controller μ κ° service λ€μ Facade λ§ μ΄μ©νλ μμΌλ‘ μμ±νλ©΄ μ΄λ¨κΉ. κ·Έλ κ² νλ€λ©΄ Facade μ λν΄μ Test Code λ₯Ό μμ±ν μ μμΌλ¦¬λΌ μκ°. λλ, Servlet λΆλΆμ λν΄μλ AcceptanceTest μ κ΄μ μΌλ‘ μ κ·Όνλ κ²μ μκ°. λλ, cactus μ λν΄μ μμλ΄μΌ νλ €λ.. --1002
- λ¬Έμ μ λΆλͺμΉκ³ , κ·Έ λ¬Έμ κ° ν΄κ²°λ κΊΌ κ°μ΄ 보μ΄λ©΄μ, μμ¬μμ¬ λ²ν°λ©΄ λ΄μΌ ν΄κ²°ν΄μΌ νλ€. --μλ―Ό
8.24(ν ) ¶
- Recommender λΆλΆ μλ£ (μ°κ΄λ
~cpp BookMapper
,~cpp UserMapper
μ κΈ°λ₯ μμ± μλ£)
8.23(κΈ) ¶
- Object-Database μ°λμ μν
~cpp BookMapper
,~cpp UserMapper
μμ±
Object-RDB Mapping μ λν΄μλ PatternsOfEnterpriseApplicationArchitecture μ λμ¨ λ°©λ²λ€μ μ½μ΄λ³΄κ³ κ·Έμ€ Data Mapper μ κ°λ
μ μ μ©ν΄λ³΄λμ€. Object μ DB Layer κ° λΆλ¦¬λλ λλμ μ’κΈ΄ νλ°, μ²μ ν΄λ³΄λκ²μ΄μ¬μ κ·Έλ°μ§ μλΉν 볡μ‘νκ² λκ»΄μ‘λ€. μΌλ¨ μ²μμ Data Gateway μ λμ κ°λ²Όμ΄ κ°λ
μΌλ‘ μ κ·Όνλ€, Data Mapper λ‘ κΊΌλ΄κ°λκ² λμμκΉ νλ μκ°.
DB μ―€ λκ³ λλ, Test λ€μ 보νμ μ€μ΄λκ² νλ€μ΄μ§λκ² κ°λ€. (κ·Έλ¦¬κ³ ..; μ¬λλ€μ΄ μ μμ€μ΄λ €κ³ νλκ² κ°λ€;) TDD κ° μ’ λ νμ±νλλ¬λ©΄ νκ΅ μ»΄ν¨ν°λ€μ΄ λ λΉ¨λΌμ ΈμΌ νλ€κ³ κ°μΈμ μΌλ‘ μκ°μ€ -_-;
DB μ―€ λκ³ λλ, Test λ€μ 보νμ μ€μ΄λκ² νλ€μ΄μ§λκ² κ°λ€. (κ·Έλ¦¬κ³ ..; μ¬λλ€μ΄ μ μμ€μ΄λ €κ³ νλκ² κ°λ€;) TDD κ° μ’ λ νμ±νλλ¬λ©΄ νκ΅ μ»΄ν¨ν°λ€μ΄ λ λΉ¨λΌμ ΈμΌ νλ€κ³ κ°μΈμ μΌλ‘ μκ°μ€ -_-;
8.21(μ) ¶
- Recommender ꡬνμ€ User ν΄λμ€μ ꡬν
~cpp UserTest
ꡬν
~cpp RecommenderTest
μ ν μ€νΈ μνμ€
- AcceptanceTest login , view page ν
μ€νΈ μΆκ°

μ΄μ°¨νΌ AcceptanceTest κ΄λ ¨ μ½λμ κ²½μ° Server νλ‘κ·Έλ¨κ³Ό λ
립μ μΌλ‘ λμκ°κΈ°μ 그리 κ±±μ νμ§ μμλ μκ΄μμλ―. μμ€λ CVSμ μ¬λ €λκ³ μμΌλ μκ°μμλ νμΈνμ
λ μ’μλ―. --1002
- λͺ©μ리λ₯Ό ν€μΈλλ λ λ―Όκ°ν¨μ΄ μμ λ€. μ²μ λͺ©μ리λ₯Ό ν€μ°λ€κ° λ€μ μκ·Ήμ μΌλ‘ λλ €κ³ ν λ μμ λκ³ Pair μ리μ μνλ μλ―Όμ΄λ₯Ό λ³Όλ λ΄κ° μ΄λ¦°μμ΄κ°λ€λ μκ°λ ν΄λ³Έλ€. λ μ€μ²λ³΄λ€ λΆνμ΄ μμλ 1002μ΄κΈ°μ -_-; μμ¬μ΄μ μ΄λΌλ©΄, μμ€μ Complexity κ° λμμ§μλ‘ Test μ 보νμ μ€μ΄λλ° νλ€λ€λμ . μ€λ μ°½μ€μ΄νκ³Ό Pairλ₯Ό νλμ€. Observer μ μν μΌμλ‘ μ λ°μ μΈ μ²λ€μ μ κ΄μ°°νκ³ Driver λ₯Ό λμμ€μΌ νλ€λ μ μ λμκΈ°λ©΄μ.
- λ΄κ° μλͺ»νλ©΄ μ§μ μν΄μ€ λ μ€λ μ΄κ²
--μλ―Ό
- λ΄κ° μλͺ»νλ©΄ μ§μ μν΄μ€ λ μ€λ μ΄κ²
- Python μ ClientCookie λͺ¨λμ νΈλ¦¬ν¨μ μ¦κ±°μνλ©°. Redirect, cookie μ§μ. μ΄κ±΄ web browser AcceptanceTestλ₯Ό μν λͺ¨λμ΄λ μκ°μ΄ νν! --1002
8.13(ν) ¶
- SimpleSearch -> ViewBook μΌλ‘μ ꡬν
- SearchListExtractorRemoteTest μΆκ°
- λ°κ²¬λ λ¬Έμ λ μ¬ν μΈμ κΉμμ
- λμκ΄μ 303건 μ΄κ³Ό 리μ€νΈλ₯Ό νκΊΌλ²μ μμ²μμλ μ체μ μΌλ‘ κ²μ리μ€νΈ λ°μ΄ν°λ₯Ό 보λ΄μ§ μλλ€. κ³Όκ±° cgiλΆμμ maxdisp μΈμμ λ§μ΄ λ£μμ μλ€κ³ λ€μλ μ μ
κ²¬μ΄ κ²°κ³Ό μμΈ‘μ μμ©νκ² κ°λ€. μ΄κΈ°μλ local μλ²μ Java JDKμͺ½μμ μλ£λ₯Ό λ°λ λ²νΌμμ νκ³ λ¬Έμ μΈμ€ μμλλ°, ν
μ€νΈ μμ±, Webμμ μμμ
ν
μ€νΈ κ²°κ³Ό μκ² λμλ€. κ΄λ ¨ ν΄λμ€ SearchListExtractorRemoteTest )
- λͺ©λ‘κ²μμμ κ²μ μ΄λ ₯μ΄λ λ©λ΄κ° μλλ°, λμκ΄μͺ½μ ν΄λΉ ipμ λν μΊμ± κ²°κ³Όμ λνμ¬ λμμλ€.
- λμκ΄μ 303건 μ΄κ³Ό 리μ€νΈλ₯Ό νκΊΌλ²μ μμ²μμλ μ체μ μΌλ‘ κ²μ리μ€νΈ λ°μ΄ν°λ₯Ό 보λ΄μ§ μλλ€. κ³Όκ±° cgiλΆμμ maxdisp μΈμμ λ§μ΄ λ£μμ μλ€κ³ λ€μλ μ μ
κ²¬μ΄ κ²°κ³Ό μμΈ‘μ μμ©νκ² κ°λ€. μ΄κΈ°μλ local μλ²μ Java JDKμͺ½μμ μλ£λ₯Ό λ°λ λ²νΌμμ νκ³ λ¬Έμ μΈμ€ μμλλ°, ν
μ€νΈ μμ±, Webμμ μμμ
ν
μ€νΈ κ²°κ³Ό μκ² λμλ€. κ΄λ ¨ ν΄λμ€ SearchListExtractorRemoteTest )
8.10(ν ) ¶
- λ§μ΄λ리ν°λ¦¬ν¬νΈ λ³΄λ¬ κ°κΈ°~
- Server Refactoring
- Code Review λ‘μ Refactoring μ΄ μ΄μ©λλ€κ³ νλ€μνΌ, Refactoringμ ν΄ λκ°λ©΄μ μ 체 νλ‘κ·Έλ¨μ κ·Έλ¦Όμ΄ μ’ λ μ΄ν΄κ° κ°λ€. νλμ ν΄λΉ νλ‘κ·Έλ¨μ λν΄μ νλ° λ¦¬λ¬μ λμ³€μλ Refactoring μ μλνλκ²λ μ’μ μ λ΅μ΄λΌ μκ°.
- Task λ₯Ό μμ±ν λ Refactoring μ λͺ
μμ μΌλ‘ μ¨ λμΌ νκ² λ€. Acceptance Test μ²λΌ. μ¨λμ§ μμΌλκΉ μμ΄λ¨Ήκ³ μμ£Ό μν΄μ€ κ² κ°λ€. κ·Έλ¦¬κ³ μκ°λ³΄λ€ μκ°μ΄ 걸리λ λ§νΌ. (μ΄κ±΄ Refactoring μ νλ° μ€μ μμ£Ό ν΄μ£Όμ§ μμμμΈκ² κ°λ€. 2μκ°μ λ κ±Έλ ΈμΌλ)
8. 8(λͺ©) ¶
- DB Schema κΆλ¦¬ & Recommendation System μ DB λ²μ μΌλ‘ Integration μλ
- Pair μ€κ°μ 1002 λ λͺ©μλ¦¬κ° μ»€μ§λκ° μλ€. νλλ, λ΄κ° λμΉκ³ μμ κ²½μ°μ λν΄ λ€λ₯Έ μ¬λμ΄ μ΄μΌκΈ°λ₯Ό μ λλ‘ μν΄μ€¬λ€κ³ μκ°λλ κ²½μ°. λ 보ν΅μ 1002μ μλͺ»μ λ€λ₯Έ μ¬λμκ² λ λκΈ°κΈ° μν λ°©νΈμΈ κ²½μ°κ° λ§λ€ -_-; (μ°λ¦°λ€; λλ JuNe νμ΄λ Pair ν λ 무방λΉμνμΈ κ²½μ°κ° λ§μμ;) λ, κ°μ΄ 무방λΉμλ€κ° λͺ»λλΌκ³ λμ΄κ° κ²½μ°λΌλ©΄ μν~ νλ©΄μ νλ°νκ² μ§λ§, νλλ₯Ό κ³ μΉκ³ λμ, λ€λ₯Έ μ¬λμ΄ λΉμ°ν λ―μ΄ μ’μ λ°©λ²μΌλ‘ ν΄κ²°ν΄λΌλμ. ("μ μκΉλ μ΄μΌκΈ°μν΄?" "λΉμ°νκ±°μλ."). μΌμ’
μ κ²½μμ¬λ¦¬μ΄λ €λ. μκ³ λ₯Ό μμ΄μΌ νλκ² PairProgramming μ΄μ§λ§, μ¬λ λ§μμ΄ κ·Έλ κΈ°μ λ λ€λ₯Έκ² κ°λ€. μ½λ κΈ°μ¬λμ λν΄μ 보μ΄μ§ μλ κ²½μμ΄ λΆλλ€κ³ ν κΉλ.
- λ΄λͺ©μλ¦¬κ° μ»€μ§κ²½μ°μλ λ€λ₯Έ μ¬λμ΄ μμΆμ΄ λλ€. κ·Έ μ¬λμ΄ μνκ³ μλ€ νλλΌλ. ννΈμΌλ‘λ 'λΉμ μ λ₯λ ₯μ 보μ¬μ£ΌμΈμ'; μμ μ μ½λμ λν΄μ μκΈ° μ΄μΌκΈ°λ₯Ό νμΌλ©΄ νλ μκ°. λͺ©μ리λ₯Ό μ€μ΄κ±°λ, 'νλ² νλ¬κ°λλ‘ ν΄λ΄λΌ' λΌλ μμ μμ μ μκ°μ μ½λμ λΆμΌ μ μκ² λλ―λ‘ μ’μ§ μμ κ²½μ°λΌκ³ μκ°.
- 리λ¬μ΄ κΉ¨μ‘λ€λΌλ λλμ΄ λ€λ. Task λ¨μλ₯Ό To Do List λ¨μλ‘ λ€μ μͺΌκ°λ μ§ν νμν κ² κ°λ€. νμ¬ Task μ¬μ΄μ¦κ° Pair κΈ°μ€ 1μκ°μ΄κΈ΄ νλ°, λ§μ μμ
ν λμλ μκ°μ ν€νκ² μ΄λ€λ μκ°μ΄ λ¬.
- MockObjects λ₯Ό μ΄μ©, Database μ λν΄μ MockObjects Test μ Real DB Test λ₯Ό κ°μ΄ ν΄ λκ°λ³΄μλ€. DB - Recommendation System μ°κ²°μ μν΄μλ RS μμμ object λ€κ³Ό DB μμ Mapping μ΄ νμνλ€κ³ νλ¨, DB Schema λ₯Ό κ°μ΄ κΆλ¦¬ν λ€, Test λ₯Ό μμ±νμλ€. μ΄λ μ΄μ κΈ°μ΅μ λ μ¬λ¦¬λ©΄μ MockObjects Test λ₯Ό μμλ°μμ Real DB Test λ₯Ό μμ±νλ μμΌλ‘ μ κ·Όν΄λ΄€λλ° μ’μ λ°©λ²μ΄λΌ μκ°.
- Martin Fowler μ PatternsOfEnterpriseApplicationArchitecture λ₯Ό μ½μ΄λ³΄λμ€. μ°λ¦¬ μμ€ν
μ κ²½μ° DataMapper μ κ°λ
κ³Ό Gateway μ κ°λ
μ μ μ©ν΄λ³Ό μ μμ κ² κ°λ€. μ μλ Data Object λ₯Ό μ»μ΄λ΄λλ°μ λν΄ μΌμ’
μ MediatorPattern μ μ μ©ν¨. DB λΆλΆκ³Ό μμΌμΌλ‘λΆν° λ°μ΄ν°λ₯Ό μ»μ΄μ¬ λ μ΄μ©ν μ μμ κ² κ°λ€. νμμ κ²½μ°λ μΌλ°μ μΌλ‘ Object - RDB Data Mapping (λλ λ€λ₯Έ OO κ°λ
μ΄ μλ λ°μ΄ν°λ€) μΈλ°, RowDataGateway, TableDataGateway μ κ²½μ°λ₯Ό μ΄μ©ν μ μμκ² κ°λ€.
- TestCase λ§λ€μ΄ λκ²μ μμ λ°μμ, λ€μ λ€λ₯Έ ν
μ€νΈλ₯Ό μν μν€λ κΈ°λ²μ΄ μ λ§ ν₯λ―Έλ‘μ λ€. μ§μ§ μ κΈ°νλ€. μκ°νλ©΄ ν μλ‘ μ κΈ°νλ€.
- λ¬Έν μ 보 νκ³Όμ κ΄λ ¨ μλ£λ₯Ό μμ²μ΄λ κ°μ 보μλλ°, λ λ€λ₯Έ μ§μμ μΈμμ΄ μμμ μμ μμλ€. μλ°±λ
κ° κ΅¬μΆν΄μ¨ μ§μ ν KMμ λλμ μμλ€.
8. 7(μ) ¶
- test κ΄λ ¨ ν¨ν€μ§ μ 리
- test
~cpp TestCase
- tests
~cpp TestSuite
λͺ¨μ
- λͺ¨λ
~cpp TestCase TestSuite
λ λ 립μ μΌλ‘ μ€νν μ μλ€.
- test
~cpp AllLocalTests
λ΄μ
~cpp BookContainerLocalTest
( ν μ€νΈ μμ± μμ, DBμ°λ λΆλΆ μκ°ν΄μΌ ν¨ )
~cpp BookWebLinkerTest
(λμ μμ Amazon, Aladin, Wowbook)
~cpp ViewBookExtractorTest
(~cpp LendBookList
μ μ°κ³νμ¬ ν μ€νΈ μΆκ° )
~cpp AboutLendBookTests
~cpp LendBookListTest
~cpp LendBookTest
8. 6(ν) ¶
νμ¬ μꡬμ¬νμ λ°λΌ
- UserStory μ 리 & Engineering Task μ¬μ μ
μ λ§λ‘ νκ΅κ° μ°λ¦¬λ₯Ό μλμμ£ΌκΈ°λ‘ μμ νκ² κ°λ€. λμκ΄ μλΉμ€ κ°νΈλλ€κ³ νκ³ -_-(μ΄λ κ³§ μ κ·ννμ μ΄ λΆλΆκ³Ό κ΄λ ¨νμ¬ μ¬μμ±νλΌλ λ»μ΄λ;) κ²λ€κ° λ€μμ£ΌλΆν° μλ¦¬λ² μ΄ν° μ리 λ€μ΄κ°λ¨λ€. κ²½λΉμμ μ¨μκ² 5μΈ΅ μ νΌ μ΄μ΄λ¬λΌκ³ λΆννλκ²μ λν΄ λ λμΉλ₯Ό λ΄μΌ νλ€λ λ»μ΄ λλ€; μΌμ΄;
Requirements always change (from DesignPatternsExplained). κ²°κ΅ μ¬λμ΄ κ°μ
λ μΌμ΄λ μ€μνκ³Ό λ€λ₯Όλ° μμ.
--sun
.png)
8. 5(μ) ¶
DB Mock Object ADO μμ μμ±. (For XpWorkshop)
μλ―Όμ°μ ν¨κ» ADO λ₯Ό μ΄μ©ν λΆλΆμ λν΄ DB Mock Object μμ λ₯Ό μμ±νλ€. μ μ μλ―Όμ΄κ° DB Layer λ₯Ό λμ§ μκ³ , ADO Frameworkλ₯Ό κ±°μ μΉννκ²λ μμ±νλ€κ³ νλ¨, μ΄λ²μλ λ΄λΆμ μΌλ‘ ADOλ₯Ό μ°κ±΄ κ°μ§ λ°μ΄ν°λ₯Ό μ°κ±΄ μ κ²½μ°μ§ μλ λ°©ν₯μΌλ‘ κ°μ΄ μμ±νμλ€. ADO λ κΈ°μ‘΄μ 1002 κ° μμ
νλ νλ‘κ·Έλ¨μμ μΌλΆ μ¬μ©ν μμ€λ₯Ό κ³ μ³μΌλ€.
5μκ° μ λ 걸리긴 νμ§λ§. -_-; Mock Object κ° μ΄λ€ κ²μ΄λ€μ λν΄ νκ±Έμ λ μ΄ν΄ν μ μλ κ³κΈ°κ° λμλ€κ³ μκ°.
- STL μ μ°λ©΄ νΈλ¦¬νκΈ΄ νλ°, νμ€ν νκ΅μ»΄ν¨ν°μμ μ»΄νμΌμ΄ λ리긴 νκ² κ°λ€λ; (νκΈ΄, μ°λ¦¬κ° map μ vector κ²ΉμΉ ννλ‘ μμ±μ νμΌλ -_-..) κ·Έλλ STL Container λ§ μ΄λμ λ μ΄μ©ν΄λ κΈ°μ‘΄μ μμ C++ μ μ΄μ©ν λλ³΄λ€ ν¨μ¬ νΈνλ€λ μ μ΄ μ¦κ²λ€. λ§μΌ mock object λ₯Ό STL μ΄λ MFC Collection μμ΄ κ΅¬ννλ€κ³ μκ°νλ€λ©΄? 그리 μμνκ³ μΆμ§ μμ μ λμ΄λ€. (νΉν DBμμ ) κ·Έλ¬λ©΄μ λλΌλμ μ΄λΌλ©΄,
GJκ° λμ
λλ©΄ IBMμ Incremental Compileλ 무μ©μ§λ¬Ό μλκΉ. --μλ―Ό
7. 25(λͺ©) ¶
- login λΆλΆ μμ±
- Python Prototype μ Java λ‘ λ°κΎΈκΈ°
- μμ μ μΌν λ μλͺ»νμλ μ€μλ₯Ό λ€μνκ³ μμΌλ, λ°λ‘ κΈ°νμμμ λνμ΄λ€. Iteration μ΄ λλ λλ§λ€ κ°λ°μκ° λ¨Όμ κΈ°νμ λλ κ³ κ°μκ² μ§νμν©μ μ΄μΌκΈ°ν΄μΌ νλ€. νΉν ExtremeProgramming μ κ²½μ° Iteration μ΄ λλ λλ§λ€ Story μ§νλμ λνλ₯Ό ν΄μΌ νλ€. Iteration 3 κ° λμ΄κ°κ³ μμ§λ§ νμ λ¨Όμ μ νλ₯Ό ν μ¬λμ΄ λꡬμΈκ°λΌκ³ 묻λλ€λ©΄ ν λ§μ΄ μμ΄μ§λ€. μ΄λ² Iteration λ§νΌμ λ¨Όμ μ ννμ;
- 'Iteration 3 μμ 무μμ λμκ³ λ¬΄μμ μλμλκ°?' μ§κΈ Iteration 3 μͺ½ Task κ° μμ§λ μ 리 μλμλ€. Task μ 리λ₯Ό νμ§ μκ³ Iteration 3 λ₯Ό μ§νν μ μ λ¬Έμ μ΄κΈ΄ νλ€. (λΉλ‘ ꡬλλ‘ κ°λ°μλ€λΌλ¦¬ μ΄μΌκΈ°κ° λμλ€ νλλΌλ. μ λλ‘ μ 리λ₯Ό νλ€λ μλ―Έμμ.) Iteration 3 Task μ 리 νμ. κ·Έλ¦¬κ³ λλ¨Έμ§ Iteration μ λν Task λ€μ λν΄μ μμΈ‘ν μ μλκ²λ€ (μ¬μ¬ λμ 보μ΄λ)μ λν΄ μΆκ° νμ.
- μμ΄μ€ν¬λ¦Ό μλ¨Ήμμ΄μ. κ°μ¬κ°μ¬
- μ΅κ·Όλ€μ΄μ μ ν κΈμ μ°κ³ μμ§ μλ€. μλ λ‘κ·Έλ λμ§νΈμ΄λ .. μ±
μ 보면μλ μ μμ κ΅κ°μ μ»μ λ§ν λΆλΆμμ λ²
μ°¨μ€λ₯΄κ³ , 머리μμΌλ‘ ν΄λΉ μκ°μ 10~15λΆ κ°λ μ 리ν μ΄ν κ·Έκ²μΌλ‘ λμ΄λ€. μΌμ’
μ μ¬λΌνμΌκΉ.
- λ΄μΌκΉμ§ μ νΌμ λ€νΈμμ΄ μλ κΉ κ±±μ μ΄λ€. μ€λμ μΌμ λμ ν μμΈ‘ν μ μμλ μΌμ’
μ μ¬κ³ μ΄λ€. λλΉμ λ κ°μ§μ μ΄λμμ μμλμμκΉ μκ°ν΄ λ³Έλ€. MIB Programmerκ° λκ³ μΆμ§λ§ κ·Έλ§μ μκ°μ΄ λΆμ‘±νκ²μ΄ νμ€μ΄λ€.
- μμ΄μ€ν¬λ¦Όμ ...
7. 22(μ) ¶
- Iteration 2 μ λν΄ λ°λ¦° κ² λ§μ μ§ν.
- Iteration 3 μ λν Planning
- νκ΅μμ PairProgramming μ΄ μ μ°©λ μ μμκΉ. Pair λ₯Ό νλ μ€ λνκ° μ’ μ»€μ Έμ κ·Έλ°μ§ μ λλ¨Έμͺ½μ μ λ°°κ° μ£Όμλ₯Ό μ£Όμλ€. λ.. λ³λͺ
거리μΌμ§ λͺ¨λ₯΄κ² μ§λ§, μμ μ λ°λ‘ λ€μμ κ²μμ νκ³ μλ μ¬λμ μμ μ μΌμ λ°©ν΄κ° λμ§ μκ³ , μ λ©λ¦¬μ κ°λ°νλλκ³ 'λ λλ λλ€' μ μμ μ μΌμ λ°©ν΄κ° λλ€.
- ννΈμΌλ‘ λ λλ μκ°μ μ무리 μ°λ¦¬κ° 곡λΆλ₯Ό νλ€ μν€μ λ¬Έμλ₯Ό λ¨κΈ°λ€ ν΄λ, κ²°κ΅ μ μ¬λμκ²λ 'κ·Έμ μ λλ€ μκΈ°λ§μ‘±μ μν νμ' κ·Έ μ΄μμ΄ μλλΌλ κ². νΌμμ€μμ κ²μμ νλ νλ‘κ·Έλ¨ κ°λ°μ νλ κ·Έμ 'νμΈμ νλ' μ΄μμ μλ―Έκ° μλ€λ λλμ΄ λ€κ³ λλ μκΈνΌμ§λ€. μκ° μΈμ»₯ νλ λ§μμ μμΌλ‘ 'μ°¨λΌλ¦¬ μκ·Ή μ’ λ°μ보μκ³ κ±°κΈ° κΉλ¦° μ€λ½ μ’ μ§μ보μμ§. μ μ₯' λΌκ³ μμ΄λμλ€. (κ°μλ‘ κ±΄λ°©μ§ λμμ Έκ°λ 1002. μμ§ν μ’ νκ° λμ리..) κ°μΈμ μΌλ‘ νΌμμ€μ΄ μ¬λλ€μ΄ μλ‘ κ°λ°μ΄λ 곡λΆλ₯Ό μν΄ μλλ²
μ ν μμ νλ€μ΄ λ§μ΄ μκ³ , κ·Έ λΆμκΈ°μ λ€λ₯Έ μ¬λλ€μ΄ μ‘°κΈμ΄λλ§ ν©μΈλ ΈμΌλ©΄ νμ§λ§. κ·Έλ¬ν νλ€μ λ λ ν¬νΈκ° λμ€λμ§ ννλ‘μ νΈκ° λμ€λμ§ ν΄μΌ λ§λ€μ΄μ§λ €λ.. κ±°μ°Έ μμ² μ¬λ―Έλ λκ² κ΅°. μμ μ΄μμΌ λΏμ΄λ €λ. (νμ΄νΈλ³΄λ νΌμ§λ§ν κ²μ΄ μμ΄λ μ°λ¦¬κ° μκ³ λ¦¬μ¦ κ΅¬μνλλκ³ μ¨λμ κ²λ€μ΄ 3-4μΌμ§Έ κ·Έλλ‘μ΄κ΅°.)
-- 1002
7. 20(ν ) ¶
- Iteration 2 μ λν SpikeSolution κ³μ μ§ν
- μ€κ° μκ³ λ¦¬μ¦λΆλΆμ λν΄μ νΌλμν©μ΄ μκ²Όλ€. μ²μ TDDλ‘ μκ³ λ¦¬μ¦μ λμμΈν λ view / light view / heavy view μ λν pointλ₯Ό κ°μ κ°λ
μΌλ‘ μ κ·Όνμ§ μμλ€. μ΄λ₯Ό κ°μ κ°λ
μΌλ‘ μ κ·Όνλ €λ κΈ°μ‘΄μ μκ³ λ¦¬μ¦μ΄ λ§μ§ μμκ³ , μ΄λ₯Ό λ€μ μκ³ λ¦¬μ¦μ λν΄ κ²μ¦μ νλ €λ μ°λ¦¬μ μκ³ λ¦¬μ¦μ κ·Έ μνμ λͺ¨λΈ & μ¦λͺ
μ΄ λͺ
ννμ§ μμλ€. μ°λ¦¬μ μκ³ λ¦¬μ¦μ΄ ν΄λΉ μ±
λ€κ°μ κ΄κ³μ±μ ννν΄μ€λ€λΌκ³ μ°λ¦¬κ° μ£Όμ₯μ νλλΌλ, κ·Έκ²μ μ¦λͺ
νλ €λ ν λ§μ΄ μκΈ°μ§ μμλ€. μνμ΄λΌλ λ
μμ΄ μΈμ μ΄λ»κ² λ±μ₯ν΄μΌ νλκ°μ λν΄ λ€μκΈ λλμ΄ μ€κ² λμλ€.
- PyUnit μ ok.
7. 19(κΈ) ¶
- Iteration 2. Recommendation System μ λν SpikeSolution
μκ³ λ¦¬μ¦μ λν SpikeSolution μ λν΄μλ, μΌλ¨ μ°μ΅μ₯μ λͺ
ννκ² μκ³ λ¦¬μ¦μ μΈμ΄λ€ νλ‘κ·Έλλ°μ λ€μ΄κ°λ κ²μ΄ μ’κ² λ€κ³ μκ°ν¨. κ·Έλ¦¬κ³ μκ³ λ¦¬μ¦ λμμΈμμ Matrix μ Graph λ±μ λͺ¨λΈμ κ·Έλ €μ μκ°ν΄λ³΄λ κ²μ΄ ν¨μ¨μ μ΄κ² λ€λ μκ°μ΄ λ€μλ€.
- Iteration 1 μμ λͺ»ν μΌλ€μ Iteration 2 λ‘ λκΈΈλλ Iteration 1 μμ Task λ₯Ό Iteration 2λ‘ λ겨μ€μΌ νλ€. Iteration Planning μ μΌμ’
μ Time-Box μ΄λ€.
- AcceptanceTest κ° μμ±λκ³ λλ©΄μλΆν°λ λ§€μΌ AcceptanceTest λ₯Ό λλ €μ μ°κΈ°κ° λλμ§(?) νμΈν΄λ³Έλ€. (M$μμμ ν
μ€ν
μ²λΌ..) λ§€μΌ AcceptanceTest λ₯Ό λλ €λ΄μΌλ‘μ μμ μ μμ
μ λν΄μ κ·Έ κ²°κ³Όμ λν 보μ₯μ ν΄λλ€.
- AcceptanceTest μ λν΄μλ Customer κ° μ΄ν΄ν μ μλλ‘ μ½λλ₯Ό μμ±νλ€. κ°κΈμ μ΄λ©΄ High-Level λ‘. κ°λ¨ν μ€ν¬λ¦½νΈμΈμ΄λ₯Ό μμ±νλκ²λ λ°©λ²μ΄ λκ² λ€.
- Iteration 1 μμ 9 Task points λ₯Ό μλ£νλ€λ©΄, Iteration 2 μμλ 9 Task points λ₯Ό λ§‘λλ€.
7. 18(λͺ©) ¶
- Iteration 1 μμ λͺ»ν μΌλ€ λ§μ ν¨. AcceptanceTest μμ±.
μ΄λ€ νκΈ λ¬Έμ ?
λκ°μ μ½λλ₯Ό Jython μΌλ‘ λ릴 κ²½μ° POST λ‘ λκΈ΄ νκΈ keyword κ° μ λλ‘ λμ΄κ°μ§ μμμ. μΈμ½λ©μ λ°κΏμ£Όλ©΄ λ κ² κ°μλ° λͺ»μ°Ύμμ;--1002
- Jythonμ κΈ°λ³Έμ μΌλ‘ λͺ¨λ μ€νΈλ§μ μ λμ½λλ‘ μ²λ¦¬ν¨. λ°λΌμ, ν΄λΉ μ€νΈλ§μ euc-krλ‘ μΈμ½λ©ν λ€μμ νλΌλ―Έν° μ λ¬μ νλ©΄ μ λλ‘ λ¨. μΈμ½λ©μ λ°κΎΈκΈ° μν΄μλ νμ΄μ¬ euc-kr μ½λ±(pure python λ²μ Ό)μ κΉκ³ ,
~cpp 'νκΈ'.encode('euc-kr')
μ μ°κ±°λ, μλλ©΄ μλ°μ String.getBytesλ~cpp OutputStreamWriter
λ±μ μ°λ©΄ λ κ²μ. --JuNe
- λμκ°λ νκ²½μ κΈ°λ³Έ μΈμ½λ©μ μ€μ ν΄μ£Όλ©΄ λ λ― ν¨. Jythonμ΄ μλ°λ‘λ ν΄λμ€λ₯Ό λ°λ‘ μ΄λ€λ, Writer κ°μ²΄λ₯Ό μ»μλ μΈμ½λ© μ€μ μ ν΄μ£Όλ©΄, ν΄λΉ Writerλ‘ λΉ μ Έλκ°λ λ΄μ©μ μ€μ λ μΈμ½λ©μ μ μ©λ°μ. λ°μλ€μΌλλ λ§μ°¬κ°μ§λ‘, POSTλ‘ λμ΄μ¨ κ°μ λ§€λ² μΈμ½λ© ν μλ μκ² μ§λ§, 그보λ€λ, μμ€ν
μ μ§μ λͺ
μν΄μ€μ μΌκ΄μ μΌλ‘ λ°λλ λ°©μμ μΆμ²ν¨. μλ₯Όλ€μλ©΄, contentType="text/html; charset=euc-kr" νλμμΌλ‘ μ€μ ν κ²½μ°, μ»μ΄μ€λ κ°λ€μ euc-krλ‘ μΈμ½λ©λ κ°μ μ»μ΄μ¬ μ μμ. --μ΄μ μ°
- Tareμ¨κ»μ μμ
νλ λͺ¨μ΅μ λ³΄κ³ μΆλ€λ©΄μ μ€μ
¨λ€. μμ
νλ λμ μ°λ¦¬κ° κ±°μ λνλ₯Ό κ±Έμ§ μκ³ μ°λ¦¬λΌλ¦¬ κ³μ μμ
μλ§ λͺ°λνμμλ λΆκ΅¬νκ³ , λ€μμ μμ
νλ λͺ¨μ΅μ λκΉμ§ μ§μΌλ³΄μλ λͺ¨μ΅μ 보면μ ννΈμΌλ‘ μ κΈ°νλ€. λ€λ₯Έ μ¬λλ€μ΄ μ΄λ ν κ³Όμ μΌλ‘ μμ
νλκ°λ₯Ό μκΈ° μν΄ μ λ κ² κ΄μ°°νλ μ¬λμ΄ μμκΉ? μ΄λ ν μ»μμ μ»μΌμ
¨μμ§ λͺ¨λ₯΄κ² μ§λ§. κ·Έμ μμΈλ μ°Έ μΈμμ μ΄μλ€.
- Iteration 1 μμμ κ²°κ³Όλ₯Ό μ€λ 보μ¬λλ¦¬κ³ Iteration 2 μ λν νμλ₯Ό ν΄μΌ ν λμμλ λΆκ΅¬νκ³ , μ§μ μ€μ
¨λλ° λ³λ€λ₯Έ κ²°κ³Όλ¬Όμ 보μ¬λ€μ΄μ§ λͺ»ν΄μ μ°Έ μ£μ‘νλ€. μ΄λ²μ£Ό MT κ° μμλ€ νλλΌλ, λ³λͺ
μ΄λ μμ. --1002
7. 12(κΈ) ¶
- HTML λ¬Έμ κ°μ Έμ€λ ν΄λμ€ (Spider) μμ±
- HTML Parsing
- λμκ΄ κ²μ κ²°κ³Ό Object λ‘ μΆμΆ, λ€μ HTML μμ±.
μ€κ°μ μλ―Όμ λ©λͺ¨μ₯μ μ΄μκ³ ..... λΆλΆμ λν΄ μ½λλ₯Ό μ μλ€.
κ·Έλ¦¬κ³ 1002λ λ€μκ³Ό κ°μ΄ Java Pseudo code λ₯Ό μ μλ€.
~cpp BookSearcher bs = new BookSearcher(); bs.search(keyword); bookList = bs.getSearchedBookList();
30-40λΆκ°μ μλ‘κ°μ νΌλκ³Ό μΈμ(?)λμ μλ‘ λ¬΄μμ μν΄ μ΄λ»κ² μΌμ νλ €κ³ νλμ§μ λν΄μ μ΄μΌκΈ°λ₯Ό νκ³ , κ²°κ΅ μλ‘ μ κ·Ό μ€νμΌμ΄ λ¬λμΌλ©°, μλ‘ μκΈ°κ° νλ €κ³ νλ μΌμ λν μλλ₯Ό λ°νμ§ μκ³ 'λΉμ°ν μλ‘ μκ³ μλ λ―' μΌμ μμν κ²μμ μκ² λμλ€. μλ‘λ₯Ό μ μκ³ μλ€κ³ μκ°νκΈ°μ μ€νλ € λΉ μ§κΈ° μ¬μ΄ λ¬Έμ μ΄λΌ μκ°λλ€.
μνΌ, μ΄ν λ€μ μ½λ κ΅¬μΆ λ°©λ²μ λν΄μ μΌλ¨ μ΄μΌκΈ°λ₯Ό νμκ³ , (μ¬κΈ°μλ μΌλ¨ μλ‘ ν©μνμ 1002 μ€νμΌ μμΌλ‘ μ§ννλ€. ν΄λΉ ν΄λμ€κ° μ΄μ©λμ΄μ§λ λͺ¨μ΅μ λ¨Όμ μκ°νκ³ , μλ리μ€μ λ°λ₯Έ μ½λμ λΌλλ₯Ό λ§λ€μ΄κ°λ λ°©μ) κ·Έ μ΄νλ‘λ μ€νλ € μ§νμ΄ λΉ¨λΌμ‘λ€.
- CRC μΈμ
μ νλ μ€κ°μ νΌλμ λΉ μ‘λ€. ResponsibilityDrivenDesign μ μ μκ³ μμλ€κ³ μκ°νλλ° μ΄λ μ λμ§ μμλ€.
Client (ν΄λμ€ μ΄μ©μ) λ Library μκ² keyword λ₯Ό λμ§λ©° κ²μμ μμ²νλ©΄, Libraryλ κ·Έ keywordλ₯Ό μ΄μ©, κ²μνμ¬ Client μκ² λλ €μ€λ€.
νμ§λ§, μ€μ λ‘ Library λ΄λΆμμλ λ§μ μΌλ€μ΄ μλνλ€. μ¦, keyword λ₯Ό ν΄λΉ HTTPμμ GET/POST μ€νμΌλ‘ λ°κΏμ€μΌ νκ³ (μΌμ’
μ Adapter), μ΄λ₯Ό HttpSpider μκ² λκ²¨μ£Όκ³ κ·Έ κ²°κ³Όλ₯Ό νμ±νμ¬ κ°μ²΄λ‘ λ§λ λ€ Client μκ² λλ €μ€μΌ νλ€.
μ¦, RDD λ₯Ό μν CRC μΈμ
μ€ κ³μ κ·Έ ν΄λμ€λ€μ μΆμν μ λλ₯Ό λκ³ μλ‘ ν΄λμ€λ€μ μΆμΆν΄λ΄λλ° μ΄λ €μμ κ²ͺμλ€. ('μ©μ΄λ μ΄λμ λ μΆμνλ₯Ό μμΌμΌ ν κ²μΈκ°?', 'λ΄λΆ ꡬν μμ€ν
μ΄ κ°κΈμ μ΄λ©΄ λλ¬λμ§ μλ κ²μ΄ μΌλ°μ μΌλ‘ μ’μ λμμΈμ΄λΌκ³ νλκ² κ°μλ° λ§μ μ°λ¦¬κ° BottomUp μ νμ¬ λ½μλΈ λμμΈμ μ΄λ―Έ μ΄λ¦μ΄ 'HttpSpider' λ± μ΄κ³ ..' λ±λ±)
μ΄λ»κ² 보면 λ λ κ°μ 무μμμ μΈ 'Design Evaluation' μ λν κ°λ°κ΄λ
μ΄ μλμμκΉ νλ μκ°λ ν΄λ³Έλ€. (μΌμ’
μ PairPressure μΌμ§λ;) --1002
CRCκ° μ μΆμΆλμ§ μμλλ μ°¨λΌλ¦¬ UserStoryλ₯Ό λ°λΌκ°λ©΄μ ν΄λμ€λ₯Ό λ§λ€κ³ , κ±°κΈ°μμ λ€μ CRCλ₯Ό μκ°ν΄ 보λ λ°©λ²μ΄ μκ° μ μ½μ νλͺ
ν κ²μ΄λΌκ³ μκ°λλ€. κ°μ²΄ μ§ν₯ μ νλ‘κ·Έλλ°μ μΆκ΅¬ν΄μ¨ κ²°κ³Ό, Scenarioλ, UserStoryλ₯Ό λ°λΌκ°λ©° μ½λ©νλ©΄μ μλ§μ ν΄λμ€λ€μ΄ μ±
μμ λ°λΌμ μ겨λλ κ²μ 보면μ μμ° μ€λ¬μκ³Ό, μ½κ° μμν¨ λ§μ Έ λ€μλ€.
μλλ©΄, λ°λΈμ€ μΊ ν κΈμμΌ μκ°μ΄ λλκ³ λμ 7μΈ΅μμ μμ²μ΄μ UserStoryλ₯Ό λ°λΌκ°λ©° λ§λ€μ΄μ§ RandomWalk2 CRCμ λͺ¨μ΅μμλ λ¨ 3κ°λ§μ ν΄λμ€λ§μ΄ μ‘΄μ¬νμλ€. νμ§λ§, UserStoryλ₯Ό λ°λΌκ°λ©΄μ μμ€ μμ€μ μ½λ©μ νλ©΄ λ λ§μ ν΄λμ€λ‘ λΆνν κ²μ κΈ°λνλ€. μ¦, μ½λ©μ νλ©΄ μ΄μ©μμμ΄ Layerμ μ΅ νμκΉμ§ λ΄λ €κ°μ λ°μ μμΌλ¦¬λΌκ³ λ³Έλ€. μ κ·ΈλΌ λ¬Έμ λ λ μ΄μ΄ μΌκ²μ΄λ€. λ€νν νμ¬ μ½λ©λ λΆλΆμ μ λΆ logicμ λΆλΆμΌλ‘ μ·¨κΈνκ³ μμ§λ§, logic λ΄μμ λ€μ λ μ΄μ΄λ‘ λλμ΄μ μΈλΆμμ μ κ·Όν μ μλ μΈμμ μλ μΈμλ‘ λλμ΄ μ ΈμΌ ν κ²μ΄λ€. μ¬κΈ°μ μ μ κΈ°μ΅λλ λ§
ObjectWorld μ μ μΈλ―Έλμμ μν€ν
νΈ μ€κ³μλ(Architector) μμ€λ₯Ό κ°μ§κ³ λμμΈμ μκ°νλ μ¬λμ΄ μλλΌ, λμμΈ(μ€νμΌλ‘ μ μλ)μ λ³΄κ³ λμμΈ(μμ μ νμ¬μ λ§λ)μ λ§λ€μ μλ λ₯λ ₯μ κ°μ§ μ¬λμ΄λΌκ³ λ§νμλ€.
μ°λ¦¬κ° μ²μ λ§μ€μ΄λ λΆλΆμ CRCκ° κ·Έλ° μΌμ΄μ€λΌκ³ μκ°λλ€. μμ€ κΉμ§ μ κ·Όνμ§ μμ체, Layer-Tierλ₯Ό μκ°νλ©΄μ μ±
μμ λΆμ¬ν λ, λκ°μ§ μλ μ§λμ λ΅λ΅ν΄ νλ©° κΊΌλΈ λ©λͺ¨μ₯μ΄ μ¬λ―Έμλ κ²°κ³Όλ₯Ό κ°μ Έλ€ μ£Όμλ€. λ€μ κ°μ μν©μ΄ λλ©΄ μ€νΈλ μ€λ ν¨μ¬ μ€μ΄ λ€κ²μΌλ‘ μκ°νλ€.
--μλ―Ό
λ©λͺ¨μ₯μ μ°λ©΄μ μ κ·Ό λ°©λ²μ΄ μμ λ¬λλ€λκ²λ μλ©΄μλ‘ μ¬λΌμ€κΈ΄ νμΌλ; --1002
λ§μ§λ§μΌλ‘ μμ²μ΄μ μκ²¬μ΄ λ¨Όμ μ¬λΌμ€κΈΈ κΈ°λ€λ¦° λλ λμλμ΄λ€. ννν--μλ―Ό
- UserStory μ μ¬μ©μ μλ리μ€λ₯Ό νΌμ©ν΄μ μ΄ κ² κ°μλ°, UserStory Page λ₯Ό μ°Έμ‘°.
- UserStory μ Scenario μΌλΆλ¬ νΌμ©ν΄μ μΌλ€. μ€μ λ‘ μ°λ¦¬λ λλ€ μ΄μ©νλ€κ³ μκ°νκΈ° λλ¬Έμ νΉλ³ν ꡬλΆν μκ°μ μνμ --μλ―Ό
- 'μΌλΆλ¬' μΈκ°. ꡬνλΆλΆμ΄ '무μμ νκ³ μλ' μ λν΄ 'μ΄ Storyλ₯Ό νκ³ μλ€' λΌκ³ λ μ΄μΌκΈ°ν μ μμ΄λ, μ°λ¦¬κ° μ€μ coding ν λ μ΄μ©ν건 User Scenario μ λ§μΆκ²μ. UserStory λ λ§ κ·Έλλ‘ 'Target' μΌ λΏμ΄λΌ μκ°νλλ°. μ΄λ»κ² 'μ΄μ©' νμ§? --1002
- 'μΌλΆλ¬' μΈκ°. ꡬνλΆλΆμ΄ '무μμ νκ³ μλ' μ λν΄ 'μ΄ Storyλ₯Ό νκ³ μλ€' λΌκ³ λ μ΄μΌκΈ°ν μ μμ΄λ, μ°λ¦¬κ° μ€μ coding ν λ μ΄μ©ν건 User Scenario μ λ§μΆκ²μ. UserStory λ λ§ κ·Έλλ‘ 'Target' μΌ λΏμ΄λΌ μκ°νλλ°. μ΄λ»κ² 'μ΄μ©' νμ§? --1002
- UserStory μ Scenario μΌλΆλ¬ νΌμ©ν΄μ μΌλ€. μ€μ λ‘ μ°λ¦¬λ λλ€ μ΄μ©νλ€κ³ μκ°νκΈ° λλ¬Έμ νΉλ³ν ꡬλΆν μκ°μ μνμ --μλ―Ό
- μμ€ μμ€ μ½λ©μ λ λ§μ ν΄λμ€λ€μ΄ λΆνλλ μ΄μ λ CRC μ€ ν΄λμ€μ ν΄λμ€ κ° λνλ₯Ό ν λ λκΈ°λ κ°μ²΄λ₯Ό λ°λ‘ νμνμ§ μμΌλκΉ. (μ°λ¦¬κ° 7μΈ΅μμμ RandomWalk2 보면 Class μ Class κ° λνλ₯Ό μν ν΄λμ€κ° 4κ°μ―€ λ μμ)
- 4κ°λ₯Ό μ΄λ»κ² ꡬνν μ§ μκ° μνκ²μΌλ‘λ μ΄λ―Έ classμ μΆμΆμ 3κ°λΌκ³ μκ°ν¨. κ·Έλ μ§ μκ³ μμ€ μμ€μ΄λΌλ©΄ μ λΆ λ€ μΆμΆνκ³ κ·Έλ μ§ μμ건 λ€λ₯Έ λ°©μμΌλ‘ νκ² μ§. --μλ―Ό
- κ·Έλ λ€λ©΄ 3κ°μ ν΄λμ€λ ꡬνμμ€μΌλ‘ κΉμ§ λ΄λ €μλκ°? μ΄μ°¨νΌ parameter λ‘ λμ¨ ν΄λμ€ 4κ°λ μ°λ¦¬κ° 'μ±
μμ λ§‘μλ€' λΌκ³ νλ ν΄λμ€ 3κ°λ κ·Έ ννμμ€μ λκ°λ€κ³ μκ°νλλ°. --1002
- κ·Έλ λ€λ©΄ 3κ°μ ν΄λμ€λ ꡬνμμ€μΌλ‘ κΉμ§ λ΄λ €μλκ°? μ΄μ°¨νΌ parameter λ‘ λμ¨ ν΄λμ€ 4κ°λ μ°λ¦¬κ° 'μ±
μμ λ§‘μλ€' λΌκ³ νλ ν΄λμ€ 3κ°λ κ·Έ ννμμ€μ λκ°λ€κ³ μκ°νλλ°. --1002
- 4κ°λ₯Ό μ΄λ»κ² ꡬνν μ§ μκ° μνκ²μΌλ‘λ μ΄λ―Έ classμ μΆμΆμ 3κ°λΌκ³ μκ°ν¨. κ·Έλ μ§ μκ³ μμ€ μμ€μ΄λΌλ©΄ μ λΆ λ€ μΆμΆνκ³ κ·Έλ μ§ μμ건 λ€λ₯Έ λ°©μμΌλ‘ νκ² μ§. --μλ―Ό
- κ·Έλ¦¬κ³ 'Layer' μ λ»μ΄ λͺ¨νΈνκΈ΄ νκ΅°. 'Abstract Layer', λμμΈμ λν μΆμν μ λλ₯Ό μ΄μΌκΈ°νμλκ²μ? (λ¬Έλ§₯μ μΌλ¨ κ·Έλ κ² ν΄μνλμ€)
- κ°μ μλ --μλ―Ό
- κ·ΈλΌ κ³ μ³.
--1002
- κ·ΈλΌ κ³ μ³.
- κ°μ μλ --μλ―Ό
- μμΉ« RDD μμμ κ·Έ μΈλΆν΄λμ€λ€μ λν΄μ λ무 λ§μ΄ μκ°νλ©΄ BUFD(Big Up-Front Design) μ΄ λλ¦¬λΌ μκ°νλ€. μ°¨λΌλ¦¬ Class κ° 2κ°μμλ μ½λ© λ€μ΄κ°κ³ , 20-30λΆ μ λ μ½λ©λ€ Refactoring μ μμμ μΌλ‘ νμ¬ Big Class μ λν΄ Extract Class λ₯Ό μΆκ΅¬νλκ² λ λΉ λ₯΄μ§ μμμκΉ.
- TestDrivenDevelopment μ κ²½μ°λ₯Ό μΆκ΅¬νλ€λ©΄ μ΄λ νμκΉ. TDD μ νΉμ±μ κΌ νμν λ©μλλ€λ§ μλ λ¨μν λμμΈμ μ λνλ€λΌλ μ μμ. μ΄λ²μ κ²½μ°λ Scenario λ₯Ό μκ°νμ¬ νλ‘κ·Έλ¨ λΌλλ₯Ό λ§λ€μ΄μμΈμ§ μ£Ό Interfaceκ° λλ λ©μλλ€μΈμ λΆνμν λ©μλλ μ μκΈ΄ νλ°, κ·Έ λμ , μ κΈ°ν리λ§μΉ μ²μ μ§ μλ리μ€κ° μλ²½νκ² λ¨Ήνμλ€λ μκ°λ λ λ€;
- μλ리μ€κ° μ£Όμ νκ²μ λμ, μ κΈ°νλ€λ λλ λΉμ· -- μλ―Ό
- μλ리μ€κ° μ£Όμ νκ²μ λμ, μ κΈ°νλ€λ λλ λΉμ· -- μλ―Ό
- λ°μ±μ΄μ¨λΌλ©΄ SeparationOfConcerns λ₯Ό λ μΈκΈνμλ λΆμ΄λ; λμμΈ μ μ±
κ³Ό ꡬνλΆλΆμ λν λΆλ¦¬μ λν΄μ μ λ² μ λ
Όλ¬Έμ΄ μΈκΈλμμλ μ₯μ μ λν΄ μ€λͺ
μ λ€μμΌλκΉ. μ΄λ ResponsibilityDrivenDesign κ³Ό ν΄λΉ λͺ¨λ μ΄λ¦μ μ§μλμ μΆμν μ λκ° μ§μΌμ€ μ μμ κ²μ΄λ λ§μ°ν μκ°μ€.
- See
KissPrinciple
- λλ ps. λ°λ¬ΈνκΈ°κ° λ³΄ν΅μ λ μ½λ€; (λ©λͺ¨μ₯μ κΈμ΄κ±° μ΄μΌκΈ°νλκ±° μλ. 'λ§μ§λ§μΌλ‘' λ₯Ό 'ps.' λμ μ΄ κ²μΌ λΏμ) --1002
- μμ§λ λ΄κ° λ©λͺ¨μ₯μ νκ±Έ κ°μ§κ³ κ°μ§ μκ°μ μ€ν΄νλκ±° κ°μλ° μ΄ν΄κ° μκ°λ€. κ°μ μ΄μΌκΈ°λ₯Ό μ λ§ λ§μ΄ νκ±° κ°μλ° μ λ° μ λ μλ μ λ¬μ΄ λλ― νλ€. λ¨μ μ λ°μ μ¬λ°±μ λ―Έ --μλ―Ό
- λ§λ‘ κ±Έλ¬μ§κ³ κΈλ‘ κ±Έλ¬μ§κ³ ν루 μ§λμ κΈ°μ΅λ ₯μΌλ‘ κ±Έλ¬μ§ λ°μ΄ν°λ 'μμ€' μ΄κ² μ§. μμ '......' λΆλΆμ κ·Έλ μ΄μΌκΈ°νμλ μμΈν λνλ΄μ©μ΄ κΈ°μ΅μ΄ μλμ κ·Έλ₯ μ λ κ² μ΄ κ²μΌ λΏμΈλ°. μ€ν΄νλ€κ³ μκ°νλ€λ©΄ κ·Έ λΆμ‘±ν κΈ°μ΅μ μ±μμ£Όλ©΄ μλλ. --1002
- λ§λ‘ κ±Έλ¬μ§κ³ κΈλ‘ κ±Έλ¬μ§κ³ ν루 μ§λμ κΈ°μ΅λ ₯μΌλ‘ κ±Έλ¬μ§ λ°μ΄ν°λ 'μμ€' μ΄κ² μ§. μμ '......' λΆλΆμ κ·Έλ μ΄μΌκΈ°νμλ μμΈν λνλ΄μ©μ΄ κΈ°μ΅μ΄ μλμ κ·Έλ₯ μ λ κ² μ΄ κ²μΌ λΏμΈλ°. μ€ν΄νλ€κ³ μκ°νλ€λ©΄ κ·Έ λΆμ‘±ν κΈ°μ΅μ μ±μμ£Όλ©΄ μλλ. --1002
- μμ§λ λ΄κ° λ©λͺ¨μ₯μ νκ±Έ κ°μ§κ³ κ°μ§ μκ°μ μ€ν΄νλκ±° κ°μλ° μ΄ν΄κ° μκ°λ€. κ°μ μ΄μΌκΈ°λ₯Ό μ λ§ λ§μ΄ νκ±° κ°μλ° μ λ° μ λ μλ μ λ¬μ΄ λλ― νλ€. λ¨μ μ λ°μ μ¬λ°±μ λ―Έ --μλ―Ό
7. 10(μ) ¶
- CollaborativeFiltering μ λν μκ³ λ¦¬μ¦ λ
Όμ
- Book Search Iteration μ λν ꡬ체μ μΈ Task μ€μ .
- Python, webdebug λ₯Ό μ΄μ©, ProjectPrometheus/LibraryCgiAnalysis Task
- HttpURLConnection μ μ΄μ©, HTML λ¬Έμ κ°μ Έμ€κΈ° Task
Python Interpreter λ λ§ κ·Έλλ‘ 'shell' μ΄λ€.; command λμ μ°κ³ μ΄κΉ.. Python κ³Ό webdebug μ μ΄μ©, λμκ΄ μΉ μ¬μ΄νΈμ GET/POST μΌλ‘ λ°μ΄ν°λ₯Ό 보λ΄λ λΆλΆμ λν λΆμμ μ°Έ νΈνλ€. (λ¨, Python shell μμμ encoding λΆλΆμ λν΄ μΆ©λλλ건 골μΉ)
--1002
--1002
μμμ νμ΄μ¬μΌλ‘ proxyλλ¦¬κ³ , Web debugνλ κ²μ΄ λ©μ§κ² 보μλ€. νμ΄μ¬μμ λκ»΄μ§λ μ¦μμ±μ μΈμ λ λλ‘ νμ¬κΈ κ²½νμ μμλ΄κ² νλ€. λΉλ‘ λ΄κ° κ²μΌλ‘λ ννμ΄ λΆμ‘±ν μ§λΌλ...
HTTPμμ λ¬Έμλ₯Ό κ°μ§κ³ μ€λ κ²μ κ΄νμ¬ λ±ν κ²°λ‘ μ λ΄λ¦΄μκ° μμλ€. λμκ΄μΈ‘μ μλͺ»μ΄ μλμμκΉ νλ μκ°μ΄ λΏμ΄λ€. zpμλ²μμλ getκ³Ό post κ° μλλλ° λ°νμ¬, λμκ΄μ΄ μ΄μνλ€. νμ¬λ 11μΌμ΄λ©°, μμ²μ΄μ μ΄μΌκΈ° λμ μ μ ν μ μμ νννκΈ°λ‘ νμλ€. λμ΄μ μκ°μ μκΈ°μλ λ무 μκΉλ€. --μλ―Ό
7. 9(ν) ¶
νμΌ ¶
- Architecture, Design μ λν΄ μλ
Όνκ³ λΌλλ₯Ό μ‘μλ€.
- μ€κ³λ₯Ό νλ©΄μ νλ‘κ·Έλλ° μ κ·Όλ²μ λν΄ μκ°ν΄λ³΄μλ€.
1002 ¶
κ·Έλ¬λ€κ° λμ€μ 'μ΄μ μ μκ°νμλ CRC μΈμ μμμ λμμΈκ³Ό λ€λ₯΄λ€' λΌ νλ¨, λ€μ CRC μΈμ μ κ°μ Έμ λμμΈμ νκ² λμλ€. μμ κ²½μ°κ° MVC Architectureμ λν λμμΈμ΄ λμλ€ νλ€λ©΄, νμμ κ²½μ°λ μ€μ Logic λΆλΆμ λν΄ λ ꡬ체νλ (νμ§λ§, Java Web Architecture μλ μκ΄μμ΄ μΌλ¨μ μΌλ° μ΄ν리μΌμ΄μ κ³Ό κ°μ보μ΄λ) λμμΈμ΄ λμλ€.
μ¦, μμ λμμΈμ κ²½μ° JSP νμ΄μ§λ€μ λ€μ΄λ°μ Logic λμμΈμ΄ μν₯μ λ°μλ€κ³ ν κΉ. λ, μ΄μ°¨νΌ ꡬνλΆλΆμ μ λλ‘ μκ°νμ§ μμ Conceptual Model μ κ°κΉμ΄ κ²μ΄μμ§λ§, νμμ κ²½μ° λ°μ΄ν° ν΄λμ€μ κ·Έ μ± μμ λ§‘μ ν΄λμ€λ€μ΄ λ λͺ μμ μΌλ‘ λλ¬λ¬λκ² κ°λ€. μ μμ κ²½μ°λ 'μ΄ κΈ°λ₯μ λ§‘μ ν΄λμ€μΌ' νλ©΄μ Responsibilty μμΌλ‘ μ κ·Όνλ €κ³ λ Έλ ₯νμ§λ§, νμμ κ²½μ°κ° κ·Έ μ©μ΄λ©΄μμ λ μΆμμ μ΄μλ€. (μ μμ κ²½μ° κ·Έ μ΄λ¦μ΄ μμ€ν μ λλ¬λ΄λ €κ³ νλ€.)
neocoin ¶
~cpp MVC-WebProgramming
μ μ€κ³ μ κ·Όμ νλ©΄μ OOPμμ λκ»΄μ§λ μ±
μμ λ°λ₯Έ μμΈνκ° μ묡μ μΌλ‘ λ§μμ Έ λ²λ¦°λ― νλ€.7. 8(μ) ¶
- νμΌ : μꡬμ μ μ 리, UserStoryμ Scenario νΌμ©, νμΈ λΆμ‘±ν μ€ν λΆλΆ λ°κ²¬, κ°λ°νκ²½ μ μ
- neocoin: λ§λ
ν ν΄μΌ ν μΌμ νλ€κ³ λκΌλ€.
- λ§λ
ν ν΄μΌ ν μΌ. κ·Έ μΌμ ν΄μΌ ν λ 무μμ ν΄μΌ ν μ§ ννμ μκ°μ΄ λμ§ μλλ€λ μ , κ·Έ μΌμ ν΄μΌ ν λ, μκΈ°λ₯Ό λμΉλ€λ μ μ΄ μμ½λ€κ³ νλ€λ©΄ λ·λΆμΌκΉ.(κΈ λ¦κ² μ΄ μ¬λμ μ¬μ ;) -- 1002
- λ§λ
ν ν΄μΌ ν μΌ. κ·Έ μΌμ ν΄μΌ ν λ 무μμ ν΄μΌ ν μ§ ννμ μκ°μ΄ λμ§ μλλ€λ μ , κ·Έ μΌμ ν΄μΌ ν λ, μκΈ°λ₯Ό λμΉλ€λ μ μ΄ μμ½λ€κ³ νλ€λ©΄ λ·λΆμΌκΉ.(κΈ λ¦κ² μ΄ μ¬λμ μ¬μ ;) -- 1002
- μ§λλ²μ λ°μλ μꡬμ¬νμ μλ κΈλ€μ (κ·Έλ κΈλ€μ 미리 μ€μΊν΄λμμλ€.) λ€μ 보면μ λ€μ μ 리λ₯Ό νμλ€. μ΄λ ν μμλ‘ ν κΉ νλ€κ° μΌλ¨ μ¬μ©μμ κΈ°μ€μΌλ‘, μ¬μ©μλ€μ΄ μ΄μ©νλ κΈ°λ₯(Functional)κ³Ό νΌν¬λ¨Όμ€ κ΄λ ¨ (Non-Functional) λΆλΆμΌλ‘ μκ°νκ³ , μ£Όλ‘ Functional ν λΆλΆμ κΈ°μ€μΌλ‘ μ¬μ©μ μλ리μ€λ₯Ό μμ±νλ©΄μ μꡬμ¬νλ€μ μ 리νμλ€. κ·Έλ¬λ©΄μ μ§λλ² Requirement λ₯Ό λ°μλ μλμ μμΈλ‘ μμμμ νννλ€. 5μΌμ΄ μ§λλ€ μ 리νλκΉ μ΄λ κ² λ¨Έλ¦¬κ° μλμκ°λ;
"μ¬κΈ°μ Recommendation System μ΄ μλν΄μΌ ν λΆλΆμ΄ λ€μ΄κ°λ©΄ μλκ² λλ°... λ³Έλ μλλ κ²μμ΄ λκ³ λ λ€ μ± κ΄λ ¨ μ λ³΄κ° λμ¬λ RS κ° μλνμ¬ κ°μ΄ νμκ° λμ΄μΌ ν΄."
- λΆμ‘±νλ€κ³ μκ°λμ΄μ§λ μ
- Engineering Task κ° μμ§ λͺ
νμΉ μλ€. Engineering Task λ₯Ό μ§κΈ μΌλ¨ κ°λ¨νκ² μκ°νλκ² λμκΉ μλλ©΄ Architecture Design λ€μ λ ꡬ체νν΄μ μ°λκ² λμκΉ κΆλ¦¬μ€. μΌλ¨μ μ μλ₯Ό λ¨Όμ κ°λ¨νκ²λλ§ κΆλ¦¬.
- AcceptanceTest λ°©λ²μ λν λ
Όμ λΆμ‘± - μμμΌ μ΄μ κΉμ§ κΆλ¦¬ μμ ; ν..ν;
- Engineering Task κ° μμ§ λͺ
νμΉ μλ€. Engineering Task λ₯Ό μ§κΈ μΌλ¨ κ°λ¨νκ² μκ°νλκ² λμκΉ μλλ©΄ Architecture Design λ€μ λ ꡬ체νν΄μ μ°λκ² λμκΉ κΆλ¦¬μ€. μΌλ¨μ μ μλ₯Ό λ¨Όμ κ°λ¨νκ²λλ§ κΆλ¦¬.
7. 3(μ) ¶
1002 ¶
- Requirement λ₯Ό λ°μλ€. Requirement λ₯Ό λ°κΈ°μ μ λ무 μ€λΉλ₯Ό μνν νλ€λΌκ³ μκ°νλ€. Requirement λ₯Ό λ°λλμλ 미리 κ³νμ μΈμ μ΄μΌ νλλ°. μ°¨λΌλ¦¬ μ μ μ΄μ©νλ UserStory μμ± -> λκ°μ EngineeringTask κΆλ¦¬ -> EngineeringTask μμ 곡ν΅μΌλ‘ κ²ΉμΉλ λΆλΆ / ν° λΆλΆ λλκΈ° -> Estimate κ²°κ³Ό μμ± μ΄λΌλ μλν΄λ³Όκ±Έ μ΄λ μκ°μ΄ λ λ€. Requirement Process μ λν΄μ κΌ λΉκ²©μμ μ΄λλΌλ ꡬ쑰μ μΈ λ°©λ²μ μκ°ν΄λ³Ό νμκ° μλ¨ μκ°μ΄ λ€μλ€. (λ무 νλ₯μ§λ₯νλ κ²μ μκ°νλ©΄.)
- Requirement λ₯Ό λ°μλ ν - μ΄λ―Έ ꡬνμ΄ λμλ€κ³ μμ ν΄λ³΄κΈ°.
κ³Όκ±°νλ§νκΈ° (μλ£νμΌλ‘ λ§νκΈ°)
AnalyzeMary . μλ―Όμ΄μ λ΄κ° κ°μ΄ μμλμ κ΄μ°°λλ λͺ¨μ΅μ 보면 μ¬λ―ΈμκΈ°λ νλ€. λ΄κ° κ±°μ ꡬ쑰λ₯Ό μ‘μ§ μκ³ ν리νΈλλ‘ Requirement λ₯Ό μ μ΄κ°λ€λ©΄ μλ―Όμ΄λ Mind Map μ λ£°μ μ§μΌμ νκΈ°ν΄λκ°λ€.
λ νλ μλ―Όμ΄μκ² λΉΌλμ μ μλ κ²μ΄λΌκ³ νλ€λ©΄ μ λ²νκΈ°λΆν° μ°λ Letter μ¬μ΄μ¦μ (λ§λ. λκ° ν¬κΈ°κ°) μμ μΌμ§. κ·Έλ¦¬κ³ Post It. μ§μμ IR λ₯Ό μ°κΈ΄ νμ§λ§, μ£Όλ‘ λ°μμ μμ νκ³ μ§μ λ¦κ² μ€κΈ°λλ¬Έμ κ³€λν μ μ΄ μλ€. λ€κ³ λ€λλ©΄μ κ°νΈν μ 보κ΄λ¦¬λꡬμ λν΄ κΆλ¦¬ν΄λ³Ό μΌ. (λλ PC7 μ IRμ;)
neocoin ¶
EJBμ ν¨μ©μ±μ κ΄ν΄μ, EJBλ‘ κ°μΌνλμ§ λ§μμΌ νλμ§ λ§μ€μ¬μ§λ λμμ μ£Όλ μ²΄ν¬ λ¦¬μ€νΈ, κ·Έλ¦¬κ³ IRμ μλ§λ http://no-smok.net/nsmk/InformationRadiator μΌλ― --μ΄μ μ°
ProjectPrometheus/Journey