U E D R , A S I H C RSS

1002/Journal

ถ”›„ Refactoring & ‹คฅธ œ„‚ค Ž˜€— •‹น €‹ ถ„–‘šฉ.

2003

11

•˜ฃจ ‰๊ฐ€ : 5  งŒ ค‘ 2 . (ค‘š”•˜๊ณ  ๊ธ๊ธ‰•œ ผ“ค„ ž˜ ฒ˜ฆฌ •จ)

• ผ กค‘
  • „„œ๊€—„œ ฅ˜๊ตฐ TPOCP ฐพ•„ฃผ๊ธฐ - O
  • ‚ฌžŒˆ˜Œ€กœ retrofitting ธ‡„•˜๊ธฐ -> 6€ ธ‡„•˜๊ธฐ - O
  • Retrofitting UT ฐœ‘œ€น„
    • ‚šฉ„ค… ๊€ จ -> 1ฐจ œผกœ •ฅผ œ„•œ TOC ž‘„ฑ. - O
      -> ‚„ ™—ฌ„œ ••˜๊ธฐ -> restatement •„š” & Œ€๊ฐ• งˆ„œ•œ ฐฉ•œผกœ „˜–๊ฐ€ฒ„ฆผ.
    • ๊ฒฝ—˜ ‚  šฉ ๊ฑฐฆฌ
  • dotplot ž‘„ฑ๊ถฆฌ
    • normalization
    • dot plotting
  • index card ‚šฉ  •ฆฌ•˜๊ธฐ
  • 1‹œ 30ถ„. •œ–‘Œ€œผกœ ™•˜๊ธฐ - o
  • 10‹œ 30ถ„๊นŒ€ •™๊ต „ฐฉ•˜๊ธฐ - o
  • ”„กœ Šธ ๊€ จ †ŒŠค ธ‡„ - o
  • ”„กœ Šธ ๊€ จ †ŒŠค ถ„„•˜๊ธฐ -> restatement •„š”.
'š”ƒˆ ŠŠจ•˜๊ฒŒ ‚๊ณ  žˆ‹ค' ผŠ” 10๊ธ€ž— Œ€•œ •ฝ๊ฐ„˜ ๊ตฌ™” & žฌง„ˆ .
~cpp 
3 : 30 ~ 9 : 00 ž 
 ~ 9 : 13 ‹‚ฌ
 ~ 9 : 33 จธฆฌ๊ฐ๊ธฐ & –‘น˜งˆ & ˜ทž…๊ธฐ & ๊ฐ€ฐฉ •ฆฌ
 ~ 9 : 46 ๊ฐ•€ „ฐฉ
 ~ 9 : 50 ๊ฑŒ€ž…๊ตฌ „ฐฉ
 ~ 10 : 38 ”ผ‹œ‹ค 7ธต „ฐฉ
 ~ 11 : 14 ”„กœ Šธ ๊€ จ †ŒŠค ธ‡„
 ~ 11 : 20 retrofitting ธ‡„
 ~ 11 : 30 internet Œ•„‹ค‹ˆ๊ธฐ
 ~ 1 : 06 retrofitting ๊ณต€ & •
 ~ 1 : 31 PC 7 ฌธ ž ๊ทธ๊ธฐ œ„• ๊ฒฝน„•„ €”จ๊˜  „™” & ๊ธฐ‹คฆฌ๊ธฐ
 ~ 1 : 47  ‹ฌ‹‚ฌ (นต & šฐœ . 800›)
 ~ 2 : 03 €•˜ฒ  —ญ „ฐฉ
 ~ 2 : 16 (€•˜ฒ ) using singleton wisely ฝ๊ณ  •
 ~ 2 : 42 (€•˜ฒ ) retrofitting ฝ๊ธฐ & •
 ~ 2 : 57 HIT „ฐฉ
 ~ 6 : 14 XP Study Group
 ~ 6 : 42 ๊ฐ•€—ญ „ฐฉ
 ~ 7 : 00 ง‘— „ฐฉ
 ~ 7 : 35 ธ„ฐ„ท ‹ธŒ•„‹ค‹ˆ๊ธฐ.
 ~ 9 : 35  €…‹‚ฌ. Four Boxes 2ฐจ ‹œ„ ง„–‰
 ~ 10 : 00 ™„ฃŒ
 ~ 10 : 32 ›น„œ•‘. ๊ฒƒ €๊ฒƒ
 ~ 12 : 03 œ‹ (ง‘•ˆ‚ฌžŒ“ค๊ณผ Œ€™”)
 ~ 2 : 07 •„Š” ‚ฌžŒ๊ณผ ฉ”‹  €—„œ Œ€™”๊€ จ.

ค‘ ›น„œ•‘œผกœ 32ถ„„ “ฐ๊ณ , œ‹œผกœ 1‹œ๊ฐ„ 30ถ„„ ˜ ‰ฌ๊ณ , ค‘๊ฐ„ค‘๊ฐ„ ธ„ฐ„ท— ณ„  —† Œ•„‹ค‹ˆŠ” ‹œ๊ฐ„ งŽ•˜‹คŠ”   ฌธ œ.

•„ง€ ‹คฅธ ๊ฐœ…— Œ€•œ žฌถ”ƒ™”— Œ€•„  ณ„กœ ๊ถฆฌ•˜๊ณ  žˆ€ •Š€ค‘. ผ‹จ€ ฐ”ธ ƒƒœฅผ ง„–‰ค‘. ๊€ฐฐค‘๊ธ • ๊นŒ?

  • ๊ทœ˜˜• Working Effectivly With Legacy Code ฐœ‘œ• •Œฅผ „œ ๊ทธ ๊ฒฉ— žˆ– ˜„๊ฒฉ•„ Š‚Œ.
    • Šค† ฆฌ …”ง ๊ฐ€Šฅ•˜‹คŠ”  . (‚˜Š” •ž ’ค˜ •ผ๊ธฐ๊ฐ€ Š–ง„‹ค.)
    •  „ ฑ… ‚šฉ— Œ€•œ Summary ๊ฐ€ TOC กœ กฐง ผŠ”  . (ฒˆ— TOC ฅผ €น„ •ˆ–ˆ‹ค.)
    • ๊ตฌ˜„ ๊ฒฝ—˜ ’€•˜‹คŠ”  . •‹น ฑ… ‚šฉ— Œ€• ฝ”“œกœ ˜ˆฅผ “ค–‹ฌผ “ค–ค„ ˆ˜ žˆ„ •„. (‚˜Š” •„€ถ„— Œ€•œ 1ฐจ •„—„œ€„ฐ ž˜ •˜€ •จ)

  • ๊ตฌ ธ action plan — Œ€•„œŠ” ถ”›„ ๊ถฆฌ.
  • ‹คฅธ‚ฌžŒ“ค '‚˜'กœ€„ฐ ญ”๊ฐ€ œ šฉ•œ „ –๊ธฐ๊ฐ€ ‰ฝ€ •Š๊ฒ ‹คŠ” ƒ๊ฐ “ค๊ฒŒ ˜‹ค. ญ, ˜™˜ ˜ค•กœ ๊ฐ€Šฅ• €„. •‹น ง— Œ€•œ ๊ฐ€น˜Š” “ฃŠ” ‚ฌžŒ“ค งŒ“ค–‚‹ˆ๊นŒ.
  • ‚ฌ‹ค„ ‚ฌ‹ค ๊ทธŒ€กœ ‹‹• ธ๊ธฐ ๊ถฆฌค‘. ฐธ ‰ฝ€ •Š€ค‘.
  • •…€ ™••˜๊ณ . ”จฟŒฆฌŠ” †€Š” งŽœผงค ‹น ‚˜งˆ •Š„ค.

7

๊ณต๊ฐœ œ„‚ค—„œ˜ Journal.

žฅ  : ๊ฐœธ ๊ฐ •— น˜€  Œ‹จ„ ž˜ •˜€ •Š๊ฒŒ œ‹ค.
‹คฅธ ‚ฌžŒ“ค„ ˜‹•˜—ฌ, € ” ž„ธžˆ …ผฆฌ ธ ๊ธ€„ “ฐ๊ฒŒ œ‹ค.
ฐ˜ก  : ‹จ —„œ˜ '†”ง•˜€ •˜๊ฒŒ   ˆ˜ žˆ‹ค' ฐธกฐ.
‹คฅธ ‚ฌžŒ“ค„ ˜‹•˜—ฌ, € ” žฃผ ๊ธ€„ “ฐ๊ฒŒ œ‹ค.
ฐ˜ก  : ตœ๊ทผ— ๊ฒŒ„Ÿฌ„œ ž˜ •ˆผž–•„. -_-;

‹จ  :
†”ง•˜€ •˜๊ฒŒ   ˆ˜ žˆ‹ค. ž‹ ˜ ผ„ ฏธ™”•  ˆ˜„ žˆ‹ค. NoSmok:TunnelVision— น ง„ ‚ฌžŒ€ '๊ณ ‹ถ€ ๊ฒƒงŒ' ๊ฒŒ œ‹ค. NoSmok:YouSeeWhatYouWantToSee

ž‹  € ฐฝ”ผ•˜๊ฑฐ‚˜ †Œœ„ 'Œ”ฆฌŠ”' ผ— Œ€•„œ •‹น ‚šฉ„ •ˆจฒ„ ˆ˜„ žˆ‹ค.
ฐ˜ก  : Journal „ “ฐŠ”  € ผ๊ธฐ™€ ‹ค‹ค. ๊ฑ ฒ  €•˜๊ฒŒ '•‹น ผ— Œ€•œ ๊ฐœ„ '„ œ„•œ ผ‹ค.

‡‡ ค‘š”•œ ‚ฌ๊ฑ“ค— Œ€• ๊ธฐก•  ˆ˜ —†‹ค. (Daum workshop “ฑ..)
ฐ˜ก  : ๊ทธŸฌ•œ ๊ธ€“ค€ •ˆ œ €˜Š” ‹คฅธ ๊ณณ—  œผ ˜€ •ŠŠ”๊ฐ€?
žฌฐ˜ก  :  •๊ฐ€ •œ๊ณณœผกœ € •˜๊ณ  ถ„‚ฐ˜Š” ˜•ƒœ๊ฐ€ ˜–ฒ„ฆฐ‹ค.
ฐ˜ก  : ๊ทธŸฌ, •ˆ œ €˜Š” ‹คฅธ ๊ณณ— apache authorization “ฑ„ ๊ฑธ๊ณ , •‹น ๊ธ€„ งฌ๊ฑธ ––จŸฐ€?
žฌฐ˜ก  : œ„‚ค •œ๊ณณ—„œ “  ž‘—…„ •  ˆ˜ —†‹คŠ”  งˆŒ— •ˆ“ ‹ค.
žฌฐ˜ก  : ๊ทธŸผ ๊ทธ ๊ณณ„ œ„‚ค ˜€. -_a

  • ‚๊ฐ€ “ฐŠ” ƒ‹น–‘˜ ‹จ–“ค„ ณผ•Œ ˆ„๊ตฌ˜ ˜–ฅ„ –ผงˆงŒผ ฐ›•˜Š”€๊ฐ€ Š๊ง„‹ค. น„ก ›Œฅญ•œ •™ƒ •„‹ˆ๊ธ •˜€งŒ.

2002

12›”

25, 26 - ‰๊ฐ€. ๊ณ„š. ฑ… ถฉ™๊ตฌงค.;

1…„ ‰๊ฐ€ผŠ” ๊ฒƒ€ ค‘๊ฐ„ 3๊ฐœ›” ‰๊ฐ€๊ฐ€ —†œผ – คš ผ‹ค. ฐ„ฐ๊ฐ€ ‚จ•„žˆงˆ •Š๊ตฐ.

ฑ…„ 8๊ถŒ  •„ ƒ€‹ค. Input Œ€น„ Output น„œจ  „‹ค กฐ๊ธˆ‚˜งˆ †’•˜œผ •œ‹ค.

13 (๊ธˆ), 14 († ), 15(ผ) - RT

๊ธˆ :
  • ˜– ฝ๊ธฐ €น„
ฝ๊ธฐ €น„  „ Seminar:ThePsychologyOfComputerProgramming – คšธ ๊ฒƒผŠ” ƒ๊ฐ จผ € “ค–„œ, ผ‹จ ˜–— ตˆ™• ธ•ผ๊ฒ ‹คŠ” ƒ๊ฐ “ค–„œ Alice in wonderland ˜ chapter 3,4 ฅผ “ค—ˆ‹ค. ‹จ–“ค •˜‚˜•˜‚˜ “คฆฌŠ”  •„. •„ง  „˜ ฌธžฅ จธฆฟ†œผกœ งŒ“ค–€ง„ •ŠŠ” ๊ฒƒ ๊ฐ™‹ค. ‹จ– ‹จœ„ ฐ›•„“ฐ๊ธฐŠ” ๊ฐ€Šฅ•˜€งŒ, ฌธžฅ‹จœ„ ฐ›•„“ฐ๊ธฐŠ” ž˜“ ค‘.

„„œ๊€—„œ  „—  ˆฐ˜ •„ ฝ€   žˆŠ” Learning, Creating, and Using Knowledge ˜ ผ€ฅผ ฝ–๊ณ , NoSmok:HowToReadaBook›„œฅผ ฐพ•„•˜‹ค. Œ€๊ฐ• ฝ–Š”ฐ,  „— •œ๊ธ€šฉ–กœŠ” •ฝ๊ฐ„ –ƒ‰•˜๊ฒŒ Š๊กŒ˜ šฉ–“ค จธฆฟ†—  œŒ€กœ “ค–™”‹ค. (˜Š”, ‚๊ฐ€ ˜–กœ œ ฑ…„ ฝ„•Œ—”  „๊ณตฑ…˜ ๊ทธ –ˆฌฅผ – ˜ฌ ค„œผŸฐ€„ ๊ฒ ‹ค. ฆ‰, ˜–กœ œ ฑ…€ •ฝ๊ฐ„ ” ๊ฒ๊ฒŒ ฝŠ”‹ค๊ณ  • ๊นŒ. ๊ทธฆผ ๊ทธ ค ธ žˆŠ” ฑ… (ex : NoSmok:AreYourLightsOn, บ˜นˆ & ™‰Šค) Š” ˜ˆ™ธ)

ผ‹จ, € ‰ฌš ฑ…“ค— Œ€• –Š •„ Input  € “ค–™”œผ‹ˆ ๊œฐฎ๊ฒ € •˜๊ณ  ฑ…„ ฝ—ˆ‹ค.
  • TPOCP ฝ๊ธฐ
    • – ค›€ : š”•„ ––๊ฒŒ •  ๊ฒƒธ๊ฐ€?
      •œ๊ธ€ ฑ…„ ฝ„•Œ—” •œ๊ธ€กœ š”••œ‹ค. ˜–ฑ…„ ฝŠ” ค‘ •œ๊ธ€กœ š”••˜ ค‹ˆ ‚๊ฐ€ ฝ„•Œ ๊ฐ€๊ธ‰  •œ๊ธ€กœ •„ •ˆ•˜ ค๊ณ  •˜Š” —ฐŠตค‘‹ค. ๊ทธŸฌ•˜๊ธฐ—” ˜ €๊ธˆ ˜– ž‘ฌธŠฅ ฅ ›ฐ–‚˜€ •Š‹ค.
    • ž˜œ Šต๊€ : Œ€ถฉ ฝ๊ธฐ
      ฑ…„ ฝœผ„œ '•„ •ˆ˜Š” ฌธžฅ' „ ๊ทธƒ„˜–๊ฐ€ฒ„ ธ‹ค. ฆ‰, NoSmok:HowToReadaBook—„œ˜ ฒซฒˆงธ ‹จ๊ณ„ฅผ •„ง  œŒ€กœ •˜๊ณ  žˆŠ” ๊ฒƒ‹ค. ๊ทธŸฌ•œ ƒ™—„œŠ” Analyicial Reading „ •  ˆ˜๊ฐ€ —†‹ค.
    • ™œ Ÿฐ‹œผกœ ฝ„๊นŒ •˜Š” ƒ๊ฐ„ ••˜Š”ฐ, ˜–กœ œ ฑ…„ ฝ„•ŒŠ” ฃผกœ ฌธ œ•๊ฒฐ„ œ„• ฝ„•Œ๊ฐ€ งŽ•„„œ ๊ทธŸฐ๊ฒƒ ๊ฐ™‹ค. (†นญ ๊ณ “ฑ•™๊ต ˜–‹œ—˜šฉ ฝ๊ธฐ) นจฆฌ ฝœผ ค๊ณ  ๊ฐœธ ธ ˜—ญ„ „ˆ ˜คšฉ•˜Š”๊ฒƒ ๊ฐ™๊ธฐ„ •˜‹ค. ๊ทธฆฌ๊ณ , ‹จ–ฅผ Šต“•˜Š”ฐ € ” ฏผ๊ฐ•งˆ •„š”๊ฐ€ žˆ„ ๊ฒƒ ๊ฐ™‹ค. (—ฌŸฌฒˆ ฝ๊ธฐ “ฑ) Chapter 7,8 ฝŠ”ฐ ๊ฑฐ‚˜ œ„ Œ€๊ฐ•งŒ •Œ๊ณ žˆ–„œ œธ€  €œธ€ • งค•–ˆ˜ ‹จ–“ค •ณ‹ˆ 230๊ฐœ •„ œ‹ค. ˜„žฌ ˜–ˆ˜€€ ค‘•™๊ต 1•™…„ ˆ˜€ •„ธ๊ฒƒ ๊ฐ™‹ค.
    • GOF ฒˆ—ญ„ • •Œ—”? - ฒˆ—ญ„ • •Œ—” • งค•œ ‹จ–“ค— Œ€•  „€ ‚ฌ „„ ฐพ•„๊ฒŒ œ‹ค. (™„ „žˆ ง—ญ„ •˜€กœ) ‹œ๊ฐ„ งŽ ๊ฑธฆฌ€งŒ, ˜–•™Šต ˆ๊ธฐ—” žฃผ •Š”๊ฒŒ ข‹€ •Š„๊นŒ ƒ๊ฐ•œ‹ค. (๊ผญ •œ๊ธ€ ฒˆ—ญ •„‹Œ, – คš ˜–— Œ€•œ ‰ฌš ˜–กœ˜ •„ค. ๊ฒŒ € ” – คšฐ ค‚˜..)

    • ๊ทธ ‡‹ค, ––๊ฒŒ NoSmok:HowToReadaBook‚˜ 'Learning, Creating, and Using Knowledge' € ฝ๊ธฐ ‰ฌ› „๊นŒ?
      • ‚ฌ „€‹ ฏธ žˆ—ˆ๊ธฐ •Œฌธผ๊ณ  Œ‹จ•œ‹ค. NoSmok:HowToReadaBookŠ” •œ๊ธ€ „œ „ ฏธ ฝ—ˆ—ˆ๊ณ , 'Learning, Creating, and Using Knowledge' ˜ ๊ฒฝšฐ Concept Map — Œ€•œ •๊ฐ€ žˆ—ˆ‹ค. PowerReading ˜ ๊ฒฝšฐ ›ž˜ ‘œ˜„ ž๊ฐ€ ‰ฝ‹ค.
      • ฐ˜, TPOCP ˜ ๊ฒฝšฐ ‚ฌ „€‹„ ๊ฐ€€๊ณ  žˆ€ •Š•˜๊ณ , •œŽธ 'ƒˆกœ ฝŠ” ฑ…— Œ€•„œ ‚ฌ „€‹œผกœ •„•˜๊ธฐ'ฅผ กฐ‹ฌ•˜๊ณ  žˆ—ˆ‹ค. (๊ฑ € ‹ค–‰ธ“ฏ •˜‹ค.) ๊ทธฆฌ๊ณ  RT ›„˜ ‹คฅธ ‚ฌžŒ“ค ˜๊ฒฌ„ “ค–, ‰ฌš ˜–Š” •„‹Œ ๊ฒƒ ๊ฐ™‹ค.
  •  •ฆฌ
    • ˜„žฌ ‚ ˜–ˆ˜€„ ๊ฑฐ, “จ„ฐ ๊€ จ „œ  ™— ‰ฝ๊ณ  ผƒ ธ ฑ…“ค— Œ€•œ Input  ™•‹คžˆ €กฑ•˜‹ค. ˜–กœ œ ฑ…“ค— Œ€•„œŠ” € ” ‰ฌš ฑ…“ค„ Elementary Reading ‹จ๊ณ„€„ฐ ••ผ๊ฒ ‹ค.
    • €๊ธˆ ˜„žฌ ƒ™—„œ   ˆ•œ †„Š” •ฝ 70 WPM ธ๊ฒƒ ๊ฐ™‹ค. Š” ‹จ– •˜‚˜•˜‚˜  „€ ‚ฌ „—„œ ฐพ•„Š” †„ ๊ธฐ€. –Š •„ –œ˜“ค— ตˆ™•€๊ณ  ‚œ ’ค.

  • Seminar:ReadershipTraining
    • ค‘š” ‘œค‘ •˜‚˜๊ฐ€ RT ๊ฐ€ ––๊ฒŒ ฃจ–€๊ณ , ZeroPage —„œ RT ‹ค–‰‹œ ––๊ฒŒ • ๊นŒ— Œ€•œ ๊ถฆฌ.
    • ง„–‰ฐฉ• (ผ‹จ ‚  –ˆ—ˆ˜ ฐฉ•)
      • ฐœ œ•œ ‚ฌžŒ“ค ค‘‹ฌœผกœ ฐœ œž๊ฐ€ •‹น ‚šฉ  •ฆฌ.
      • Facilitator ‚˜ ฐœ œž, ˜Š” ฝŠ” ‚ฌžŒ“ค งˆฌธ œ๊ธฐ & ‚ฌžŒ“ค ˜๊ฒฌ žœ † ก 
      • ๊ฑธฆฐ ‹œ๊ฐ„ : 6‹œ 30ถ„ ~ 2‹œ. (ค‘๊ฐ„ œ‹‹œ๊ฐ„ 1‹œ๊ฐ„  •„) Chapter 12๊ฐœ ๊ธฐ€.

    • ๊ธฐณธ œผกœ ฐœ œ•˜๊ณ  ฐœ‘œ•  ˆ˜ žˆœผ ค •„ฐ ‹น 4-5ฒˆ  •„  •…„ •••  ๊ฒƒ ๊ฐ™‹ค.
      • ฒˆ— ฐœ œฅผ ƒ‹นžˆ ž˜–ˆ‹ค๊ณ  ƒ๊ฐ˜Š” ‚ฌžŒ“ค„ ‹ˆ, •œ…€  –„ ผฃผผ „€„ฐ €น„–ˆ๊ณ , •œ…€ •‹น •„ฐฅผ 3-4ฒˆ •„ ฝ—ˆ‹ค๊ณ  •œ‹ค. ๊ทธฆฌ๊ณ  ๊ทธ ‚ฌžŒ“ค •ผ๊ธฐ•  ˆ˜ žˆ„  •„๊ฐ€ –Š •„ƒ, •‹น ˜ˆ œƒ™— Œ€•   ˆ•˜๊ฒŒ ž‹ ˜ ˜ˆกœ ง•  ˆ˜ žˆ„ •„๊ฑฐ‚˜, ˜Š” š”••œ ‚šฉ„ ๊ฑฐ˜ € •Š๊ณ „ •ผ๊ธฐ•  ˆ˜ žˆŠ” ˆ˜€˜€‹ค. ‘…˜ ๊ฒฝšฐ ™€ žฃŒฅผ ฐพ•„๊ธฐ„ –ˆ‹ค.
      • •œ…€ •‹น ฃผ œ–ฅผ •ผ๊ธฐ•˜๊ณ ,  ฃผ œ– œ —‡ธ€ฅผ •ผ๊ธฐ•˜๊ณ , ๊ทธ— —ฐ๊ฒฐ˜Š” •ผ๊ธฐฅผ •ฃผŠ” ‹.
        • Ÿฌ•œ ‚ฌžŒ“ค ฑ…„ ฝ„•Œ 5ถ„๊ฐ„ ฝœผ„œ ––ค ๊ณผ •„ –Š •„ ˆ˜€œผกœ๊นŒ€ ๊ฑฐน˜Š”€— Œ€• ๊ตฌ๊ฒฝ•ณผ ˆ˜ žˆ–„ ข‹„๊ฒƒ ๊ฐ™‹ค. ๊ทธŸฌ•œ  —„œŠ” RT •Œ Chapter ‹จœ„กœ Pair-Reading „ •„ žฌฏธžˆ„ “ฏ •˜‹ค. 'ฝŠ” ฐฉ•'„ ƒ๊ฐ•˜ฉฐ € ” ˜‹ œผกœ ฝ„ ˆ˜ žˆ€ •Š„๊นŒ.
      • ‹คฅธ ‚ฌžŒ“ค ‚˜— น„• •‹น –œ˜— Œ€•œ žฌ •˜(Restatement) ‹จ๊ณ„๊ฐ€ •˜‚˜‚˜ ‘‹จ๊ณ„ •„ ” †’•˜˜๊ฑธกœ ๊ธฐ–ต•œ‹ค. ‚๊ฐ€ ฑ…„ ฝ„•Œ งˆฌธ„ ž˜ งŒ“ค–‚Š” ๊ฒƒ„ •œ •˜Š”๊ฒƒ ๊ฐ™‹ค.

    • 2•™…„, 3•™…„“ค— Œ€• € ” ‹คšฉ ธ RTกœ •œ‹ค, •‹น ”„กœ๊ทธž˜ฐ –ธ–— Œ€•œ RTฅผ •  ˆ˜ žˆ„๊ฒƒ„ ๊ฐ™‹ค. (…ธŠธถ 2Œ€ •„ šฉ, ‚ฌžŒ“ค ‹ค๊ฐ™ ‘˜Ÿฌ„œ Š”..)
    • ฒ˜Œ ”„กœ๊ทธž˜ฐ„  ‘•˜Š” ‚ฌžŒ—๊ฒŒŠ”  „ ”„กœ Šธ ๊ณผ •„ ••  ˆ˜ žˆŠ” •˜ฃจฅผ, (๊ฑ RT ‹จ ฐคƒˆ๊ธฐ ”„กœ Šธ •˜ฃจงœฆฌฅผ ๊ฐ™ •Š”๊ฒŒ ข‹„ ๊ฒƒ ๊ฐ™‹ค.) 2-3•™…„•ŒŠ” ค‘š” …ผฌธ‚˜ †Œ”„Šธ›จ– Ž˜Ÿฌ‹คž„ ˜Š” –‘„œผ ถˆฆฌŠ” ฑ…“ค (How To Read a Book, „ฑ˜ ๊ธฐŠฅ, Mind Map ‚˜ Concept Map “ฑ)„ ๊ฐ™ ฝ๊ณ   šฉ•Š” ๊ฒƒ„ ข‹„๊ฒƒ ๊ฐ™‹ค.


  • Seminar:ReadershipTraining Afterwords
    • “ฐ‹ค‹ˆ ฑ… ž— Œ€•œ ‚šฉ น กŒ๊ตฐ. -_-
      • ‹ฌฆฌ•™ „œ  –– •œ Šคƒ€ผธ€Š” ๊ฒ €งŒ, †Œ”„Šธ›จ– ๊ฐœฐœ˜ ๊ฐ ๊ณผ •“ค— Œ€•  •งกœ 'Human Performance' ผŠ” ๊€ œผกœ „œˆ •œ‹ค.
      • ƒ๊ฐ‚˜Š” €ถ„ :
        • ฝ”“œฅผ ฝŠ” ๊ฒƒ.
        • ฝ˜›จ •™
        • Blank Error ˜ —Ÿฌœจ €™”— Œ€•œ †ต๊ณ„ - ก œผกœ Dead Lock „ •„Š” ๊ฒƒ๊ณผ, ‹ค œ Multi Thread ”„กœ๊ทธž˜ฐ„ •˜Š” ค‘ Dead Lock ƒ™„ žฃผ  ‘•˜Š”๊ฒƒ. –Š๊ฒƒ ” •™Šตšจ๊ณผ๊ฐ€ †’„๊นŒ •˜Š” ƒ๊ฐ. ™˜— ˜•œ ๊ตœก—„œ ๊ทธ ™๊ธฐ€—ฌฐจ›—„œ„ •™Šตง„–‰ Šคƒ€ผ ‹คฆฌž€ ƒ๊ฐ “ฌ.
        • Efficiency : Effectivily - ‚๊ฐ€ ฐœ‘œ–ˆ—ˆ˜ 7žฅ˜ ๊ทธ ˜ˆ œ๊ฐ€ ๊ฐ€žฅ ค‘š”•œ ˜ˆ œค‘ •˜‚˜˜€‹ค๊ณ  Comment — จžˆ—ˆ˜๊ฑธกœ ๊ธฐ–ต•˜Š”ฐ.. ƒ๊ฐ• ‚๊ฐ€ ฐœ œ•  €ถ„ ‚šฉ ฐธ žฌฏธžˆŠ” €ถ„˜€Š”ฐ,  œŒ€กœ ฐœ œ •œ๊ฒŒ ฐธ ‚ฌžŒ“ค—๊ฒŒ ฃ„†กŠคŸฝ‹ค.

  • Post Script.
    • ˜„žฌ ‚๊ฐ€ ฃฝ–๊ฐ€๊ณ  žˆŠ”ค‘๊ธ •œ๊ฐ€ ‹ค. – œ™€ ๊ทธ œ, ž ‹œ ŠคŠคกœ ฃฝŒ„ ฉ๊ฒฉ•œ ๊ฒƒ ๊ฐ™๊ณ , ‹คฅธ ‚ฌžŒ ‚ ฃฝŒ„ ๊ตฌ๊ฒฝ•œ ๊ฒƒ ๊ฐ™‹ค. (ฏธ ‡ผ „€„ฐ ฉ๊ฒฉ–ˆ—ˆ˜ ‚ฌžŒ„ žˆŠ”๊ฒƒ ๊ฐ™‹ค.)
    • Œ“•„‚˜๊ฐ€••  €ถ„ ƒ‹นžˆ งŽ•„Š”ฐ.. Refactoring —„œ˜ ๊ฒฝ—˜„ –„ค”„๊ฒŒ ๊ฐ€กœงˆŸฌณธ‹ค. ReFactoring „ • •Œ ‚˜œ ž˜Šค“ค„ ๊ทธ •ˆ—„œ ๊ณ„† ๊ณ ณ‚˜๊ฐ€Š” ๊ฒƒ ‹จ, ƒˆ ž˜Šค‚˜ ฉ”†Œ“œ“ค„ ค‘๊ฐ„— งŒ“ ’ค, ‚˜œ ž˜Šค“ค„ ‚ญ œ•˜Š”๊ฒŒ ” น ฅธ ฐฉ•‹ค. ข‹€ Šต๊€„ งŒ“ค–‚Š” ๊ฒƒ ‚˜œ Šต๊€„ ๊ณ ณ‚ ค๊ณ  •˜Š”๊ฒƒ‹ค ตœข… œผกœ ณผ• ”  ‘๊ทผ•˜๊ธฐ ‰ฝ€ •Š„๊นŒ •˜Š” ƒ๊ฐ„ •ณธ‹ค. ‚˜œ  ผ ƒ๊ฐ•˜Š”๊ฒƒ€, ˜‹™”•„œ ๊ณ น˜Š” ๊ฒƒ ‹จ ข‹€ Šต๊€œผกœ Œ€•˜๊ณ  ‚˜œ Šต๊€„ •„— žŠ–ฒ„ฆฌ๊ฒŒ” •˜Š”๊ฒƒ ” ‚˜€๊ฒƒ ๊ฐ™‹ค.
      • •„ง€. จธฆฟ†˜ 'ง' ผ ฟธค‘.

12 (ฉ): ฑ…ƒ •ฆฌ

น„–žˆ–•งŒ œ šฉ•œ๊ฒƒ“ค žˆœผ‹ˆ. นจฆฌ  •ฆฌ˜–ฒ„ ค••  ๊ฒƒ“ค.

10 (™”): Prometheus ฆฌŒฉ† ง (๊ณ„†ง„–‰ค‘. ผฃผผงธ ง„–‰ค‘˜๊ฐ€. -_-a)

—ฐŠตžฅ—  „ ž˜Šค“ค ๊ตฌกฐฅผ ๊ทธ ค‹ค. CRC ฅผ “ธ๊นŒ •˜‹ค๊ฐ€ Š˜–†“„ žฆฌ๊ฐ€ —†–„œ..;

ƒ‹จ˜ ž˜Šค“ค€ •˜‹จ˜ ž˜Šค“ค„ šฉ•˜Š” ‹‹ค.



๊ทธฆผ„ ๊ณ  ‚˜‹ˆ, Inheritance ‚˜ Delegation  •„š”—† ฃจ–ง„ €ถ„ žˆ‹คŠ”   (KeywordGenerator ž˜Šค‚˜ BookSearcher, HttpSpider “ฑ) Information Hiding   œŒ€กœ €ผœ€€ •Š€๊ฒƒ ๊ฐ™‹คŠ”  , (Book ๊ณผ ๊€ จœ ฐ„ฐฅผ –๊ณ , ๊ฒ€ƒ‰•˜—ฌ ฆฌŠคŠธฅผ งŒ“ค–‚Š” ๊ฒƒ€ BookMapper —„œ †ตผ˜๊ฒŒ ฃจ– ธ••œ‹ค.)  ˆ–ฅผ นจฒ”•œ๊ฒƒ (๊ฐ๊ฐ˜ Service ž˜Šค“ค •‹น กœง๊ฐฅผ ง ‘ šฉ•˜Š”๊ฒƒ€ ๊ทธฆฌ ๊ธฐ ข‹€ –‘ƒˆ๊ฐ€ •„‹Œ“ฏ •˜‹ค. ž˜Šค ๊€๊ณ„๊ฐ€ ณตžก•€‹ˆ๊นŒ. ๊ทธฆฌ๊ณ  €๊ธˆ Service ๊ฐ€ „œธ”ฆฟ— น„ข…† ธ Command Pattern € •„‹ˆ‹ค. ๊ทธฆฌ๊ณ  AdvancedSearchService ™€ SimpleSearchService ๊ฐ€ BookMapper — › „ งžถ”€ •Š๊ณ  Searcher ž˜Šค“ค„ šฉ•œ ๊ฒƒ€ ˜„…•œ „ ƒ •„‹ˆ‹ค.)

๊ตฌกฐฅผ ‚”ผ„œ ฆฌŒฉ† ง, KeywordGenerator ž˜Šค™€ HttpSpider “ฑ˜ ž˜Šค“ค„ ‚ญ œ–ˆ‹ค. …ŒŠคŠธ 96๊ฐœŠ” •„ง ž˜ Œ•„๊ฐ€Š”ค‘. ฆฌŒฉ† งค‘ inline class ‚˜ inline method , extract method ‚˜ extract class ฅผ • •Œ, ผ‹จ •‹น †ŒŠคฅผ ณต‚ฌ•„œ ƒˆ ž˜Šคฅผ งŒ“ค๊ฑฐ‚˜ ฉ”†Œ“œฅผ งŒ“ค๊ณ , ฅผ šฉ•œ’ค, ๊ธฐ˜ ฉ”†Œ“œ“ค€ Find Usage ๊ธฐŠฅ„ šฉ•˜„œ šฉ•˜Š” €ถ„ —†„•Œ๊นŒ€ replace •˜Š” ‹œผกœ –ˆŠ”ฐ, …ŒŠคŠธ ฝ”“œ„ ๊ณ„† …นƒ‰ฐ”ฅผ œ €•˜„œ, ž‘€ ฆฌ“ฌ„ œ €•  ˆ˜ žˆ–„œ ๊ธฐถ„ ข‹•˜‹ค.

–Š •„ ‹ค‹œ  •ฆฌœ ’ค, ฌ๊ฒŒ ๊ทธฆฌŠ” ๊ฒƒ ‚ซ๊ฒ ‹ค๊ณ  Œ‹จ, ™”Šธ“œ— ๊ทธฆผ. (งˆนจ “œ งˆ —†–„œ  „€— งคงœผกœ.;)



‚ผ € ” ž‘—…„ •  ๊ถฆฌ. CVS —„œ ฒ„ „„ ”ฐกœ ‘˜๊นŒ„ ๊ถฆฌค‘. (๊ตฌกฐ๊ฐ€ € งŽ ฐ”€” ๊ฒƒ ๊ฐ™‹ค. ›•˜Š” ””žธœผกœ ๊ฐ€ ค  €  „  €ถ„œผกœ ๊ฐ€••˜ฆฌผ ƒ๊ฐ.)

  • ”„ง๊ณ  œ„ง๊ณ  '…ŒŠคŠธ †ต๊ณผงŒผงŒ' ผŠ” ‚ฌ๊ณ ฐฉ‹€ ๊ฐœฐœ†„ฅผ ƒ‹นžˆ –ฅƒ‹œ‚จ‹ค.;; ฆฌŒฉ† งค‘ žฌฐจ ฐฐ›€.
8 (ผ):

‹ค œ Database ฅผ šฉ•˜Š” …ŒŠคŠธ— Œ€• •˜‚˜งŒ ‹ค–‰–ˆ„•ŒŠ” ž˜ ˜”‹ˆ, Suite — ฌถœผ‹ˆ๊นŒ …ŒŠคŠธ—„œ šฉ•˜Š” Connection  NULL  ˜–ฒ„ฆฐ‹ค. Connection POOL ˜ ฌธ œธ“ฏ. •„š”—†Š” ๊ณณ— Connection —–†“€ ๊ฒƒ„ •˜‚˜งŒ šฉ–ˆ”‹ˆ •๊ฒฐ.

7 († ): Prometheus Test Code ถ”๊ฐ€ Œ€žฅ •

Prometheus ฆฌŒฉ† งค‘. ๊ธฐ๊ฐ„„ žก€ •Š๊ณ  •˜‹ˆ —„ฒญ‚˜๊ฒŒ Š˜–€Š” ๊ฒƒ ๊ฐ™‹ค. ‹ค‹œ • ผ ก„ ๊ตฌ œผกœ žก๊ณ  ••ผ๊ฒ ‹ค.

๊ธฐ˜ AcceptanceTest “ค ž‘™„ •œ‹ค. (Python —„œ  •๊ทœ‘œ˜„‹ šฉ. ฐ„ฐ ŒŒ‹ฑ & ถ”ถœ. Prometheus UI ๊ฐ€ ฐ”€Œ ‹ค‹œ ฐ”€œ)  „— ๊ตฌ๊ฒฝ•œ ๊ฒƒฒ˜Ÿผ XPath ฅผ šฉ•˜Š” ฐฉ•„ ๊ถฆฌ•๊ฑฐ‚˜, Prometheus —„œ XML + XSLT ฅผ šฉ•˜Š” ฐฉ•„ ๊ถฆฌ–ˆ‹ค. •˜€งŒ, ๊ทธŸฌ๊ธฐ—” ˜„žฌ Prometheus ˜ JSP €ถ„„  „€ ฐ”๊พธŠ”ฐ €‹ ฌฆฌผ Œ‹จ, Servlet Controller ค‘ Service ž˜Šค €ถ„— Œ€• …ŒŠคŠธ ฝ”“œฅผ ™Š” ฐฉ•„ ƒ๊ฐ• ƒˆ‹ค. •˜€งŒ, ง‰ƒ ž‘„ฑ•๊ณ  ‚˜‹ˆ ๊ทธ ˜•œ …ŒŠคŠธ ฝ”“œ˜ ฌ๊ธฐ๊ฐ€ ฌ๊ธ •˜‹ค.

Service ™€ Controller ๊ฐ€ ๊ฑฐ˜ Composition ๊ณ , ๊ทธกœ ธ• Controller Š” Mapper, Recommender “ค ค„ค„žˆ ˜„ฑ„ ๊ฐ€กŒ‹ค. ๊ฐ๊ฐ˜ Mapper, Recommender “ค DB ฅผ “ฐ€กœ ฅผ Mock Object ฅผ “ธ๊นŒ •˜‹ค๊ฐ€, –ฐจ”ผ ˜„žฌ ž‘„ฑ•˜Š” €ถ„ AcceptanceTest ˜ ผ€€กœ ‹ค œ ๊ฐฅผ ๊ทธƒšฉ•„ ข‹๊ฒ ‹ค๊ณ  Œ‹จ, ๊ทธŒ€กœ šฉ•˜๊ณ  ž‘„ฑ.

----
€๊ธˆ ƒ๊ฐ•, ฏธ …ŒŠคŠธ๊ฐ€ žˆŠ” ฝ”“œ“ค„ จผ € ๊ฐ€Šฅ•œ•œ ‹จˆœ•˜๊ฒŒ ฆฌŒฉ† ง•˜๊ณ  ๊ทธ ‹คŒ Service ฆฌŒฉ† ง„ –ˆ‹ค –– –ˆ„๊นŒ.

----
…ŒŠคŠธ ฝ”“œ ž‘„ฑ„ œ„•œ ผ€ ฝ”“œ ณต‚ฌ & ฉ”†Œ“œ ถ”๊ฐ€ & ž˜Šค ถ”๊ฐ€.

----
Test †ต๊ณผ•˜Š” งŒผงŒ ‚๊ฐ€ งŒ“ ๊ฒƒ‹ˆ. ”„ง๊ณ  œ„ง๊ณ . ๊ฑฑ •งž ๊ฑฑ •งž ๊ฑฑ •งž. -_-;

ฒˆ— ฆฌŒฉ† ง„ •˜ ค๊ณ  • •Œ Legacy Code Refactoring ผ๊ณ  ƒ ••„œ ๊ทธŸ๊นŒ. Coverage Testฅผ ™„ฒฝ•˜๊ฒŒ ž‘„ฑ•˜Š” ๊ฒƒ— Œ€• €‹๊ฐ„ Š๊ผˆ‹ค. ˜ˆ „— œ šฉ–ˆ—ˆ˜ '•„•„. ฏธ ‹ค ˜–žˆ–š”.~' ฅผ ‹ค‹œ  šฉ•ณผ๊นŒ.

----
Refactoring Catalog  •…. ™œ ฆฌŒฉ† ง ฑ…˜  ˆฐ˜ ฆฌŒฉ† ง˜  ˆฐจธ€— Œ€• ˜ผž„œ ๊ฐ™ค‘.; ™œ Extract Method ฅผ • •Œ 'ฉ”†Œ“œฅผ ƒˆกœ งŒ“ ‹ค' ๊ฐ€ จผ €ธ€. Extract Class ฅผ • •Œ 'ƒˆ ž˜Šคฅผ  •˜•œ‹ค'๊ฐ€ จผ €ธ€. ( ˆŒ€กœ '†ŒŠค ผ€ฅผ ž˜ผ‚ธ‹ค'‚˜ '†ŒŠค ผ€ฅผ comment out •œ‹ค' ๊ฐ€ จผ €๊ฐ€ •„‹ˆผŠ” ๊ฒƒ.)
ฆฌŒฉ† ง ฑ…„ ๊ณ  ฐฉ•„ ฐฐšฐ€ งˆผ. Œ€‹  ŠคŠคกœ ๊ณ ฏผ•ผ. "ˆกƒ‰ ง‰Œ€๊ธฐ ‚ฌ ๊ธฐ๊ฐ„" ตœ†Œ๊ฐ€ ˜๊ฒŒ •˜ ค ––๊ฒŒ ••• €. ๊ทธŸฌ๊ณ  ‚˜„œ „ˆ˜ ฐฉ•๊ณผ ฑ…˜ ฐฉ•„ น„๊ต• ๊ฑฐ‚˜, ˜น€ •˜€ งˆผ. --JuNe

5 (ฉ):
ž˜„ ฃผŠ” ง.
  • Instead of being tentative, begin learning concretely as quickly as possible.
  • Instead of clamming up, communicate more clearly.
  • Instead of avoding feedback, search out helpful, concrete feedback.
from TestDrivenDevelopmentByExample

3 (™”): DDD ฑ… ‘œ€ ๊ถฆฌ•˜๊ธฐ

ฑ… ‘œ€ฅผ ๊ถฆฌ• •Œ„ ผข…˜ ””žธž„๊นŒ. •˜€งŒ, ‹œ๊ฐ””žธ— Œ€•„œŠ” •„Š” ฐ” —†œผ€กœ, ๊ทธƒฅ ๊ฐœธ ธ —ฐƒž‘šฉŒ€กœ ง„–‰–ˆ‹ค.
DDD •˜‹ˆ๊นŒ XP ฐฉ•ก ๊ณผ ž˜ งžŠ”‹คŠ” ง ƒ๊ฐ ‚ฌ—ˆ๊ณ , ๊ทธŸฌ‹ค๊ฐ€ TDD ƒ๊ฐ ‚˜๊ณ , ๊ทธŸฌ‹ค๊ฐ€ Calvin & Hobbes ๊ฐ€ ƒ๊ฐ ‚˜๊ณ  (—ฌ๊ธฐ๊นŒ€ •œค„๊ธฐ)
DDD •˜‹ˆ๊นŒ JuNe ˜• ' „™”๊ธฐ ‹ฌณผžˆœผ ข‹๊ฒ „ค~' ผ๊ณ  •œง ƒ๊ฐ‚˜๊ณ  (DDD ‹ˆ -_-) ๊ทธž˜„œ  „™” ฏธ€๊ฐ€ •„š”•  ๊ฒƒผ ƒ๊ฐ “ค–  „™”๊ธฐ ฆฝ•„Šธฅผ ๊ฒ€ƒ‰•˜๊ณ , ๊ทธŸฌ‹ค๊ฐ€  „™”๊ธฐ ฆฝ•„Šธค‘ บ˜นˆ  „™”ฐ›Š” ฏธ€๊ฐ€ •˜‚˜ žˆ—ˆ๊ณ  (—ฌ๊ธฐ๊นŒ€ •œค„๊ธฐ)

‘๊ฐœฅผ ๊ตฐจ‹œ‚ค‹ค๊ฐ€ ๊ฐˆ“ฑ•˜‹ค๊ฐ€ ๊ฒฐ๊ตญ ‹คŒ๊ณผ ๊ฐ™€ ‹ ˜—ˆ‹คŠ”. -_-; (›ž˜Š” ๊ทธƒบ˜นˆ  „™”ฐ›Š” ฏธ€งŒ žˆ—ˆ˜๊ฑฐž‘, บ˜นˆ  „™”„  ฝ‘Š”๊ฑฐ, บ˜นˆž‘ ™‰Šค๊ฐ€ ›ƒง‘ ๊ทผฒ˜— ˆˆœผกœ —‹ฌžˆ ‹Œ“•„†“๊ณ  '•„ šฐฆฌ˜ ‹€ ŠผŠผ•~' Ÿฐ‹œผกœ ข‹•„•˜Š” ™•ˆ ›ƒง‘ •„ €”จ๊ฐ€ '†ˆ˜ ž‹“ค;' •˜Š”๊ฑฐ “ฑ“ฑ - งˆน˜ ”„กœ๊ทธž˜จธ : ๊ณ ๊ฐ ˜ ๊€๊ณ„˜ งคƒ€ฌ ๊ฐ™‹คŠ” ƒ๊ฐ “ค–„œ - งŽ•˜Š”ฐ. ๊ฐˆˆ˜ก ฐฐ๊ฐ€ ‚ฐœผกœ ๊ฐ€Š”๊ฒƒ ๊ฐ™‹คŠ”. -_-;)

ProjectPrometheus Refactoring ๊ถฆฌ•˜๊ธฐ

Refactoring „ •˜๊ธฐ „ Todo ฆฌŠคŠธฅผ  •ฆฌ•˜Š”ฐงŒ 1‹œ๊ฐ„ •„ฅผ “ฐ๊ณ  ‹ค œ ž‘—…„ “ค–๊ฐ€€ –ˆ‹ค. ™œ ˜คž˜๊ฑธ ธ„๊นŒ ƒ๊ฐ• Refactoring „ •˜๊ธฐ— ถฉถ„žˆ Coverage Test ฝ”“œ๊ฐ€ —†‹ค ผŠ”  ‹ค. ˜„žฌ˜ UnitTest 85๊ฐœ“ค€  œŒ€กœ Œ•„๊ฐ€€งŒ, AcceptanceTest ˜ ๊ฒฝšฐ •€กœ Œ ˆ˜๊ฐ€ —†‹ค. ™œƒ•˜ ˜„žฌ Release ˜–žˆŠ”  „ ฒ„ „— ˜–ฅ„ ผน˜๊ธฐ •Œฌธ‹ค.  €ถ„„ „œ ™œ JuNe  DB — Œ€• „ธ €ถ„œผกœ ๊€ฆฌ๊ฐ€ •„š”•˜‹ค๊ณ  •ผ๊ธฐ–ˆŠ”€ ๊นจ‹ซ๊ฒŒ ˜—ˆ‹ค. ฆ‰, DB ™€€ จ•˜—ฌ ๊ฐœธ UnitTest ฅผ œ„•œ ๊ฐœฐœž “จ„ฐ ‚ กœฌ DB, ๊ทธฆฌ๊ณ  Integration Test ฅผ œ„•œ DB, ๊ทธฆฌ๊ณ  ฆฌฆˆ œ  œ’ˆ„ œ„•œ DB ๊ฐ€ •„š”•˜‹ค. ("ฒ„ „—…„ œ„• ๊ธฐ— ž‘„ฑ•œ ฐ„ฐ“ค„ ‚ ฆฝ‹ˆ‹ค" ผ๊ณ  „œน„Šค —…๊ฐ€ •ผ๊ธฐ •œ‹ค –ผงˆ‚˜ ™‹น•œ๊ฐ€.; ฒ„ „ Œจน˜ฅผ œ„•œ, †ต•…ŒŠคŠธฅผ œ„•œ DB Š” ”ฐกœ •„š”•˜‹ค.)

๊ทธฆฌ๊ณ , ๊ฐ๊ฐ˜ …ŒŠคŠธ“ค„ œ„•œ DB Property „ค • žœ กœšฐ ค Server Property ™”ผ€ ŠคฌฆฝŠธ ™”ผกœ น  ธ‚˜™€••œ‹ค. (…ŒŠคŠธ Œ•Œงˆ‹ค ”„กœ๊ทธžจ žฌŒŒผ •œ‹คŠ”๊ฑ, ถ”›„ ”„กœ๊ทธžจ กŒ„•Œ šจœจ ธ ฐฉ• •„‹ˆ‹ค.)

๊ทธฆฌ๊ณ ,  „— ProjectPrometheus ž‘—…• •Œ—” „œธ”ฆฟ …ŒŠคŒ… ฐฉ•„ ž‹ค. ๊ทธž˜„œ €๊ธˆ ProjectPrometheus ฝ”“œฅผ „œธ”ฆฟ €ถ„— Œ€• …ŒŠคŠธ๊ฐ€ —†‹ค. WEB Tier — Œ€•œ …ŒŠคŒ…„  „ œผกœ AT — ˜•œ‹ค. ฒˆ— ๊ธฐ‚ฌฅผ “ธ•Œ งˆ‹ ŒŒšธŸฌ˜ ๊ธ€„ ธšฉ, "WIMP Application — Œ€•„œ WIMP ฝ”“œฅผ •œค„„ ณต‚ฌ•˜€ •Š๊ณ  Console Application „ งŒ“คˆ˜ žˆ–••œ‹ค" ผ๊ณ  •ผ๊ธฐ–ˆ€งŒ, Š” WEB —„œ„ ‹คฅผ ฐ”๊ฐ€ —†‹ค๊ณ  ƒ๊ฐ•œ‹ค.

๊ฐ€••  ๊ธธ€ –ธ œ‚˜ €๊ฒŒงŒ Š๊ง„‹ค.

2 (›”): ProjectPrometheus †ŒŠค ฆฌทฐ & ฆฌŒฉ† ง. audio book MP3 œจ๊ธฐ

Prometheus ฅผ …ŒŠคŠธ๊ฐ€ †ต๊ณผ–ˆ‹ค •ˆ–ˆ‹คฅผ ฐ˜ณต•œ‹ค. •™๊ต „„œ๊€ ‹œŠค…œ˜ •ˆ •„ฑ ๊ทธฆฌ ›ฐ–‚˜€ •Š๊ธฐ •Œฌธ‹ค. (ฐ”๊พธ๊ณ  ‚œ ’ค ˜คžˆ ค งจ‚  ฌธ œฅผ ผœผ‚จ‹ค. ˜‘๊ฐ™€ กฐ๊ฑ‹—„œ •œฒˆ€ ๊ฒ€ƒ‰ ˜๊ณ  •œฒˆ€ ๊ฒ€ƒ‰ •ˆ˜‹ˆ.. ฉ)

 „— TDD • •Œ ˆ๊ธฐ Library ž˜Šค— Œ€• Mock ž˜Šค งŒ“ค—ˆ‹ค๊ฐ€ —†• ฒ„ ธŠ”ฐ, ‹ค‹œ Library Mock ž˜Šคฅผ งŒ“ค–••  ๊ฒƒ ๊ฐ™‹ค. ฆฌŒฉ† ง • •Œ Fail ‚œ …ŒŠคŠธกœ ฆฌŒฉ† ง„ •  ˆ˜Š” —†„…Œ‹ˆ.

Composition ˜ ฌธ œ 
 „— Delegation •˜Š” ž˜Šคฅผ •‹น ž˜Šค ‚— ฉคฒ„กœ ‘—ˆŠ”ฐ. ˜ˆฅผ “ค Ÿฐ‹œผกœ
~cpp 
public class BookMapper {
.
.
.

 private Book getBookFromRemote(String aBookId)
            throws ProtocolException, IOException {
        Library library = new Library();
        Book book = library.view(aBookId);
        return book;
    }

ฅผ ƒ„ฑž— „ฃ–ฃผŠ” ฐฉ•œผกœ ฐ”๊พธŠ” ๊ฒƒ ” ˜ฌฐ”ฅธ ””žธผ ƒ๊ฐœ‹ค. ‹คŒฒ˜Ÿผ.
~cpp 
public class BookMapper {

 public BookMapper(ILibrary library) {
        this.library = library;
 }

 private Book getBookFromRemote(String aBookId)
            throws ProtocolException, IOException {
        .
        .
        Book book = library.view(aBookId);
        return book;
    }

•‹น ž˜Šค ‚—„œ ƒ„ฑ•˜Š” ””žธ€ ๊ทธ ž˜Šคฅผ ๊ต•ค„ ˆ˜๊ฐ€ —†œผ‹ˆ œ —ฐ•œ ””žธ •„‹ˆ‹ค. ๊ทธ ‡‹ค๊ณ  setter ฅผ ‘Š” ๊ฒƒ„ ข‹€ ””žธ€ •„‹Œ๊ฒƒ ๊ฐ™๊ณ . (”„กœ๊ทธž˜ฐ ‹ค–‰ ค‘๊ฐ„— Delegation •˜Š” ๊ฐฅผ ๊ต•  ผ€ “œฌผ‹ค. State Pattern ‚˜ Strategy Pattern  •„‹Œƒ.) •„งˆ ฒ˜Œ— Mock Object ฅผ šฉ•˜—ฌ BookMapper ฅผ งŒ“ค—ˆ—ˆ‹ค Connection „ ง ‘ šฉ•˜๊ฑฐ‚˜, Library ๊ฐฅผ ‚€ œผกœ ง ‘ ธŠค„Šคฅผ ƒ„ฑ•˜—ฌ šฉ•˜Š” ””žธ€ •˜€ •Š•˜„ ๊ฒƒž€ ƒ๊ฐ “ ‹ค.
----
‚ฌ‹ค ~cpp LoD€ —„œ ž๊ธฐ๊ฐ€ งŒ“  ๊ฐ—Š” ฉ”„ธ€ฅผ ‚„ œ‹ค. •˜€งŒ „ธ€•œ …ŒŠคŠธฅผ •˜ ค €” —„๊ฒฉ•œ ฃฐ„  šฉ•••  •„š”ฅผ Šผ๊ธฐ„ •œ‹ค. ‹ˆ๊ฐ€ ง•˜Š” ๊ฑธ Inversion of Controlผ๊ณ  •œ‹ค. ๊ทธŸฐฐ ๊ทธ ‡๊ฒŒ Constructor— parameterกœ ๊ณ„†  „‹ฌ• ฃผ๊ธฐฅผ •˜‹ค parameter list๊ฐ€ ๊ธธ–€๊ธฐ„ •˜๊ณ , ๊ฐ parameter๊ฐ„— cohesion๊ณผ consistency๊ฐ€ –จ–€๊ธฐ„ •œ‹ค. ณ„ ƒ๊€—†– Š” ฆฌŠคŠธ๊ฐ€ ˜Š” ๊ฒƒ€.

factory methodฅผ ‚ฌšฉ•ผ.


~cpp 
public class BookMapper {
.
.
 private Book getBookFromRemote(String aBookId)
            throws ProtocolException, IOException {
        Book book=getLibrary().view(aBookId);
                .
                .
}
 protected Library getLibrary() {
        return new Library();
}

๊ฑธ ƒ†ฐ›•„„œ getLibraryฅผ override•˜๊ณ  MockObjectกœ —ฐ๊ฒฐ•ผ.

--JuNe

----
audio book

– œ ๊ฐ„งŒ— ๊ต— “ค ค Alice in wonderland ™€ Dr.Jekyll & Mr.Hyde ˜ค””˜ค ถ„ ƒ€‹ค. ๊ต™ธ๊ตญ– ถ„• น„๊ต   •ฆฌ๊ฐ€ ž˜ ˜–žˆŠ” “ฏ •˜‹ค. ‹คŒ—„ ข…ข… “ค ค•ผ๊ฒ ‹ค.

Alice in wonderland ˜ ๊ฒฝšฐ —ฌž„ฑšฐ๊ฐ€ ฝ–€‹ค.  „— “ค—ˆ˜ Sherlock Holmes ˜ ๊ฒฝšฐ— ตˆ™• ธ—ฌ„œธ€, ฐœŒ†„๊ฐ€ Šฆผ—„ ถˆ๊ตฌ•˜๊ณ  •„๊ฐ€ –จ–กŒ‹ค.  „—Š” ๊ทธƒ“ฃ๊ณ  จธฆฟ†—„œ ฌธžฅ„ ๊ทธฆฐ‹คŒ ••˜Š” ฐฉ‹œผกœ –ˆŠ”ฐ, ฒˆ—Š” ฐ›•„“ฐ๊ธฐ —ฐŠต„ ••ผ๊ฒ ‹ค.

 „— Alice in wonderland ฑ… žˆ—ˆ€งŒ  œŒ€กœ •ฅผ ž˜ –ˆ—ˆŠ”ฐ, ๊ฐœธ œผกœ ˜–ˆ˜€ ”ธฆฌŠ”๊ฒƒ— Œ€• ๊ทธƒฌธ œƒ™œผกœงŒ †“€๊ฒƒ ž˜ธ๊ฒƒ ๊ฐ™‹ค. ฌธ œฅผ ฌธ œกœ ธ‹•˜€ •Š๊ณ , ๊นจ‹ซŒœผกœ ธ‹•˜„ก …ธ ฅ•˜Š”๊ฒƒ€ žŠ–ฒ„ฆฌ๊ธฐ ‰ฝ‹ค. ฒˆ—Š” '” ‰ฌš žฃŒฅผ ฐพŠ”‹ค'ผŠ” ฐฉ• – ˜ฌผ„œ ‹ค–‰‹ค.
„ธŠธฅผ ž˜ •ˆ“ฐ๊ธฐ •Œฌธ— …Œ”„กœŠ” ž˜ •ˆ“ค„๊นŒ Cool Edit šฉ, MP3 กœ …นŒ–ˆ‹ค. ›จธŒ ™”ผ„ ๊ฒฐ๊ตญ€ ฐ„ฐ๊ธฐ—, งˆน˜ …Œ”„ งคผ„œ –™Š” “ฏ•œ Š‚Œœผกœ ›จธŒ ™”ผ Žธง‘•˜Š”๊ฒŒ žฌฏธžˆ—ˆ‹ค.  „— „คƒŠค Ÿฝ•Œ ›จธŒ ™”ผ— Œ€• …ŠคŠธ™”ผกœ €™˜ & ธฑ‹ฑ•˜Š” ”„กœ๊ทธžจ •„š”•œ œ ๊ฐ€ ƒ๊ฒผ‹ค.  „ …นŒ„ •˜๊ณ  ‚œ ’ค, Chapter ณ„กœ งคผ„œ ™”ผกœ  €žฅ•˜ ค๊ณ •˜Š”ฐ, ›จธŒฐ„ฐ— Œ€• ๊ฒ€ƒ‰„ • ˆ˜๊ฐ€ —†‹ค! ๊ฒฐ๊ตญ 'Œ€๊ฐ• ‡ถ„งœฆฌ ถ„Ÿ‰ผ ๊ฒƒ‹ค' ˜Š” 'Œ€๊ฐ• ‹คŒ•„ฐกœ „˜–๊ฐˆ•Œ ‡ˆ •„ ”œ ˆ๊ฐ€ žˆœผ‹ˆ๊นŒ.. †Œฆฌ น„Šธ™€ น„Šธ ‚ฌ๊ฐ€ Œ€๊ฐ•  •„ ˜ งž๊ฒ €...' ‹œผกœ ฐพ•„„œ ™”ผกœ ผ๊ฐœ๊ธ –ˆ€งŒ. ›จธŒ ฐ„ฐ— Œ€•œ text ๊ฒ€ƒ‰ ผƒ™”œ‹ค Ÿฌ•œ ๊ณ ƒ„ •ˆ•˜๊ฒ € •˜Š” ƒ๊ฐ “ ‹ค.

11›”

29 (๊ธˆ): ˜– งˆฌธ‹ต€‹œ๊ฐ„ ฐธ„. „คƒŠค Ÿฝ. Work Queue, To Do List. 7ง‰ 7žฅ.

Work Queue

•žœผกœ •˜๊ณ  ‹ถ€ ง‰—ฐ•œ ผ“ค— Œ€• ฃผšฑ ‚˜—, ๊ทธฆฌ๊ณ  ๊ทธค‘— Œ€๊ฐ• ‹นžฅ •••  ผ— Œ€•„œ ผ“ค„ € ” „ธถ„™”•˜—ฌ ‚˜ˆ„–•˜‹ค. ‹นžฅ Šนณ„•œ šจ๊ณผฅผ …ธฆฌ๊ณ  •œ๊ฑ •„‹ˆ๊ณ ,.. ๊ทธƒ•ณผงŒ•œ ผ“ค— Œ€•  –•˜‹ค.

 ๊ณ  ‚˜‹ˆ๊นŒ.. ‡‹ฌ „— '••€ ••€' –ˆ—ˆ˜ ๊ฒƒ“ค, ‡…„ „— '••€ ••€' –ˆ˜ ๊ฒƒ“ค Work Queue —„œ ๊ธฐ‹คฆฌ๊ณ  žˆ‹ค. €ฆฌกœŠ” Smalltalk ฝ”“œ  œŒ€กœ ฝ„ ค„ •ˆ’ค SBPP ๊ณต€•œ‹ค๊ณ  –ˆ—ˆ˜ ๊ฒƒž‘, Functional Language •˜‚˜ ต˜€‘”‹ค๊ณ  –ˆ—ˆ˜ ๊ฒƒž‘, ๊ฐ€๊นŒš ๊ฒƒœผกœ น˜ ๊ธฐ— งŒ“ค–†“€ †ŒŠค“ค ฆฌŒฉ† ง •˜„œ ผธŒŸฌฆฌ ถ”ถœ•œ‹ค๊ณ  –ˆ—ˆ˜ ๊ฒƒ“ค “ฑ“ฑ.

•„ง€ ˜‘ƒ•  ˆ˜Š” žˆ๊ธ •˜‹ค. ‹œ๊ฐ„„ —ˆฝ•ฃผ‹ ‹ค. –ธ œ๊นŒ€ —ˆฝ•ฃผ‹ค€Š” ๊ฒ €งŒ.

7ง‰ 7žฅ

˜„žฌ : http://www.savie.co.kr/SITE/data/html_dir/2002/10/01/200210010019.asp. ๊ฒฐ˜ผ„ •˜๊ณ  „ธ‚œ ”ธ„ žˆ‹จ‹ค. ˜„žฌ˜ ‚ฌง„„ ‹ˆ ‚จ๊ถ›”จ ‹ฎ•„๊ฐ€Š”๊ตฐ. M&A  „ฌธ šŒ‚ฌ Œ€‘œผ๊ณ  •œ‹ค.

๊ฝค ˜คž˜˜๊ธ –ˆ€งŒ (ฒŒจ ๊ทธ๊ฒŒ 9…„ „ •ผ๊ธฐž€‹ค. 93…„ ผ‹ˆ๊นŒ) ™ •šฑ˜ ฑ…„ ‹ค‹œ ฝ—ˆ‹ค. ๊ทธ‹น‹œ—Š” '•„. ๊ทธƒฅ ๊ณต€ ž˜•˜Š” ‚ฌžŒ˜ —‹ฌžˆ ๊ณต€–ˆ‹คŠ” •ผ๊ธฐ๊ตฌ‚˜' กœ ๊ทธƒ•œฒˆ ฝ๊ณ  ‚ฌ˜ ๊ฒƒœผกœ ๊ธฐ–ต•œ‹ค. ๊ทธŸฌ‹ค๊ฐ€ ๊ฐ„งŒ— ƒ๊ฐ ‚˜„œ ฑ…„ ‹ค‹œ ๊บผ‚ ฒ„Šค•ˆ—„œ ฝ—ˆ—ˆŠ”ฐ, ๊ทธ˜ ‘œ˜„ ฅ„ „œ ๊ทธ๊ฐ€ –ผงˆ‚˜ งŽ€ ‹œ“ค„ ฝ—ˆŠ”€, –ผงˆ‚˜ งŽ€ ฑ…“ค„ ฝ—ˆŠ”€ ธ‹ค. ค‘๊ฐ„ค‘๊ฐ„ ž‹ ˜ ˜„žฌ ‹ฌ •„ ‘œ˜„•˜„œ ธšฉ•˜Š” ‹œ“ค, …–ธ ๊ตฌ ˆ“ค—  „€ ๊ทธ ธšฉ•œ ‚ฌžŒ“ค˜ ฆ„“ค๊ณผ ถœฒ˜๊ฐ€ ‚˜™€žˆŠ” ๊ฒƒ„ „œ, •œŽธœผกœŠ” –ผงˆ‚˜ •™๊ต—„œ ฒ  €•˜๊ฒŒ ๊ฐ€น˜Š”€, ๊ทธ๊ฐ€ –ผงˆ‚˜ ฒ  €•˜๊ฒŒ ๊ณต€–ˆŠ”€๊ฐ€ Š” ๊ฒƒ ๊ฐ™‹ค.

‡…„งŒ— ฝ—ˆ˜ ๊ทธ˜ ฑ… 'งˆนจ‘œ —†Š” ฑ…‹ค' ง๊ณ „ •  •ผ๊ธฐ๊ฑฐฆฌ๊ฐ€ งŽ‹คŠ”๊ฒŒ ‹ค–‰ŠคŸฝ๊ฒŒ Š๊กŒ‹ค. (ฑ…˜ ž…žฅ—„œ‚˜ ‚˜˜ ž…žฅ—„œ‚˜)

„คƒŠค Ÿฝ

๊ทธ ค‘ กฐ‹ฌŠคŸฝ๊ฒŒ  ‘๊ทผ•˜Š” ๊ฒƒ '๊ฐ€กœงˆŸฌ ƒ๊ฐ•˜๊ธฐ' ‹ค. Š” •„ง 1002๊ฐ€ Good Reader / Good Listener ๊ฐ€ •„‹ˆ—ฌ„œ๊ธฐ„ •œฐ, ฑ…„ •œฒˆ ฝ๊ณ  ๊ทธ ‚šฉ— Œ€•  œŒ€กœ •ฅผ •˜งˆ •œ‹ค. ๊ทธŸฌ•œ ƒ™—„œ ‚˜˜ ฃผ๊€ จผ € ๊ฐœž…˜–ฒ„ฆฌ, ๊ทธ ฑ…— Œ€• –„ ˆ˜ žˆŠ” ๊ฒƒ ๊ทธงŒผ ™œ๊ณก˜–ฒ„ฆฐ‹ค๊ณ  ƒ๊ฐ•ฒ„ฆฐ‹ค. NoSmok:๊ทธฆผ“ฃ๊ธฐ˜ œ šฉ•„ •Œ๊ธ •˜€งŒ.

๊ธ€Œ”. •˜€งŒ, '๊ฐ€กœ€๊ธฐ'Š” ๊ต‰žฅžˆ ค‘š”•œ ‚ฌ๊ณ  ฐฉ‹ผ ƒ๊ฐ•œ‹ค. œ —ฐ•œ ‚ฌ๊ณ ๊ฐ€ ๊ฐ€Šฅ•˜๊ณ , ˜ œ•˜€ •Š€ •„””–ฅผ –„ ˆ˜ žˆ„๊ฒƒ‹ˆ๊นŒ. ( „˜ Metaphor ฅผ ƒ๊ฐ•˜ ””šฑ.)

•”Šผ, ‘๊ฐ€€๊ฐ€ ๊ผญ ƒŒ€˜Š” ผ€ •„‹ˆ‹ˆ๊นŒ. •”Šผ. ๊ทธ  „— ๊ตญ–/˜– …•Šฅ ฅ จผ €๊ตฐ.;;

28 (ฉ): •˜“œ †ŒŠค & ฌธ„œ  •ฆฌ. ProjectPrometheus ฒ„๊ทธ ˆ˜ •

๊ธฐ— ž‘„ฑ•œ †ŒŠค“ค€ ๊ณจนซ๊ฑฐฆฌ‹ค. ฅผ ‚˜ค‘—„ šฉ•˜ž‹ˆ ‚ก€ †ŒŠคผ๊ฒƒ๊ณ , ๊ทธ ‡‹ค๊ณ  ฒ„ฆฌ๊ธฐ—” •‹น ถ„•ผ ๊ณต€•˜๊ธฐ— ๊ฐ€žฅ ‰ฌš †ŒŠค๊ณ .. (ฌธ„œ“ค„ งˆฐฌ๊ฐ€€. †Œœ„ Œ๊ฐœผกœ ถˆฆฌŠ”.)
 „— 1002/ฑ…ƒ •ฆฌ ๊ฐ€ ƒ๊ฐ ‚˜„œ, •˜“œ •ˆ— žˆŠ” †ŒŠค, ฌธ„œ“ค— Œ€• ผข…˜ LRU •Œ๊ณ ฆฌฆ˜„ ƒ๊ฐ•๊ธฐกœ –ˆ‹ค. ฆ‰, Recent Readed ผŠ” ”” ‰† ฆฌฅผ งŒ“ค๊ณ , ตœ๊ทผ— •œฒˆผ„ ๊ฑ“œฆฐ ฝ”“œ, ฌธ„œ“ค€ Recent Readed — ณต‚ฌฅผ •˜Š” ๊ฒƒ‹ค. ๊ทธฆฌ๊ณ , ฝ—ˆ˜ †ŒŠค— Œ€•„œŠ” ผธŒŸฌฆฌ™”•˜Š” ๊ฒƒ‹ค.  ‡๊ฒŒ •„œ •œ 6๊ฐœ›”ฏค €‚œ’ค,  •ฆฌ•ฒ„ฆฌ ˜๊ฒ € •˜Š” ƒ๊ฐ.

€๊ธˆ  „ …ธž˜ฐฉ ”„กœ๊ทธžจ งŒ“ค•Œ šฉ–ˆ—ˆ˜ Audio Compression Manager €ถ„ šฉ•˜ผ๊ณ  •˜ •„งˆ ‹ค‹œ ––๊ฒŒ APIฅผ šฉ•˜Š”€ šŒƒ•˜Š”ฐ 2ผฏค ๊ฑธ๊ฒƒ‹ค. DX Media SDK €ถ„„ ‹ค‹œ šฉ•˜ผ๊ณ  •˜ •„งˆ •˜ฃจ •„ Spike ๊ฐ€ ‹ค‹œ •„š”•  ๊ฒƒ‹ค. ฆ‰,  „— งŒ“ค–†“€ †ŒŠค๊ฐ€ žˆ‹ค๊ณ  ๊ทธ €‹ ˜„žฌ ‚˜˜ ผ€ผ๊ณ  •˜๊ธฐ—” ฌธ œ๊ฐ€ žˆ‹ค.

๊ธฐ˜ ฝ”“œ“คž€ •œŽธœผกœŠ” ‚ฌžŒ„ ๊ฒŒœผ๊ฒŒ •˜Š” ›™ ฅธ ๊ฒƒ ๊ฐ™‹คŠ” ƒ๊ฐ “ ‹ค. –„ค”ˆ žงŒ‹ฌ„ งŒ“ค–‚ผŸฐ€„ ฅธ‹ค. ๊ทธž˜„ —ฌ „žˆ €šฐ€ •˜Š”๊ฑ.. ๊ทธ•Œ ฆฌ €ฆฌ  •‹ —† žฃŒ œผฉฐ ‚ฝงˆ•˜๊ณ  ขŒ ˆ–ˆ„•Œ๊ฐ€ ƒ๊ฐ‚˜„œผ๊นŒ.

•”Šผ. –ธ  ๊ฐ€ ‹ค‹œ ‚ ผ€๊ฐ€ ˜๊ธฐฅผ.

----
Prometheus ฝ”“œฅผ ‹ค‹œ checkout •˜๊ณ  UnitTest ๊นจง„ €ถ„„ „œ ๊ธฐ˜ TDD ง„–‰ ญ –ผงˆ‚˜ Š”€๊ฐ€ ˜€‹ค. (‹ค‹œ Green Bar ฅผ ๊ฒŒ” •˜๊ธฐ— ง„–‰••• ผ งŽ•˜œผ‹ˆ๊นŒ. Extractor Remote Test ๊ฐ€ no matched ( •๊ทœ‘œ˜„‹—„œ งคนญ ‹คŒจ)กœ ๊นจกŒ„•Œ ƒ๊ฐ•••  ผ ‘๊ฐ€€‹ค. •˜‚˜Š” HTML   œŒ€กœ ฐ›•„กŒŠ”๊ฐ€(˜Š” HTML  „„œ๊€—„œ˜ —Ÿฌฝ”“œฅผ ฐ˜™˜•˜Š”๊ฐ€), •˜‚˜Š” extractor ๊ฐ€ ๊ทธ ๊ตฌ‹ค„  œŒ€กœ •˜Š”๊ฐ€. ๊ทธŸฐฐ, …ŒŠคŠธ ฝ”“œฅผ  € ‘๊ฐ€€๊ฐ€ ฌถ—ฌžˆ‹ค.

๊ทธฆฌ๊ณ   •๊ทœ‘œ˜„‹„ šฉ•œ extract ๊ฐ€ ๊ณผ—ฐ 'The Simplest Thing' ผ๊นŒผŠ” ƒ๊ฐ„ •˜๊ฒŒ ˜—ˆ‹ค. ˜ฌฐ”ฅธ  •๊ทœ‘œ˜„‹„ ฐพ•„‚••˜๊ณ , ๊ทธŸฌ‹ค ฐ„ฐ ฝ”“œ™€  •๊ทœ‘œ˜„‹ ผข…˜ Duplication „ งŒ“ค–‚ธ‹ค. (ŒŒ‹ฑ•˜ คŠ” ฌธ„œ˜ ผ€๊ฐ€  •๊ทœ‘œ˜„‹— “ค–๊ฐ€€กœ) ๊ทธฆฌ๊ณ  RE Š” RE ฌธ•„ •„Š” ‚ฌžŒผ ๊ฒ €งŒ, ๊ทธ ‡€ •Š๊ณ  ง‰—ฐ•œ ๊ฒฝšฐ— TDD •  ๊ฒฝšฐ Try and Error ‹œผกœ  ‘๊ทผ•ฒ„ ˆ˜ žˆ‹ค. (‚˜˜ ๊ฒฝšฐŠ” ๊ฑธ  ง„ œผกœ •˜๊ธฐ œ„• ‘œณธ ˜Š” ฐ„ฐฅผ ž‘๊ฒŒ ‹œž‘•œ‹ค.) extract ˜ 'Simplest Thing' Š” find & substring ผ๊ฒƒž€ ƒ๊ฐ„ •ณธ‹ค.

๊ทธฆฌ๊ณ , „„œ๊€ UI ๊ฐ€ ฐ”€Œ—ˆ„ ๊ฒฝšฐ— Œ€•œ Œ€ฒ˜ฐฉ•ˆ— Œ€•„œ ฆฌ €ฆฌ •„””–ฅผ ๊ถฆฌ• •˜—ˆŠ”ฐ,  •๊ทœ‘œ˜„‹€ถ„„ ”ฐกœ –ผ–‚– ™€™”ผกœ ‘˜€ ( ‡๊ฒŒ •˜ ŒŒผ•˜€ •Š•„„  •๊ทœ‘œ˜„‹„ ˆ˜ ••˜ œ‹ค) ˜Š” HTML „  „€ Parsing •˜—ฌ DOM Šธฆฌฅผ งŒ“ ’ค •‹น …ธ“œ˜ Position “ค— Œ€• ”ฐกœ ™€™”ผกœ ‘˜€ (Š” ถ”›„ ผข…˜ extractor tool กœ นผ‚ผ ˆ˜ žˆ„ ๊ฒƒ€กœ) •˜Š” •„””–๊ฐ€ – ˜ฌž‹ค.

----
To Do List ˜ ค‘š”„ฑ

Extract €ถ„— Œ€• „ˆ …ŒŠคŠธ˜ ‹จœ„๊ฐ€ ฌ‹ค๊ณ  Œ‹จ,  €ถ„„ ฒ˜Œ€„ฐ ‹ค‹œ TDDกœ ž‘„ฑ•˜˜€‹ค. Bottom Up Šคƒ€ผกœ ž‘€ ‹จœ„€„ฐ ฐจ๊ทผฐจ๊ทผ ง„–‰•˜˜€‹ค. ๊ทธŸฐฐ To Do List ฅผ ž‘„ฑ„ •ˆ•˜‹ˆ๊นŒ, ค‘๊ฐ„— ž ๊น ง‘ค‘„๊ฐ€ ’€–กŒ„•Œ ˜‘๊ฐ™€ ผ„ •˜Š” ‹คฅธ ฉ”†Œ“œ“ค„ งŒ“ค–ฒ„ฆฐ ๊ฒƒ‹ค.

Top Down œผกœ  ‘๊ทผ•˜—ฌ •‹น ฉ”†Œ“œ๊ฐ€ •„š”•€Š” ผ„ นจฆฌ งŒ“ค–‚๊ฑฐ‚˜, To Do List ฅผ ž‘„ฑ, Bottom Up œผกœ  ‘๊ทผ•œ‹ค •˜”ผ„ ๊ถ๊ทน œผกœ ๊ตฌ˜„•˜ คŠ” ‘œ€–ฅ  …™••˜ ๊ธธ„ —คงฌ ผ —†‹คŠ” ๊ฒƒ„ ‹ค‹œ๊ธˆ žฌฐจ ™•ธ•˜๊ฒŒ ˜—ˆ‹ค.

4 (›”): ˜– ๊ณต€, XP Installed •œ„œ ฝ๊ธฐ

š”ƒˆ ˜–๊ณต€ฅผ ––๊ฒŒ • ๊นŒ ๊ถฆฌค‘, Œ€๊ฐ• ‹คŒ˜ ๊ฐ„‹จ•œ ”„กœ„ธŠคฅผ งŒ“ค๊ณ  ง„–‰•๊ธฐค‘.

  • technetcast ค‘ ๊€‹ฌžˆŠ”๊ฒƒ„ •Œ•„“ฃ๊ฑ •Œ•„“ฃ๊ฑ •œ 30ถ„„ “ฃ๊ณ 
  • 504 absolutely essential words ฅผ ๊ต‰žฅžˆ Šฆฐ†„กœ šฉ•˜๊ณ  (š” 4ผ๊ฐ„, •˜ฃจ ‹œ๊ฐ„‹น ‹จ– 4๊ฐœ”ฉ ‚˜๊ฐ„‹ค. ๊ฑฐ๊ธฐ žˆŠ” ‹จ– œ ๊ณ , ๊ตฌฌธ„ ฝ€’ค, •œฒˆ Šฌฉ ๊ณ  ๊ตฌฌธ ‚šฉ„ – ˜ฌฆฌ„œ ›ฌธ„ žฌ˜„•๊ธฐ‹œผกœ ง„–‰•˜‹ค‹ˆ ๊ฝค Šฆฌ‹ค. จธฆฟ†—„œ ˜–กœ € ‹ค๊ฒŒ ‘œ˜„˜–  €žฅ˜๊ธฐ„ •œ‹ค.)
  • ›„œ ฑ… ฝ๊ธฐ.
ผ‹จ š” 3ผ๊ฐ„ ง„–‰ & ๊€ฐฐค‘. ผ‹จ œผกœ Š๊ณธ ๊€ฐฐ— ˜•˜,
  • ˜– “ฃ๊ธฐ ›„ ˜– ‹จ– —ฐŠต & ๊ตฌฌธ ๊ธฐผ•ŒŠ” ง„–‰ งค„Ÿฝ‹ค. ฑ…„ ฝ๊ธฐ  „—, •Œ•„“ฃง„ •˜”ผ„ technetcast „ “ฃ๊ณ  ‚˜, ฑ…„ ฝ„ •Œ ฆฌ“ฌ ž˜ žกžŒ‹ค.
  •  „˜ ๊ณ “ฑ•™๊ต‹œผกœ • • ๊ฑฐ˜ •˜ฃจ ‚˜๊ฐ€Š” ‹จ–๊ฐ€ 20๊ฐœ๊ฐ€ „˜–„œ.; •˜€งŒ, €๊ธˆ 4๊ฐœ ‚˜๊ฐˆ•Œ—” ™•‹คžˆ žฌฏธ„ žˆ๊ณ , •‹น ƒ™— Œ€• ฝฉ๊ธ€ฆฌ‰ฌผงˆ จธฆฟ†— ˜–ฌธžฅ งŒ“ค–ง„‹ค. — Œ€•„  3ผ •„ ” ๊€ฐฐ•„š”. •”Šผ žฅ /‹จ € •„ : †„. ผ‹จ€ ‚œ  „žฅผ ƒ•˜ ค •œ‹ค. –ฐจ”ผ ž˜ •˜Š” …€„‹ˆ๊นŒ ญ˜ •˜“  šจœจ –จ–€Š”๊ฑ ‹น—ฐ•˜‹ค ƒ๊ฐ•˜๊ธฐ •Œฌธ—.
  • technetcast ฅผ ™œ —ฌ€  œŒ€กœ •ˆšฉ–ˆ„๊นŒ. Ron •„ €”จž‘ Bob •„ €”จ, Martin Fowler ผŠ” ‚ฌžŒ˜ †Œฆฌฅผ “ฃ๊ฒŒ ˜—ˆ๊ตฐ. ‚šฉ€ “ฃ๊ณ  ‚œ ’ค—”  œŒ€กœ ๊ธฐ–ต‚˜ง„ •Š€งŒ. (˜–กœ “ค—ˆŠ”ฐ ๊ธฐ–ต„ žฌƒ•„œ š”••˜ ค‹ˆ, ˜– š”•„ •ณธ  —†Š” ๊€๊ณ„กœ จธฆฟ†—„  •œ๊ธ€กœ˜ ฒˆ—ญž‘—… •„š”•˜‹ค. ˜–กœ ‚ฌ๊ณ ๊ฐ€ ๊ฐ€Šฅ•˜‹ค, •„งˆ จธฆฟ†—„  ˜–กœ š”•• ๊ฑฐ๊ณ ..) ผ‹จ งˆŒ„ น„šฐ๊ณ  ผฃผผ •„ “ค–ณผ๊นŒ.
๊ฐœ„ •ˆ ๊ถฆฌ
  • ˜– “ฃ๊ธฐ— Œ€•œ ฐ›•„“ฐ๊ธฐ žฅผ จผ € —ฐŠต•Š”๊ฒƒ ˆœ„œผ ๊ฒƒ ๊ฐ™‹ค. technetcast ค‘ 10ถ„งœฆฌ งง€ ธ„ฐทฐ— Œ€• ฐ›•„“ฐ๊ธฐ —ฐŠต„ •Š”๊ฑ ––จ๊นŒ. (‹จ, งžŠ”€ฅผ ™•ธ•  ŠคฌฆฝŠธ๊ฐ€ —†Š”๊ฒŒ ‹จ ๊ตฐ)
    • ˜–“ฃ๊ธฐ —ฐŠต€  „— นœ๊ตฌ๊ฐ€ ˜–๊ณต€ „™€ค„•Œ –ˆ—ˆ˜, …ธž˜๊ฐ€‚ฌ ฐ›•„ ๊ธฐฅผ •˜Š”๊ฒŒ ‹€ ธŠ”€ ™•ธ•˜๊ธฐ„ Žธ•˜๊ณ  žฌฏธžˆ„ ๊ฒƒ ๊ฐ™‹ค.
  • ‚˜จธ€“ค€ ผ‹จ ๊ณ„† ‹ค—˜ & ๊€ฐฐ.
XP Installed ฅผ •œ„œกœ ‹ค‹œ  •…„ –ˆ‹ค. ˜–กœ ฝ—ˆ„•Œ จจนœผ คŠ” €ถ„— Œ€•œ Œ€๊ฐ•˜ ‚šฉ ŒŒ•…œ„ฃผกœ ฝ–„œ ๊ทธŸฐ€,    ถ” • €ถ„ ๊ฐ™€ ๊ฒƒ„ ˆˆ— “ค–˜คŠ”. Ÿฐ.

•”Šผ, ๊ณ„†. „คต€ จธฆฌฅผ œ„•. (๊ฐˆˆ˜ก ผ€ ˜•‹ 3FS — •ˆงžŠ”๊ตฐ)

10›”

31 (ฉ): Seminar:YoriJori Pair

VPP กœ ง„–‰. •œ™•ˆ ††“๊ณ  žˆ–„œ ๊ฐœธ œผกœ •ฝ๊ฐ„ ๊ฑฑ • •ž„ฐŠ”ฐ, ‘ฃผ”จ๊ฐ€ Pair ฅผ ž˜•ฃผ—ˆ‹ค. ”„กœ Šธ ฐธ—ฌ„๊ฐ€ ๊ฐ€žฅ †’•„„œ ๊ทธŸฐ€ ๊ฒ €งŒ, •  ผ— Œ€• ฆ‰๊ฐ œผกœ •๊ฒฐฑ…„ ƒ๊ฐ•‚Š” Šต  •ง Œ€‹จ–ˆ‹ค. 2‹œ๊ฐ„™•ˆ˜ ž‘—…„ ‹œ๊ฐ„ฅธ€ ฅธฑ„ ฆ๊ฒ๊ฒŒ ง„–‰–ˆ‹ค.

Editplus กœ VPP ง„–‰•˜Š” •œฐฝ— to do list ฅผ  —ˆŠ”ฐ, VPP ธ ๊ฒฝšฐ •œ‚ฌžŒ todolist ฅผ  Š” ™•ˆ, “œผฒ„๊ฐ€ ฝ”“œฅผ žก€ •œ‹คŠ”๊ฒŒ •œŽธœผก  ‹จ š”, •œŽธœผก  žฅ  ๊ฐ™๊ธฐ„ •˜‹ค. ผ‹จ€ ๊ถฆฌ.

Šน • Œ€›๊ณผ˜ † ก  •„š”•œ Task ™—” ณ„‹คฅธ – ค›€ —† ž˜ ง„–‰˜—ˆ‹ค. Virtual Pair Programming —„œ„ VIM ‹จ•‚ค“ค„ ฐฐ› ‹ค.; ctrl + v, shift + v ผ„œ งคฒˆ • •Œ Help ’คกŒ‹ค ๊นŒจน๊ณ  ๊ทธžฌ˜๊ฒƒ ๊ฐ™€ฐ,  œŒ€กœ ตž“ฏ •˜‹ค.

----
Conceptual Integrity — Œ€• ฐพ•„˜ค‘ ๊ผฌฆฌ— ๊ผฌฆฌฅผ ฌผ๊ณ  …ผฌธ„ ‹ค๊ฐ€ ˜™˜ ๊ธ€„ ๊ฒŒ ˜—ˆ‹ค.
http://www.utdallas.edu/~chung/patterns/conceptual_integrity.doc - Design Patterns as a Path to Conceptual Integrity ผŠ” ๊ธ€๊ณผ ๊ทธ ๊ธ€๊ณผ ๊€ จ, Design Patterns As Litmus Paper To Test The Strength Of Object Oriented Methods ผŠ” ๊ธ€„ ๊ฒŒ ˜—ˆŠ”ฐ, http://www.econ.kuleuven.ac.be/tew/academic/infosys/Members/Snoeck/litmus2.ps ‹ค. ””žธŒจ„˜ ƒ„ฑ„ฑ๊ณผ ๊€ จ, RDD ™€ EDD ๊ฐ€ –ธ๊ธ‰ ˜Š” “ฏ •˜‹ค.

29 (™”): ™”Šธ—ค“œ๊ณผ •ฒ •™˜• ฝ๊ธฐ ๊€ จ.

๊ณต€ผŠ” ๊ฒƒ— Œ€• จธฆฟ† ƒ๊ฐ„  •ฆฌ • • ๊ผญ †— žกžˆŠ” ฑ… „ฑ˜๊ธฐŠฅ ๊ณผ ™”Šธ—ค“œ๊ณผ •ฒ •™˜• ‹ค. (๊ฐ™€ ฑ…งŒ žกœผ‹ˆ๊นŒ œ„—˜•œ๊ฑ€„ ๊ฒ ‹ค.) š” ‚ฌ ญ”๊ฐ€ จธฆฟ† —ˆ „•˜‹ค. ญ”๊ฐ€๊ฐ€. • • žˆŠ” “ฏ•œ.

21, 22, 23 (›”, ™”, ˆ˜): Freechal Album Grabber ž‘„ฑค‘.

•„Š” ‚ฌžŒœผกœ€„ฐ €ƒ„ ฐ›•„„œ ž‘„ฑค‘. ฏธ ”„ฆฌฒผ ๊ฒŒ‹œŒ ฐฑ—… ”„กœ๊ทธžจ€  œกœ“œ‚˜ €“œ, “œฆผœ„ฆˆ “ฑ—„œ งŒ“ค–กŒŠ”ฐ, •ฒ”/žฃŒ‹ค ถ”ถœ€ •„ง ฃจ–€€ •Š•˜‚˜ ‹ค. ญ, กฐ๊ธˆžˆœผ ‚˜˜ฌ ๊ฒƒ„ ๊ฐ™€ฐ.. ๊ทธƒฅ ๊ฐœธ œผกœ —ฐŠต๊ฒธ งŒ“ค–๊ฒŒ ˜—ˆ‹ค.

Python šฉ.  ‹นžˆ TDD ™€ ค‘๊ฐ„ UP Frontฅผ „ž—ˆ‹ค. (CRC™€ UML„ šฉ) ๊ฑฐ˜  •๊ทœ‘œ˜„‹‚˜ find “ฑ„ šฉ•œ ŠคŠธง ŒŒ‹ฑ …ธ๊ฐ€‹ค๊ธ‰€งŒ, •˜ฃจ ž‘—…น˜๊ณค ƒ๊ฐ‹ค งŽ ‚˜๊ฐ„ ๊ฒƒ ๊ฐ™‹ค.

1ฐจ œผกœ CRC ฅผ šฉ•˜—ฌ ๊ฐ„‹จ•œ Conceptual Model „ งŒ“ ’ค, TDD กœ ๊ฐœ๊ฐœ “ˆ„ ž‘—…–ˆ‹ค.

ค‘๊ฐ„ ๊ฐœ๊ฐœ˜ “ˆ„ †ต•• •Œฏค—  „— ƒ๊ฐ•‘” ””žธ  œŒ€กœ ๊ธฐ–ต ‚˜€ •Š•˜‹ค.; •Œ Sequence Diagram „ ๊ทธฆฌ„œ ”„กœ๊ทธžจ˜ ฆ„„ ฒœฒœžˆ ƒ๊ฐ–ˆ‹ค. –Š •„ ง„–‰œ ฐ”๊ฐ€ žˆ๊ณ , ๊ฐœฐœ•˜„œ ๊ฐœ๊ฐœณ„ “ˆ— Œ€•œ ธ„ฐŽ˜Šค“ค„  •™•žˆ •Œ๊ณ  žˆ—ˆ๊ธฐ •Œฌธ—, Conceptual Model ‹ค ” ๊ตฌ ธ Upfront กœ ๊ฐ€„ ณ„ ฆฌ๊ฐ€ —†‹ค๊ณ  Œ‹จ–ˆ‹ค. ‚๊ฐ€ งŒ“  “ˆ„ ผข…˜ Spike Solution ฒ˜Ÿผ  ‘๊ทผ•˜๊ณ , ‹ค‹œ TDDฅผ “ค–๊ฐ€๊ณ  •˜‹ˆ๊นŒ ค‘๊ฐ„ ง„คž„ —† ๊ฑฐ˜ ผ‚ฌฒœฆฌกœ ž‘—…•˜๊ฒŒ ˜—ˆ‹ค.

  • TDD˜ …ŒŠคŠธ“ค€ งˆน˜ ž˜ฃผจธ‹ˆ ๊ฐ™‹ค. ฌตง•œ Š‚Œ„ ฃผ„œ ”„กœ๊ทธž˜ฐ •œ ๊ฒƒ“ค„ ••˜๊ฒŒ •˜‹ˆ๊นŒ. ๊ทธฆฌ๊ณ , ๊ฐˆˆ˜ก ŠผŠ” ๊ฒƒ€งŒ, …ŒŠคŠธ —†Š” ฆฌŒฉ† ง€  •ง ƒƒ•˜๊ธฐ – ต‹ค. š”ƒˆŠ” ค‘๊ฐ„ค‘๊ฐ„ …ŒŠคŠธฅผ ž‘„ฑ•˜€ •ŠŠ” ฝ”“œ“ค„ šฉ•˜๊ณ  žˆ‹ค. กฐ‹ฌŠคŸฝ๊ธ •˜€งŒ, “ˆ˜ ณตžก„,ค‘š”„— ”ฐผ  ‹นžˆ ๊ณจผ“ธ ˆ˜ žˆ„ ๊ฒƒ ๊ฐ™‹ค.
  • š”ƒˆ“ค– ‹ค‹œ๊ธˆ Šผ€งŒ, vi กœ ŒŒฌ ”„กœ๊ทธž˜ฐ •˜Š”๊ฒŒ ๊ฐ€žฅ Žธ•œ๊ฒƒ ๊ฐ™‹ค. cygwin „ “ฐ‹ˆ๊นŒ œˆ„šฐ๊ฑ ZP ๊ณ„ •๊ฑ ž‘—…Šคƒ€ผ ˜‘๊ฐ™•„„œ ข‹‹ค. ๊ทธฆฌ๊ณ , command œ„ฃผ˜ ž‘—…™˜๊ฒฝ€ ‚๊ฐ€ •˜ คŠ” ผ— Œ€• …‹œ œผกœ ƒ๊ฐ•˜๊ฒŒ” •˜Š” šจ๊ณผฅผ ฃผŠ”๊ฒƒ ๊ฐ™‹ค. NoSmok:‹จ —„œ˜คŠ”žฅ ž„๊นŒ.
  • 3ผ ฝ”“œ ƒ‚ฐŸ‰ 691 ผธ. …ŒŠคŠธ ฝ”“œ 245ผธธค‘.
  • ˜ˆ „ PHP ”„กœ๊ทธž˜ฐ • •Œ งจ‚   œกœ“œ †ŒŠค„œ š•–ˆŠ”ฐ -_-; (๊ณ  ฐฐšธ †ŒŠค •„‹ˆ‹ค ‘ฅ‘ฅ, ™œ Šค‚จ œž‘•˜Š” ‚ฌžŒ“ค †ŒŠค ˆ˜ ••˜—ฌ ๊ธฐŠฅ“ค„ งŒ“ค–‚••˜Š”๊ฐ€ “ฑ“ฑ -_-.. ””žธ œผกœ ๊ทธฆฌ ๊ณ  ฐฐšธ ๊ฒƒ •„‹ˆผ๊ณ  ƒ๊ฐ–ˆ๊ธฐ •Œฌธ. ๊ทธƒ…ธ๊ฐ€‹ค ฝ”“œผ๊ณ  ƒ๊ฐ.)
๊ทผฐ.. ž๊ธฐ •™๊ตˆ˜—… “คœผ„œ ˆ˜งŽ€ ‚ฌžŒ“ค˜ ‚ฌž‘„ ฐ›Š” ฒ„ „ 4.0 ƒ„ ฐ”ผŠ” ”„กœ๊ทธžจ งŒ“œŠ”๊ฒŒ –”” ‰ฌšผผ๊นŒ. ””žธ ›Œฅญ•˜๊ณ  ๊น””•œ ฝ”“œฅผ งŒ“œŠ” ๊ฒƒ ง๊ณ  • ผ€ งŽ‹ค. ” ค‘š”•œ, ๊ทผณธ ธ, ž๊ธฐ๊ฐ€ •˜ ค๊ณ  •˜Š” ผ˜  € —‡ธ๊ฐ€. Moa:WorseIsBetter
  • •ฝ๊ฐ„ •„‰ฌ›€: Ž„งค‹ˆ•„ (http://www.perlmania.or.kr/PDS/pds.pl?mode=view&num=38) ™œ™•˜‹œŠ” ถ„ จผ € ๊ฒ”Ÿฌฆฌ €›๊ธฐŠฅ๊นŒ€ งŒ“ค—ˆ‹ค; ŠคŠธง ฒ˜ฆฌ— Œ€• Ž„ฝ ๊ฐœฐœž๊ฐ€ † ” น ฅธ๊ฑ๊ฐ€.. ‘; (ฌผก  € „Ÿ•˜๊ฒŒ ž‘—…•œ๊ฒƒ„ žˆ€งŒ. -_-)
17, 18 ผ (ฉ, ๊ธˆ): TDD ๊ธฐ‚ฌ ง„–‰.

MMM —„œ˜ '”„กœ๊ทธž˜จธ˜ ‚™€ฃผ˜'๊ฐ€ – ˜คŠ”. -_-;  „‚  ๊ธฐ‚ฌ“ฐ‹ค๊ฐ€ กธ ค„œ žคŠ”ฐ, ๊ธˆš”ผ •„นจจน๊ณ  ƒˆ ‚˜„œ •„ฃผ ฃผ๊ธˆ‹ค. ‚ฌžŒ •˜Š” ผ— Œ€•„œ œ —†Š” ‚™€ฃผ˜Š”  •‹น™”   ˆ˜ —†‹ค. -_-; ˜คŠ˜ •˜ฃจข…ผ † •  ๊ฒƒ ๊ฐ™€ Š‚Œ•Œฌธ— ฃฝ„ €๊ฒฝธค‘.;

  • ๊ฒƒ„ ณ‘ธ€ ๊ฒ ‹ค. --a „ธฏธ‚˜ ‚ งœ ‹ค๊ฐ€˜ฌ•Œ ฐฅจน‹ค ฃฝ๊ฒ Š” €๊ฒฝ‚˜, ๊ธฐ‚ฌ งˆ๊ฐ‚ งœ ž„••˜‹ˆ ฃฝ๊ฒ Š” €๊ฒฝ‚˜. –””  •‹ ๊ณผ น˜ฃŒผ„ ฐ›•„•ผ๊ฒ ‹ค. -_-a (˜‹ œผกœ ฑ…ž„๊ฐ••€…ฆผ˜€, Šค€ค„๊€ฆฌฏธˆ™œผกœธ•œ‹ ๊ฒฝ•••ฆ ๊ธฐƒ€“ฑ“ฑ ๊ตฐ‹œ ๊ตฐ‹œ )
  • Šค€ค„ ๊€ฆฌŠ” ™•‹คžˆ ฏธˆ™–ˆ‹ค. €‚œฒˆ ๊ธฐ‚ฌ “ธ•ŒŠ” Pair ˜€—ˆ๊ธฐ •Œฌธ— น„Šท•œ ‹œ๊ฐ„„ • ‹น•„œŠ” ๊ณคž€–ˆ‹คผŠ” ƒ๊ฐค‘. ˜คžˆ ค 1.5ฐฐ ƒ„ žก๊ณ  žฌน ๊ฒŒ ง„–‰–ˆ–•–ˆ๊ฑงŒ. ๊ฒฐ‹จ„ ‚ฆฌŠ” †„๊ฐ€ Šฆฌ‹ค. นจฆฌ –„๊ฑ นจฆฌ –๊ณ , นจฆฌ ฒ„๊ฑ นจฆฌ ฒ„ ค••˜๊ฒ ๊ฑงŒ.
16 ผ (ˆ˜): TDDBE ‹ค‹œ  •…. ๊ธฐ‚ฌ ง„–‰.

TDDBEฅผ PowerReading —„œ˜ ฐฉ•„  šฉ•„œ ฝ–•˜‹ค. ‚๊ฐ€ •„š”กœ •˜Š” €ถ„ธ '™œ TDDฅผ •˜Š”๊ฐ€?' ™€ 'TDD Pattern' €ถ„— Œ€•„œ –ˆŠ”ฐ, —ฌ „žˆ  ‘๊ทผ•€ •ฅผ œ„ฃผกœ –ˆ‹ค. WPM € ‰๊ท  60Œ€. •„Š” •œฒˆ€ 90% (ฑ…„ •ˆ๊ณ  š”•„ “ธ•Œ Œ€€ถ„˜ ‚šฉ ๊ธฐ–ต ‚ฌ‹ค.), •œฒˆ€ •„ 40%(•ŒŠ” ‚ฌ „„ •ˆฐพ•˜—ˆ‹ค.) •„™€ †„˜ ˜–ฅ€ —ญ‹œ ™ธ๊ตญ– ‹ค ฅ€ถ„ธ๊ฒƒ ๊ฐ™‹ค. ‹จ– žฅผ ฅผ•Œ, Š” ฌธ• ‚˜™”„ ๊ฒฝšฐ˜ ฌธ œŠ” ฝ๊ธฐ ฐฉ•˜ ฌธ œ๊ฐ€ •„‹Œ ๊ฒƒ ๊ฐ™‹ค.

š”ƒˆ Summary • •Œ˜ Š‚Œ ฐธ ข‹‹ค. ฑ…„ ”น–จนŠ”‹คŠ” Š‚Œ “œ‹ˆ๊นŒ. †„๊ฐ€ Šฆฌ๊ฒŒ ‚˜˜ค”ผ„. •œ™•ˆ€  ฆฌ“ฌœผกœ. กฐ๊ธˆ”ฉ ˜ฌฆฌ๊ธฐ …ธ ฅ…ธ ฅ.

14 ผ (›”): TDD ๊ธฐ‚ฌž‘„ฑ Start, ผฃผผ • ผ „ค •.

– œ ‹ค–ฆฌ …‹Œ…•œ ๊ฒƒ„ šฉ•˜๊ณ , XP —„œ˜ Story  •ฆฌฐฉ•„ •ฝ๊ฐ„  šฉ•˜˜€‹ค. •„ง ๊ฐ Story — Œ€•„œ Task ฅผ •ˆ‚˜ˆ๊ธฐ •Œฌธ—, ผ‹จ € ” • ผ“ค— Œ€• ๊ตฌ ธ „œˆ  •„š”•˜‹ค.
•„นจ ๊ธฐƒ‹œ๊ฐ„ 7‹œ. To Do List —„œ ž‘€ ผ“ค— Œ€•„œŠ” ๊น””•˜๊ฒŒ ฒ˜ฆฌ. ‹จ, •ฝ๊ฐ„ ‹จœ„ฅผ ฌ๊ฒŒ žก€ ผ“ค— Œ€•„œ  œŒ€กœ ฒ˜ฆฌฅผ •˜˜€‹ค. (2-3‹œ๊ฐ„ ๊ฑธ ๊ฒƒผ ƒ๊ฐ˜Š” ผ“ค) ฐจผฆฌ  ผ“ค„ 1‹œ๊ฐ„ ‹จœ„ ผ“คกœ ” ผ๊ฐฐ—ˆœผ –– –ˆ„๊นŒ •˜Š” •„‰ฌ›€ “ ‹ค.

•™๊ต— „ฐฉ•˜๊ณ  ‚œ’ค Ž˜Šคฅผ  œŒ€กœ œ €–ˆ‹ค. •™๊ต „ฐฉ ›„ 5‹œ๊ฐ„— Œ€•„œ  œŒ€กœ ™œšฉ„ –ˆ‹ค. ผ„ ‹œž‘•˜๊ธฐ  „— ๊ณ„† ง„ค˜€‹ค. ง„คž„„ ค„ ค ผ„ €” …™••˜๊ฒŒ ‚˜ˆ„—ˆ–•• ๊ฑฐ. •”Šผ.

13 ผ (ผ): ‹ค–ฆฌ …‹Œ…, Moa:“จ„ฐ๊ณ  „Šค„ฐ””/20021013

‹ค–ฆฌ …‹Œ…„ •˜„œ ๊ผญ •„š”•œ ๊ธฐŠฅ & นผ„ ƒ๊€—†Š” ๊ธฐŠฅ“ค ๊ถฆฌค‘.
  • To Do List — Œ€•„œ Layering  •„š”•˜‹ค -  „€„ : €ถ„€„ ž„๊นŒ. XP ผ UserStory : EngineeringTask ฅผ •ผ๊ธฐ•  ˆ˜„ žˆ๊ฒ €. EngineeringTask ˆ˜€˜ ๊ฒฝšฐ Index Card ๊ฐ€ ” Žธ•˜๊ธ •œฐ, €••• ผ ƒ๊ธธ•Œ ฌธ œ‹ค. (Šนžˆ 2-3ผกœ ‚˜ˆ„–„œ •˜Š” ž‘—…˜ ๊ฒฝšฐ) ๊ฑ ‹ค–ฆฌ ค‘๊ฐ„ค‘๊ฐ„— ๊†“Š” ฐฉ•œผกœ •๊ฒฐ˜ˆ •. (๊ตฌฉ 3๊ฐœงœฆฌ ‹ค–ฆฌšฉ ธฑŠค“œŠ” —†„๊นŒ. -_a ‰†Œ—” €•˜‹ค •„š”•˜ œฏ–„œ “ฐ๊ณ ; ฌŠคŠธž‡ ” ‚˜„๊นŒ.)
  • ๊ฐœธ ‚ฌƒ‰„ “ธ ๊ณต๊ฐ„ €กฑ - ฒ„Šค—„œ ค‘๊ฐ„ค‘๊ฐ„ – ˜คŠ” ‹จƒ •„‰ฝ‹ค. (Š” š”ƒˆ 3 x 5 ธฑŠค“œฅผ ถฉ „(?)•˜€ •Š€๊ฒŒ ฌธ œธ“ฏ •˜‹ค.)
  • WPM กœ๊ทธ ž‘„ฑ - ฃผกœ —ฐŠตžฅ— Summary ฅผ •˜Š”ฐ, ธก •ฐ„ฐฅผ œผ๊ธฐ๊ฐ€ – ต‹ค. Summary …ธŠธฅผ ”ฐกœ งŒ“œŠ”๊ฑ ๊ทธฆฌ ›•˜€ •Š๊ณ . (Summary ‚šฉ„ Š” ๊ฒƒ‹จ Summary •˜„œ šŒƒž‘šฉ„ •˜Š”๊ฒŒ ” ˜ฏธžˆ‹ค๊ณ  ƒ๊ฐ•˜๊ธฐ—) ๊ฑ ๊ทธž˜”„ฅผ ๊ทธฆฌŠ” ๊ฒŒ ” ‰ฌšธ ๊ฒƒ ๊ฐ™‹ค. ๊ทธž˜”„Š” ฒ˜Œ ‘œงŒ งŒ“ค–‘ ‘œ‹œ•˜Š”ฐ 1ถ„„ •ˆ“ ‹คŠ”  —„œ. ๊ทธฆฌ๊ณ  ๊ทธž˜”„Š” ˆˆ†€ 1๊ฐœงŒ “ฐ ˜‹ˆ๊นŒ.
Uninstall & Install
˜„žฌ ‹ค–ฆฌ ‚ ธŠค†จœ ‹œŠค…œ.
  • •œ‹ฌ • ผ -  „ค‘ 'ผ •  ••ง„ –‰œ„' — Œ€• œ šจ•˜€กœ †”‘๊ธฐ
  • •˜ฃจ • ผ - งคผ •„นจ. ˜Š” ๊ทธ  „‚  ž‘„ฑ•˜๊ธฐ.
  • ๊ธฐƒ ‹œ๊ฐ„ ฌ ๊ทธž˜”„ - •˜ฃจ 1ถ„ šฉ. •„ง '๊ฐœ„ ' ‹จ๊ณ„๊นŒง„ ๊ฐ€€ –ˆ€งŒ, ผ‹จ ๊ณ„† ฌšฉ.
  • ‚™„œžฅ - …€„€ •„š”—†„“ฏ. •„””– ๊ถฆฌ• •ŒŠ” ฐจผฆฌ —ฐŠตžฅ ” Žธ•˜‹ˆ๊นŒ. ฐจผฆฌ Index Card ‚˜ ฌŠคŠธž‡œผกœ “ฐ๊ณ  ค‘๊ฐ„— ™Š”๊ฒŒ ” œ —ฐ•œ ฐฉ•ผ ƒ๊ฐ•œ‹ค.
ฐ„ฐ ค‘ณต˜Š” ๊ฒƒ ‚ญ œ•˜๊ณ ,  „ กœ๊ทธ“ค  •ฆฌ•˜๊ณ .. กœ„œ ‹ค–ฆฌ ‘๊˜ 2/3 œผกœ ค„Š”ฐ „ฑ๊ณต.

•„ง€ •„š”•œ ‹œŠค…œงŒ Install •˜Š” ‘œ— ถฉ‹ค•˜„ก …ธ ฅ•˜ž. Refactoring. NoSmok:•„š”•œงŒผงŒ .
----
Moa:“จ„ฐ๊ณ  „Šค„ฐ””/20021013

ฐœ‘œ€น„• •Œ ฑ…„ 3ฒˆ •„ ฝ๊ณ , ‘ฒˆ„ …ธŠธš”• •ฆฌ–ˆ‹ค. ‚˜ฆ„Œ€กœ •–ˆ‹ค๊ณ  ƒ๊ฐ–ˆŠ”ฐ, ค‘๊ฐ„— Œ€๊ฐ• ••œ€ถ„— Œ€• ‚ ƒ๊ฐ„ ง™—ฌ„œ •ผ๊ธฐ•˜Š” šฐฅผ ฒ”–ˆ‹ค. ผ‹จ€ …ŠคŠธ— ถฉ‹ค••–ˆŠ”ฐ, …ŠคŠธ— ถฉ‹ค•˜๊ธฐ œ„•„œŠ” ๊ธ€„ 100% ™„ฒฝ•˜๊ฒŒ •„•„œ ฝŠ”๊ฒŒ ฒซ ‹จ๊ณ„ฆฌผ. „ฑ˜๊ธฐŠฅ —„œ˜ ๊น€šฉ˜ฅ˜ ž„ธฅผ ‹ค‹œ ƒ๊ฐ•••ผ๊ฒ ‹ค.

…ŠคŠธ •„„  œŒ€กœ •ˆ• ˆ˜ก ๊ทธ žž€ €ถ„„ ‚ ƒ๊ฐœผกœ ฑ„šฐ ค๊ณ  •˜Š” „ฑ–ฅ ธ‹ค. ๊ฒฝ๊ณ„๊ฐ€ •„š”•˜‹ค. ™œ PowerReading —„œ, Š” ‹จ–— Œ€•„œŠ” ๊ผฌ•๊ผฌ• ฐ˜“œ‹œ ‚ฌ „„ ฐพ•„ผ๊ณ  –ˆŠ”€,  €ž - …ž™€˜ Œ€™”•˜Š” ž…žฅ—„œ ผ‹จ  €ž˜ ƒ๊ฐ„  œŒ€กœ ••˜Š”๊ฒŒ จผ €ธ€, ˜คŠ˜ ‹ค‹œ Š๊ผˆ‹ค. Š‚Œœผกœ ‚˜€ •Š•„•ผ๊ฒ ‹ค.

  • '•–ˆ‹ค' กœ ŠผŠ” ๊ฒƒ๊ณผ ๊ทธ๊ฑธ „ค…•˜๊ธฐ œ„• ™„„ฑœ ๊ธ€กœ  •ฆฌ•˜๊ณ , ๊ทธ๊ฑธ งกœ •˜๊ธฐ œ„•„œ ••• ผ€ ‹คฅธ ๊ฒƒ ๊ฐ™‹ค.
  • Opening Question  €กฑ–ˆ‹ค. ๊ฐœธ  ๊ฒฝ—˜๊ณผ ๊ฒฐ€‹œผœ„œ งˆฌธ•ณผ ˆ˜ žˆ—ˆ„๊ฑฐ. •„Š” „ ฐฐ (ญ ”•˜€งŒ) ๊ฐ€ Œ€™”ฅผ • •Œ  •ง ž˜•˜Š” ๊ธฐˆ ค‘ •˜‚˜๊ฐ€   ˆ•œ งˆฌธ•‹ค. ถ„„ •„š”•˜‹ค.
12 ผ († ): Seminar:PosterAreaBy1002 , 2ฒˆงธ ฌธ œ.

ฒˆ—Š” TDD กœ •˜˜, TDD‹คŠ” PBI — ” ฃผ•ˆ„ ‘๊ณ  –ˆ‹ค. Ÿฐ ˆ˜•™๊ณต‹ ๊ตฌ•˜๊ธฐ Šคƒ€ผ˜ ฌธ œ˜ ๊ฒฝšฐŠ” StepwiseRefinement ™€„ ๊ฐ™€ PBI๊ฐ€ ๊ต‰žฅžˆ œ šฉ•˜‹คŠ” ƒ๊ฐ “ ‹ค. ฒซฒˆงธ ฌธ œ ’€•Œ ฝ”“œ-…ŒŠคŠธ-žฌ •˜ ‹œผกœ(ค‘ณต‹คŠ” žฌ •˜— ” ‹ ๊ฒฝผ๊ธฐ •Œฌธ—) „˜–๊ฐ€Š”๊ฒŒ ๊ฑฐ˜ 1ถ„„ „˜–๊ฐ€€ •Š•˜‹ค.

ฒ˜Œ—Š”
~cpp 
int calculateVisiableBoxSize 
        (int x1,int y1, int x2,int y2, int x3, int y3, int x4, int y4) { 
         
        return 14; 
} 

void testCalculate () { 
        assert(calculateVisiableBoxSize(2,3,5,8,4,7,6,10) == 14); 
}

void test() { 
        testCalculate(); 
} 
กœ ‹œž‘•˜—ฌ.
~cpp 
        int boxSize=15; 
        int coverBoxSize=1; 
         
        return boxSize-coverBoxSize; 
~cpp 
        int boxSize=(5-2)*(8-3); 
        int coverBoxSize=1; 
} 
~cpp 
        int boxSize=(5-2)*(8-3); 
        int coverBoxSize=(5-4)*(8-7); 
~cpp 
int getCoverBoxSize     (int x1,int y1, int x2,int y2, int x3, int y3, int x4, int y4) { 
        return 1; 
} 
.
.
       int boxSize=(x2-x1)*(y2-y1); 
       int coverBoxSize=getCoverBoxSize(x1,y1,x2,y2,x3,y3,x4,y4); 
—ฌ๊ธฐ„œ ‹ค‹œ ฌธ œฅผ ‚˜ˆ„—ˆ‹ค. Cover Box. ฆ‰ นผ••˜Š” ๊ฐ’„ ๊ตฌ•˜Š” ฌธ œงŒœผกœ ฌŠคฅผ ข˜”‹ค. „ˆ‚˜„ …ฐฑ•˜๊ฒŒ ๊ธฐ—. ๊ทธฆฌ๊ณ  …ŒŠคŠธ €Šคฅผ ฆ๊ฐ€‹œผœ ‚˜๊ฐ€„œ ฝ”“œฅผ Š˜ ค๊ฐ€Š” ‹œผกœ งŒ“ค—ˆ‹ค.
~cpp 
int getCoverBoxSize     (int x1,int y1, int x2,int y2, int x3, int y3, int x4, int y4) { 
        return 1; 
} 

void testGetCoverBoxSize() { 
        assert(getCoverBoxSize(2,3,5,8,4,7,6,10) ==1); 
} 

ญ. OO กœ •  ˆ˜„ žˆ—ˆ€งŒ (•„งˆ Box Object ฅผ งŒ“ค๊ณ  ‘๊ฐœ˜ intersect box ฅผ create •œ’ค, ๊ฐ๊ฐ˜ box —๊ฒŒ area ฅผ ฌผ–Š” ‹ ˜—ˆ„“ฏ.) น ฅธ ๊ฐ’ ‚˜˜คŠ”๊ฒŒ ผ‹จ › „ งžถฐ•˜‹ค.

‹จ, OO Style ˜ ฝ”“œ— Œ€•„œ PBI ฅผ „ˆ ๊ฐ•กฐ•˜‹ค StructuredProgramming — ” ๊ฐ€๊นŒš OO ๊ฐ€ ˜€ •Š„๊นŒ •œ‹ค. PBIŠ” TopDown €กœ.
‚˜Š”  ˆŒ€กœ •„‹ˆผ๊ณ  ƒ๊ฐ•œ‹ค. PBI™€ OOŠ” ง๊ต ‹ค. งŒ•ฝ, „ฉ”ธ ธ ˜คธŒ Šธกœ "‚ฌ๊ณ "•˜๊ณ  "˜„"•œ‹ค OO ธ ฝ”“œ๊ฐ€ ‚˜˜จ‹ค(see Seminar:PosterAreaByJune ). DDDฅผ ฐธ๊ณ •˜๊ธธ. --JuNe
 œ๊ฐ€ Structured กœ ‚ฌ๊ณ –ˆ๊ธฐ •Œฌธ— Structured Šคƒ€ผกœ TopDown ˜—ˆ‹คŠ” ƒ๊ฐ “œ„คš”. OO กœ TopDown „ •˜Š”๊ฒŒ •„‹Œฐ. „ˆ ‹จˆœ•˜๊ฒŒ ƒ๊ฐ–ˆ๊ตฐš”. --1002

‘ฒˆงธ ฌธ œ— Œ€•„œŠ” STL — ตˆ™•˜€ •Š•„„œ ‹œ๊ฐ„ 1‹œ๊ฐ„ 18ถ„ ๊ฑธ ธ‹ค. -_-; •ž˜ ฌธ œ๊ฐ€ ๊ฑฐ˜ 20ถ„ ‚— ‚œ๊ฒƒ— น„•˜ ๊ฝค ˜คž˜๊ฑธฆฐ …ˆธฐ. ฒ˜Œ ฌธ œ •Š” ๊ต‰žฅžˆ ๊ฐ„‹จ–ˆ๊ณ ,  ‘๊ทผ ฐฉ•„ ฌธ œ ฝž งˆ‹ค 2๊ฐ€€  •„๊ฐ€ ˜€‹ค. ฌธ œŠ” ‚๊ฐ€ permutation „ ๊ตฌ•˜Š” •Œ๊ณ ฆฌฆ˜„ ฅธ‹คŠ” ๊ฒƒ˜€๊ณ , ง ‘ งŒ“ค–•–ˆ‹ค. ญ ๊ทธž˜„ ณ„กœ •ˆ– ต๊ฒ ‹ค ‹ถ–„œ TDD ‹˜ ๊ฐ„‹จ•œ  ‘๊ทผ„ • •˜‹ค. (—‰, †ŒŠคฅผ •™๊ต— ‘๊ณ  ™”๊ตฐ. -_-;)

—ญ‹œ  ‘๊ทผ€ TDD, PBI

Œ€๊ฐ• pseudo code กœ  œผ
~cpp 
result = permutation("ab")
assertEquals(result[0], "ab")
assertEquals(result[1], "ba")
๊ทธฆฌ๊ณ  — Œ€•„œ ๊ตฌ˜„•˜๊ณ  (๊ฐ€žฅ ๊ฐ„‹จ•œ๊ฑ ฐ”กœ vector — ab,ba ฅผ „ฃŠ”๊ฒƒ) …ŒŠคŠธฅผ Š˜ ธ‹ค. •œ‹จ๊ณ„งŒ Š˜ฆฌ๊ณ  ฐ”กœ •Œ๊ณ ฆฌฆ˜ ‚˜˜ฌ ๊ฒƒ ๊ฐ™•˜‹ค.
~cpp 
result = permutation("abc")
assertEquals(result[0], "abc")
๊ทธฆฌ๊ณ   ‘๊ทผ„ –ˆŠ”ฐ, „ˆ •Œ๊ณ ฆฌฆ˜ œผกœ  ‘๊ทผ•˜ ค๊ณ  –ˆ‹ค. (žฌ๊ท€˜ธถœ„ šฉ•˜Š” ‹œผกœ.. ๊ฑฐ˜ ผฐ˜™”‹— ๊ฐ€๊น๊ฒŒ) ˆฐ˜ 10ถ„ •„ฅผ ๊ทธ •„ จจนœผ‹ˆ „ˆ ‹œ๊ฐ„ •„๊นŒ›Œ„œ, ผ‹จ€ abc žงŒ †ต๊ณผ•˜๊ธฐ œ„• …ธ ฅ„ –ˆ‹ค.

๊ทธŸฌ„œ Œ€๊ฐ• ‹คŒ˜ ฝ”“œ Šคƒ€ผ ‚˜˜จ ๊ฒƒ ๊ฐ™‹ค. ( € ‹จ๊ณ„‹ค ” ž‘€ ‹จ๊ณ„๊ฐ€ žˆ—ˆŒ. „ ƒ a •˜‚˜งŒ.)
~cpp 
permutation (str, selectable, position) {
   if (position == str.size() - 2) {
      vector<string> result
      result.push_back(selectable)
      reverse(selectable.begin(), selection.end())
      result.push_back(selectable)
      return result
   }
   for select in selectable:
      result.push_back(select)
      nextSelectable=removeFrom(selectable, select)
      subresults = permutation(str, nextSelectable, position+1)
      for subresult in subresults:
           .
           .
           .          
}
recursive ฅผ “ฐŠ”๊ฒƒผ•Œ ” ž‘€ ‹จ๊ณ„ฅผ ฐŸŠ”๊ฒƒ€ —ฌ „žˆ Žธ•œ ๊ฒƒ ๊ฐ™‹ค. (ถ”›„ถ”๊ฐ€)

11 ผ (๊ธˆ): TDD ClassifyByAnagram, „คƒŠค Ÿฝ

•„ง€ ‚˜—๊ฒ '~•œ  —„œ ๊ฒฐ๊ตญ€ ‹ค ๊ฐ™‹ค' ผŠ” ง‹คŠ” '~•œ  —„œ ‹ค‹ค' ž€ งกœ ฐฐšธ ˆ˜ žˆŠ”๊ฒŒ ” งŽ€ ๊ฒƒ ๊ฐ™‹ค. •„Š” „ ฐฐŠ” '๊ฒฐ๊ตญ SE ˜ ฐ ‹€ ‚—„œ˜ ฒ”ฃผกœ †“๊ณ  RUP‚˜ XP‚˜ ๊ฐ™€๊ฒŒ •„‹ˆƒ' ‹œผกœ •ผ๊ธฐ•œ‹ค. ‚˜Š” XP˜ ‹คฅธ (€๊ทน•˜๊ฒŒ ๊ฐ€ฒผš ๊ณณ€„ฐ ‹œž‘•˜—ฌ •„š”• •Œ …ŒŠคฌ‚˜ Šค† ฆฌกœ„œ ถ”๊ฐ€•˜Š”)œผกœ žฅ „ –๊ณ ž •œ‹ค. •„Š” „ ฐฐŠ” TDDกœ •˜๊ฑ ญ˜กœ •˜๊ฑ ๊ฒฐ๊ตญ น ๊ฒŒ ข‹€ ”„กœ๊ทธžจ„ งŒ“ค œ‹ค๊ณ  •œ‹ค. ‚˜Š” TDDฅผ ๊นŒ€ •„(””ฒ„๊น… ˆกœ ŒฆฌŠ” ‹œ๊ฐ„ ๊ฑฐ˜ 0ผŠ”  , ‚๊ฐ€  œ–•  ˆ˜ žˆŠ” ข‹€ งˆฌธ & ข‹€ ‹ต„ งŒ“ค–‚๊ธฐ)œผกœ„œ žฅ „ –๊ณ ž •œ‹ค. •„ง๊นŒ€Š” ๅฎˆ˜ ‹จ๊ณ„ผ ƒ๊ฐ•˜๊ธฐ•Œฌธ—.

•„ง ๅฎˆ ฅผ •••˜Š” ‹จ๊ณ„ ๊ฐ™€ฐ, „ฏ€๊ฒŒ ๏งกœ ๊ฐ€๊ธฐ—” •„ง žฅ „ ‹ค ”น–จน–€ –ˆ‹คŠ” ƒ๊ฐ “ ‹ค. ‹คงŒ, นจฆฌ ฏผ๊ฐ• ธ„œ ็ ™€ ๏ง˜ ‹จ๊ณ„กœ „˜–๊ฐˆ ˆ˜ žˆ๊ธฐฅผ ฐ”ผ€งŒ, •„ง ‚˜—๊ฒ ‹•˜๊ฒŒ ๊ณต€•„œ –„ ˆ˜ žˆŠ” žฅ  ” งŽ€ ๊ฒƒ ๊ฐ™‹ค.

  • ‹จ, ๏ง ˜ ‹จ๊ณ„— žˆŠ” ‚ฌžŒ˜ ง€ 'Target' ‹ค. ‹จ, ๊ฐ™€ ๊ฒฐก „ ‚ผ •„š”Š” —†๊ฒ €.
  • •˜€งŒ, ๊ฒฐ๊ตญ€ '‚ •ผ๊ธฐ'ฅผ •••˜๊ฒ €. ๊ทธฆฌ๊ณ , „ฐ„ น„ „— น €€ ง๊ณ  •Œ๊ฐ€  •Œ—”  •™••˜๊ฒŒ ฌธ œฅผ ธ‹•  ˆ˜ žˆ๊ธฐฅผ.
  • ˜คŠ˜ ๊ต‰žฅžˆ น ฅธ †„กœ XPฅผ กˆ˜•˜ คŠ” ‚ฌžŒ„ ๊ตฌ๊ฒฝ•  ˆ˜ žˆŠ” ๊ธฐšŒ๊ฐ€ ˜—ˆ‹ค. ž๊ธฐ ƒ™œ ฐœ „ ๊ณ„š— Œ€• ฐฉ•ก „  šฉ•œ ๊ฒƒ‹ค. ฉ‹ง„ ๊ฐ€กœ€๊ธฐผ ƒ๊ฐ. ^^
----

—ฌ „žˆ ๅฎˆ ˜ ‹จ๊ณ„ฅผ ฒ—–‚˜Š”๊ฒƒ ๊ฐ™€งŒ.

˜น‹œ FakeIt & Refactoring œผกœ ง„–‰ ๊ฐ€Šฅ• ๊นŒ ƒ๊ฐ•„œ ฒ˜Œ—Š” FakeIt & Refactoring งŒœผกœ ง„–‰••˜‹ค. ๊ทผฐ, FakeIt „ •˜๊ณ  Refactoring „ •˜ ค • •Œ „ˆ žฌ •˜ฅผ งŽ •˜Š” ๊ฒƒ ๊ฐ™•„„œ Œ€๊ฐ• „˜–๊ฐ”Š”ฐ, ๊ทธžฌ”‹ˆ ‹คŒ …ŒŠคŠธกœ ง„–‰•˜๊ธฐ „ˆ ž˜“ค—ˆ‹ค. •Œ๊ณ ฆฌฆ˜ –Š •„  ค๊ณ  • •Œ, •ž—„œ˜ FakeIt œผกœ œ „œ ฝ”“œ“ค„ ˆ˜ ••˜Š”๊ฒŒ •„‹ˆผ •„— œฏ–••  ๊ฒƒ ๊ฐ™•„„œ ง„ค—ฌกŒ‹ค.

๊ฒฐ๊ตญ ฝ”“œฅผ งŒ“ค–๊ฐ€„œ '•™Šตœ' ฝ”“œ - ๊ฐ ‹จ–˜ š”†Œ“ค sort index ฅผ งŒ“ค๊ณ  •‰ฌ…Œธ”„ šฉ•˜Š” ‹œผกœ - กœ ฐ”กœ Œ •˜๊ณ  ง„–‰–ˆŠ”ฐ, —ฌ „žˆ TDD ญ ฌ‹คŠ” ƒ๊ฐ “œ‹ˆ ๊ทธฆฌ ๊ธฐถ„ ข‹€ •Š‹ค. (‹จ–“ค š”†Œ sort & hash  €žฅ€ ฒ˜Œ ๊ฐœฐœ• •Œ€„ฐ – ˜ฌž˜ •„””–—ฌ„œ..)

  • ‹ค‹œ ‹œ„•œ‹ค? “ค–˜คŠ” ๊ฐ’“ค„ ๊ทผ๊ฑฐกœ ผฐ˜™”‹œ‚คŠ” ๊ณผ •„ •  ˆ˜ žˆ„๊นŒ..

  • ๊ฐœธ œผกœ “œŠ” ƒ๊ฐ€, ค‘ณต„ ค„Š” ๊ฒƒ ‹ค ˜„, ˜ฏธ๊ฐ€ ถ„…•˜„ก ฝ”“œฅผ งœŠ”๊ฒƒ ˆœœ„๊ฐ€ ” †’•„• ๊ฒƒ ๊ฐ™‹ค. (๊ทผฐ, กฐ๊ธˆ ๊ฒ‚˜Š”๊ฑ, intention ˜ šฐ„ ˆœœ„ฅผ †’‹ค refinement ฅผ „ˆ ๊นŠ๊ฒŒ “ค–๊ฐ€๊ฒŒ œ‹ค. •˜€งŒ ๊ฐœธ œผก  ๊ฒƒ ” œ šฉ•˜‹ค๊ณ  ƒ๊ฐ•œ‹ค. ๊ธˆฐฉ ค‘ณต˜Š” €ถ„ ๊ธฐ •Œฌธ—.)
    PBI™€ TDDฅผ ž˜ ฒ„ ค„œ  šฉ• Š” ‹ค—˜„ ••„ผ. žฅ  ‚˜ฆ„Œ€กœ žˆ‹ค. ‹จ €, ๊ตฐ””๊ธฐ๊ฐ€ ƒ๊ธฐ๊ฑฐ‚˜ ™„ „žˆ ฌ๊ธฐ•˜๊ณ  ƒˆกœงœ••  ผ ข…ข… žˆ‹คŠ”  . ‚๊ฐ€ ค‘š”•˜‹ค๊ณ  ƒ๊ฐ•œ „ฉ”ธ ˜คธŒ Šธ๊ฐ€ ‚ฌ‹ค€ •„š”—†Š” ๊ฒƒธ ๊ฒฝšฐ๊ฐ€ งŽ‹ค. ‹œ๊ฐ„ ‚˜ DDD„ ๊ณต€• ๊ธธ. --JuNe

  • Seminar:HotShot„ Œ คณธ ’ค, ๊ฐ€žฅ ‹œ๊ฐ„„ งŽ žก•„จนŠ” ‘ …€„— Œ€•„œ ๊ตฐ””๊ธฐ๊ฐ€ ˜Š” ฝ”“œ“ค„ ‚ญ œ–ˆ‹ค. ๊ทธŸฌ‹ค‹ˆ, ฝ •˜๊ณ  •Œ๊ณ ฆฌฆ˜„ ” –ฅƒ ‹œ‚ฌ ฐฉ• ˜€‹ค. ญ, ๊ฒƒ ๊ณ น˜๊ณ  ‚œ’ค ‚ฌžŒ“ค †ŒŠค“ค„ ‹ˆ ๊ฑฐ˜ น„Šท•œ “ฏ.
  • Psyco ฅผ ฒ˜Œ „คน˜•˜๊ณ  จ๊ฒŒ ˜—ˆŠ”ฐ, •œ ผ— น„• „ฑŠฅ–ฅƒ †’•„„œ ‹ ๊ธฐ–ˆ‹ค.
    psycoŠ” ๊ฐ€žฅ ฐ”๊นฅ•ˆ˜, ž˜ŠคงŒ ฐ”ธ”ฉ•ฃผ •‹น ฝ”“œ๊ฐ€ ˜ธถœ•˜Š” ‹คฅธ ฝ”“œ“ค€ ง ‘ •Œ•„„œ ‹ค ฐ”ธ”ฉ •€‹ค. ฆ‰, mainผŠ” •ˆ˜๊ฐ€ žˆ‹ค ๊ทธ๊ฒƒงŒ ฐ”ธ”ฉ•˜ ”„กœ๊ทธžจ ‚˜ “  ฝ”“œ๊ฐ€ ฐ”ธ”ฉ ˜Š” …ˆ. --JuNe
----
š” ผฃผผงธ ๊ธฐƒ ‹œ๊ฐ„ ๊ทธž˜”„ ๊ทธฆฌŠ”ค‘. ˜คŠ˜ ๊ฐ‘ž‘Šค ˆ Šคฝ”–๊ฐ€ †’‹ค.

š”ƒˆ Šค€ค„ ๊€ฆฌ— ‹คŒจ•˜Š” œ 
  • •„นจ‹œ๊ฐ„„ ž˜ šฉ•œ‹ค. ฃผกœ ฐฅจน๊ณ  ‹ ฌธ„ ๊ณ  ฉ”ผ, ๊ฐ œ„‚ค“ค ๊ตฌ๊ฒฝ Ÿฐ‹ธฐ,
  • ฐ ผ— Œ€•„œ ” ž‘€ ผ“คกœ To Do List — ‚˜ˆ„งˆ •Š•˜‹ค. š”ƒˆŠ” Šค€ค„ ๊€ จ  •ฅผ †ต•ฉ๊€ฆฌ•˜๊ธฐœ„• ฃผกœ ‹ค–ฅผ šฉ•˜Š”ฐ, …‹Œ…„ ‹ค‹œ•ค„ •„š”๊ฐ€ žˆ„“ฏ.
    • To Do List — Œ€•„œ Layering  •„š”.
    • •„นจ— ฐ˜“œ‹œ! •„นจšŒ˜(?)๊ฐ€ •„š”. -_-;

๊ฐœธ ธ ‹œ๊ฐ„๊€ฆฌ ˆ๊ณผ ฑ… ฝ๊ธฐ ฐฉ•— Œ€•„œ •„ฃผ•„ฃผ ๊ฐ„‹จ•œ ๊ฒƒ €„ฐ ‹œž‘ค‘. ˜ˆ „๊ฐ™œผ ‹œ๊ฐ„๊€ฆฌ ฑ… ข…ฅ˜‚˜PowerReading ฑ…„ ™„…„ •œ’ค ญ”๊ฐ€ ‹œŠค…œ„ ผ€ง‰•˜๊ฒŒ งŒ“ค ค๊ณ  –ˆ„๊ฒƒ‹ค. €๊ธˆ€ ฑ…„ ฝœผ„œ กฐ๊ธˆ”ฉ กฐ๊ธˆ”ฉ  šฉ•œ‹ค. ๊ฐ€žฅ ๊ฐ„‹จ•œ ๊ฒƒ€„ฐ •๊ณ , กฐ๊ธˆ”ฉ กฐ๊ธˆ”ฉ ๊ฐœธ  ‹œŠค…œ„ ‚ค›Œ‚˜๊ฐ€๊ธฐ …ธ ฅค‘.

€๊ธˆ ผฃผผงธ œ €˜Š” •„ฃผ•„ฃผ ๊ฐ€ฒผš ‹œŠค…œœผกœŠ”
  • To Do List - ๊ฑ To Do List —˜ Layering  •„š”•˜‹ค. ๊ทธฆฌ๊ณ  '‹œ๊ฐ„— ๊ตฌ†˜Š” To Do' — Œ€•„œ.
  • ๊ธฐƒ ‹œ๊ฐ„ ฌ - ๊ทธž˜”„ ๊พธ€žˆ ๊ทธฆฌŠ”ค‘.  œŠ” ถ„„ & ๊ฐœ„ „ •ณผ ˆ˜ žˆ„ ๊ฒƒ ๊ฐ™‹ค.
  • Reading - ”ฐกœ …ธŠธฅผ €น„•˜ง„ •Š•˜๊ณ , WPM ˆ˜น˜๊ฐ€ €๊ทนžˆ ‚ฎ๊ธ •˜€งŒ. 20ถ„ •„ ˆฌžกœ •œฒˆ ง„–‰ ๊ฐ€Šฅ.
10 ผ (ฉ): SSH CVS Setting. MMM WPM ธก •.

Tortorise กœ “œ””– SSH Œฆฌ๊ธฐ „ฑ๊ณต!

MythicalManMonth — Œ€•„œ PowerReading —„œ˜ ฐฉ•“ค„  šฉ••˜‹ค. ผ‹จ€ • ž— › „ งžถ”๊ณ , †๊ฐ€ฝ„ งš„•Œ—„ •ฅผ ๊ฐ€Š” †„ฅผ šฐ„ œผกœ • •˜‹ค.
ฝŠ”‹œ๊ฐ„ 10ถ„, š”•ฝ 5ถ„, š”•ถฉ 7ถ„ •„. WPM †„ ธก •„ – ‚˜„œ, ฑ…„ ฝŠ”ฐ ฆฌ“ฌ ƒ๊ธฐŠ” Š‚Œ “ ‹ค. (Chapter •˜‚˜— Œ€•„  „คฒˆ— ๊ฑธน˜‹ˆ  ‚ฌ‹ค. •„„ ๊ฝค งŒกฑ•˜Š”ค‘.)

  • WPM € 36.3 - 60%, 60 - 70%, 70 - 65%, 56 - 60%, 67 - 65% . •„ง 100 „ •ˆ„˜๊ธ •˜‹ค -_-; •˜€งŒ, ๊ธ€— Œ€• ฑ…„ •ˆ๊ณ   •ฆฌฅผ •  ˆ˜ žˆ„ •„˜ ฆฌ“ฌ„ ƒ„ ๊ฒƒ ๊ฐ™•„„œ ‚˜˜ง„ •Š•˜‹ค. ผ‹จ€ •„๊ฐ€ ” ค‘š”•˜‹ค๊ณ  ƒ๊ฐ•˜๊ธฐ—.
  • †„™€ •„๊ฐ€ ๊ผญ ฐ˜น„€•˜Š”๊ฑ •„‹Œ๊ฒƒ ๊ฐ™‹ค. ˜–˜ ฆฌ“ฌ„  œŒ€กœ ƒˆ•Œ •„  œŒ€กœ ˜—ˆ‹ค.
  • Š” ‹จ–˜ ๊ฒฝšฐ ‹จ–˜ นˆ„ฅผ „œ ‚ฌ „„ ฐพ„•Œ™€ ‚˜ค‘— ‚ฌ „„ ฐพ„•Œฅผ ๊ตฌถ„•˜Š”๊ฒƒ„ ข‹€ ๊ฒƒ ๊ฐ™‹ค. ‚ฌ „„ ’ค ๊ฑฐฆฌŠ”ฐ— ผข…˜ Context Switching  ผ–‚œ‹ค๊ณ  • ๊นŒ.
MMM —„œ˜  œ— •‹น•˜Š”, ๊ทธฆฌ๊ณ  ฐธœผกœ žฃผ ธšฉ˜Š” ธŒฃฉŠค •™ ‚˜™”‹ค. Communication น„šฉ, ถ„—…™” ˜๊ธฐ ž˜“  ผ— Œ€•œ น„šฉ ฌธ œ. ExtremeProgramming ˜ ๊€ œผกœ ‹ค‹œ ฐ”ผ๊ณ  น„Œ•˜๊ณ  ‹ถ€งŒ, •„ง€ ๊ณ ฏผ•˜๊ณ  ––‚•• ๊ฒƒ ” งŽ๊ธฐ—.

MMM —„œ˜ น„œ “ค€ ฐธ ฉ‹€‹จ ƒ๊ฐ “ ‹ค.  €ฒˆ Tar Pit „ ๊ทธ ‡€งŒ, ฒˆ ˜คฏˆ ›˜ น„œ  ˜•œ  •ง;

8,9 ผ (™”, ˆ˜): ๊ณต—ฐŸฌ ๊ฐ€๊ธฐ. ๊ฐœธ •ฆฌ.

„—ฌฆ„๊ฐ€„๊ฒจšธ, ถˆ…งจ…˜, —ˆฒ…€“œ “ฑ„ ‹ค.

๊ฐœธ œผกœ ‹ ๊ธฐ•œ ‚ฌžŒ“ค€ ฒ Šค—ฐฃผž‹ค. ฆฌ“ฌ•…๊ธฐผ๊นŒ ฉœกœ”” •…๊ธฐผ๊นŒ. •˜€งŒ, ๊ทธ ‘”ƒ•˜๊ณ  ‚ฎ€ †ŒฆฌŠ” “œŸผ†ŒฆฌงŒผ „ šธฆฌ๊ณ  €‚˜๊ฐ„‹ค.
„—ฌฆ„๊ฐ€„๊ฒจšธ งˆ€ง‰ €ถ„ —ฐฃผ• •Œ, ฒ Šค™€ “œŸผ—ฐฃผ๊ฐ€    †„ฅผ ˜ฌฆฌ”‹ˆ ‚ ผ‹ค‹ˆ๊ณ , ๊ทธ™€ •จ๊˜ ๊ธฐƒ€๊ฐ€ ๊ฐ™ —ฐฃผฅผ ƒ€๊ณ  •„€๊ฒฝœผกœ “ค–๊ฐ€Š” Šต„ „œ, ๊ฐ™.๊ฐ™;

๊ณต—ฐžฅ—„œ˜ Œ•…ฆ๊ธฐŠ”•๊ณผ ‰†Œ‹œ˜ Œ•…ฆ๊ธฐŠ”•€ ‹คฅผ •„š”๊ฐ€ žˆŠ”๊ฒƒ ๊ฐ™‹ค. ‹ฌ คš”~!

—„ˆ€๊ฐ€ „˜นœ‹ค. ‚ฌš“œ๊ฐ€ „˜น˜Š” ๊ณณ, ‚ฌžŒ „˜น˜Š” ๊ณณ„ .
----
Y กœ ค‘•™˜ UBS ฐฉ†กžฅ๊ณผ ž…๊ตฌ˜ •œ จ ž„„ „œ “œŠ” ฌ˜•œ ƒ๊ฐž€.
----
๊ฐœธ œผกœ 'งŒผ ‚๊ฐ€ ฑ…„ “‹ค?' •˜Š” ‹œผกœ • งค™‚ฐ ˜ฌผ๊ฐ€„œ ฐ”žŒฉฐ ๊ธ€  •ฆฌ •๊ธฐ.

๊ธ€„  •ฆฌ•˜„œ '‹ค œ ‚ –‰™€  •„กœ งˆ„œ •—ฐ•˜€ •ŠŠ”ฐ' •˜Š” ƒ๊ฐ “œ‹ˆ, ๊ธ€„ “ฐ๊ณ  ‹ถ€๊ฐ€ •Š•„ง„‹ค. •œŽธœผกœŠ” ๊ธ€„ จ ‚˜๊ฐ€„œ –‰™„ • •Œ—”, ‚ –‰™„ ฒœฒœžˆ ๊€ฐฐ•˜๊ณ  –‰™„ •˜Š” ๊ฒƒ ๊ฐ™€ฐ.

†ต •™Šต€ 'ฑ…„ ฝ„•Œ' ๊ทธ•Œ‹จ 'ฌต˜€‘—ˆ˜ ๊ธฐ–ต„ „ง‘–‚ผ•Œ' ฃจ–€Š”๊ฒƒ ๊ฐ™‹ค. ˜Š” '–‰™œผกœ „ง‘–‚ผ•Œ'.
----
ŠฌŠฌ, ‹ค‹œ '๊ฐ€๊ณตœ ๊ธฐ–ต'œผ๊ธฐ ‹œž‘. “  ๊ฒƒ„ ‹ค ‘œ‹œ•˜Š” •„‚ กœ๊ทธ‹คŠ”,  œ–•  ˆ˜ žˆŠ” ””€„ธ„ ›•œ‹ค.

8›”

7›”

7ผ (ผ): ฑ…ƒ •ฆฌ.
žฃผ Šผ€งŒ, Data, Information, Knowledge, Wisdom.  •ฅผ †Œน„•˜๊ณ  žฌฐฝถœ•˜€ •Šœผ. •„ „˜˜ ฐ„ฐ“ค ‚ฌžŒ ”ผ๊ณค•˜๊ฒŒ„ •˜Š”๊ตฐ;

6ผ († ): ‹ฌฆฌ๊ธฐ.
ง‘—„œ€„ฐ ข…•š™žฅ๊นŒ€ 25ถ„ …ผŠค†ฑ ›ฐ๊ธฐ.
›ฐŠ” ค‘๊ฐ„ †„ฅผ œ €•˜๊ธฐ œ„• ๊ฑฐ˜ น„Šท•œ †„กœ ‹ฌ ธ‹ค. ‹จ, ˜†— ‚  ถ”›”•œ ‚ฌžŒ„ ‹ˆ ๊ฒฝŸ˜‹ ƒ๊ฒจ„œ ๊ทธ‚ฌžŒ ถ”›”•˜Šƒ๊ณ  •ฝ๊ฐ„ ˜คฒ„•œ๊ฑฐ นผ๊ณค ญ..;
  • ฐฐš  : ค‘š”•œ๊ฑ ˜ธก˜ ฆฌ“ฌ. ˆ˜˜˜ ๊ฒฝšฐ ฆฌ“ฌ งžถ” ˆจ„ ‰ฌ€งŒ. †„ฅผ ‚ผ•Œ˜ ˜ธกฆฌ“ฌ๊ณผ œ‹„ œ„•œ ฆฌ“ฌ ‹ค‹ค.
  •  „‚  ง‘— “ค–๊ฐ€„œ ๊ทธŸฐ€ (–‘, 64-1 •ผ๊ฐ„ฒ„ŠคŠ” 1‹œ  „— Š๊ธ‹ค. น˜‚ฌ•˜๊ฒŒ.. 916ฒˆ€ 2‹œ˜„ก 10Œ€„ „˜๊ฒŒ €‚˜‹ค‹ˆ๊ฑงŒ ฉ) ˜Œ•„˜ฌ•ŒŠ” …ผŠค†ฑœผกœ ›ฐ€ –ˆ‹ค.
5ผ (๊ธˆ): Seminar:RenaissanceClub20020705 .
 „— ‚˜—๊ฒŒ„œ ˆ žฆฌ “ฑ—„œ Java ๊ธฐˆ  –ฉŒ„ค งˆ†Œ ๊ธฐ‚ฌ๊ฐ€ –– „ค, MT ๊ฐ€„œ IMT 2000  –– „ค •˜Š” •ผ๊ธฐฅผ •  ˆ˜ žˆ˜ ๊ณณ€ ZP ฐ–— —†—ˆ‹ค. ฒˆ— •˜‚˜ ” ƒ๊ธธ๊ฒƒผŠ” ๊ธฐŒ€๊ฐ.

4ผ (ฉ): ScheduledWalk/„ฒœ ™„ฃŒž‘—….
ฒ˜Œ ๊ณ  ค• •Œ€„ฐ ๊ธ€“ฐ๊ธฐฅผ ๊ณ  ค•˜๊ณ  ž‘„ฑ•œ ฌธ„œŠ” •„‹ˆ—ฌ„œ; (๊ทธƒ†ŒŠคงŒ ฃผšฑ €™”๊ณผ •„  ค๊ณ  –ˆ‹คŠ”.) ฐจผฆฌ ฒ˜Œ€„ฐ ”„กœ๊ทธž˜ฐ• •Œงˆ‹ค ฐ”€€ถ„— Œ€•„œงŒ ๊ณผ •„  –‚˜๊ฐ””ผ.
  • œ„˜ ผ— „ˆ ‹œ๊ฐ„„ งŽ Œ–„œ ‹คฅธ ผ“ค„ •  ‹œ๊ฐ„  – ธฒ„ ธ‹ค. ‹œ๊ฐ„๊€ฆฌ‹œ๊ฐ„๊€ฆฌ.
  • ˜คŠ˜”ฐผ  ”ผ๊ณค•„ ๊žฅžˆ งŽ Š๊ผˆ‹ค. ŒŒ›Œ”„กœ๊ทธžจ •„š”•˜‹ค;
3ผ (ˆ˜): ProjectPrometheus/Journey

1ผ (›”): ScheduledWalk/„ฒœ

StructuredProgramming „ '˜‹ œผกœ', '—‹ฌžˆ', '๊นŒ€' •ณธ ฒซฒˆงธ ˜ˆ œ๊ฐ€ •„‹๊นŒ.  „— ˆ˜น˜•„ ˆ™ œ• •Œ—” StepwiseRefinement Šคƒ€ผ œ šฉ•˜๊ธ –ˆ€งŒ, €๊ธˆฒ˜Ÿผ ˜‹ œผกœ •˜ง„ •Š€ ๊ฒƒœผกœ ๊ธฐ–ต•œ‹ค.
  • งŒผ ˜–๊ถŒ—„œ ‚•˜˜ ‚ฌžŒผ ” นจฆฌ งŒ“ค—ˆ„…ฐ. ผƒ “ฐŠ” ‹จ–‚˜ ”„กœ๊ทธž˜ฐ•Œ˜ •ˆ˜ ฆ„‚˜ ˜‘๊ฐ™ €„…Œ‹ˆ. Œ. žˆ๊ตฌ;

6›”

25 ~ 28ผ (™”~๊ธˆ): ObjectOrientedProgramming „ธฏธ‚˜ €น„๊ธฐ.

„ธฏธ‚˜ žฃŒ €น„ „ ฐฝ€˜•œผกœ€„ฐ —ฌŸฌ กฐ–ธ“ค„ “ค—ˆ—ˆ‹ค. 'Sub Type ๊ณผ Sub Class — Œ€•œ ๊ตฌถ„— Œ€•„œ „ค…–ˆœผ ข‹๊ฒ ‹ค', 'OOP ฅผ •˜ ™œ ข‹€€ Š‚„ ˆ˜ žˆ„ก „ธฏธ‚˜ฅผ ง„–‰•˜ ข‹๊ฒ ‹ค', 'ฌธ œ •๊ฒฐ— Œ€•œ ‚ฌ๊ณ  ๊ณผ •„ —ฌค„ ˆ˜ žˆœผ ข‹๊ฒ ‹ค' “ฑ“ฑ. ๊ตฌ๊ตฌ  ˆ ˆ ƒ๊ฐ• ฐธ ผฆฌžˆŠ” •ผ๊ธฐ“ค˜€‹ค. ๊ฐœธ œผกœ„ „ธฏธ‚˜ €น„•˜Š” ๊ฐ€žฅ ๊ณ •™ฒˆ‹ˆ งŒผ ž˜ •˜๊ณ  ‹ถ—ˆ๊ณ .
Sub Type ๊ณผ Sub Class — Œ€• žฃŒฅผ ’ค€˜ค‘ ฌƒ™€ ฉ”‹  €—„œ Œ€™”•˜„œ '•„..  €Ÿฐ  —„œ „ค…„ •˜‹œž€ œ˜€๊ตฌ‚˜' •˜ฉฐ •ž˜ กฐ–ธ“ค— Œ€•œ ค‘š”„ฑ„ ธ€–ˆ‹ค.

"„ธฏธ‚˜‚  –ธ œ‹ˆ? ‚˜„ ฐธ„•˜„ก •˜€."

"—‰; •˜..•˜.."

"™œ? ‹ซ‹ˆ?"

"•„.. •„‡จ. •˜•˜•˜;"

"›ƒŠ”๊ฒƒ ‹ˆ ข‹€๊ฐ€ ๊ตฌ‚˜. ^^"

"•„.. šฐ..›ƒŒ—” งŽ€ ˜ฏธ๊ฐ€ žˆ๊ณค •˜ฃ . •˜..•˜•˜;"


•˜..•˜•˜; ๊ทธƒ•˜˜Œ€กœ €น„–ˆ‹ค๊ฐ„ ๊นจ€๊ฒ ๊ตฌ‚˜; •ฝ๊ฐ„˜ €‹„ ๊ฐ€€๊ณ . ŒŒ. - -;

„ธฏธ‚˜ €น„

Œ.. ๊ทธŸฌ๊ณ  ‹ˆ ‚˜Š” ™œ OOPฅผ •˜Š”๊ฑฐ€? ๊ฐœธ œผกœ ฒ˜Œ ž˜Šคฅผ ๊ตฌ˜„•˜„œ ฐพ•„‚ธ žฅ € ‹คŒ˜€‹ค.
  1. Global €ˆ˜ฅผ “ฐ๊ธ ‹ซ๊ณ , •ˆ“ฐž‹ˆ ถˆŽธ•˜๊ณ , Global €ˆ˜๊ธ‰‹น ๊ฐ•˜‚˜”ฉ Žธ•˜๊ฒ ‹ค. •˜Š”, …Œฌ‹‰— ๊ธฐฐ˜•œ.
  2. Visual C++ —„œ ž˜Šคกœ งŒ“ค–“ฐ ธ…”ฆฌ„ผŠค ๊ธฐŠฅ €›„ ฐ›•„„œ ”„กœ๊ทธž˜ฐ •˜๊ธฐ Žธ•˜‹คŠ”.
ฆ‰, OOP ‹ ‚ฌ๊ณ —„œ˜ žฅ  •„‹Œ, ๊ธฐ ๊ฐœธŠคƒ€ผ˜ ”„กœ๊ทธž˜ฐค‘—„œ˜ žฅ ˜€‹ค. ŠคŠคกœ ƒ๊ฐ•˜๊ธฐ—” OOPผ ƒ๊ฐ–ˆ˜ ๊ฒƒ“ค„, •Œ๊ณ  OO˜ –ธ–ฅผ “ธ ฟ, OOP๊ฐ€ •„‹ˆ˜€—ˆ˜ ๊ฒƒ‹ค. „ธฏธ‚˜ค‘ 'OOP กœ •˜ ญ๊ฐ€ ข‹•„š”?' ผ๊ณ  งˆฌธ• •Œ  € ‡๊ฒŒ ‹ต•  ˆ˜Š” —†๊ฒ €.

‹ค‹œ 'OOPŠ” ™œ •˜Š”๊ฐ€' — Œ€•œ งˆฌธ„ •˜„œ ‚๊ฐ€ ”Œฐ•˜Š” ฐฉ•— Œ€• ƒ๊ฐ•˜๊ฒŒ ˜—ˆ๊ณ , ‚๊ฐ€ ”„กœ๊ทธž˜ฐ„ •˜„œ œ šฉ•˜๊ฒŒ šฉ–ˆ—ˆ˜ ‚ฌ๊ณ Šต๊€(ผ จ€Š” ๊ฒ ‹ค  •™••˜๊ฒŒŠ”;) — Œ€• ƒ๊ฐ•˜ฉฐ OOP „ธฏธ‚˜ Šค€ค„ 1ฐจ ˆ•ˆ„ งŒ“ค–๊ธฐ ‹œž‘–ˆ‹ค.

  1. —‡„ • ๊ฒƒธ๊ฐ€ : ––๊ฒŒ •  ๊ฒƒธ๊ฐ€˜ ๊€ . ‚˜Š” ˆ๊ธฐ— •™๊ต  „๊ณต ค‘ Science ™€ Engineeing ˜ ๊ธฐ€„  €๊ฒƒœผกœ ‚˜ˆ„—ˆ—ˆ‹ค. ‚๊ฐ€ '—‡„ ๊ณต€• ๊นŒ?' ผ๊ณ  งˆฌธ„ • •ŒŠ” •ž˜ ถ„ฅ˜ฅผ, '––๊ฒŒ • ๊ฒƒธ๊ฐ€?' ผŠ” งˆฌธ„ • •ŒŠ” ’ค˜ ถ„ฅ˜ฅผ. ฐ”กœ  šฉ˜ง„ •Š๊ฒ €งŒ, "OOP Š” '”„กœ๊ทธž˜ฐ„ ––๊ฒŒ • ๊ฒƒธ๊ฐ€?' ผŠ” ถ„ฅ˜— †•œ‹ค" ผ๊ณ  ง•ฃผ จธฆฟ†—„œ ถ„ฅ˜•˜๊ธฐ Žธ• ๊ฒƒž€ ƒ๊ฐ„ –ˆ‹ค.
  2. ๊ฐ€–ฅ”„กœ๊ทธž˜ฐ ๊ณผ • - OOPฅผ •˜„œ ‚˜Š” ๊ธฐ๊ณ„กœ งŒ“ค–ง„ —”ง„„ – ˜ฌฆฌ๊ณค •œ‹ค. ณผŠธ, „ˆŠธ, ‹คฆฐ”, ฌžญฌ, ฐฐ๊ธฐฐธธŒ...  €๊ฒƒ“ค„ ‹ฆ๊ณ  กฐ๊ณ  ๊ธฐฆ„ณ๊ฐ€ฉฐ งŒ“ค–๊ฐ€๊ธฐ.  €ถ„„ ––๊ฒŒ „ค…• ๊นŒ •˜„œ 'ฐจผฆฌ ฒก„ฐ ๊ทธž˜”ฝ ˆ„ งŒ ธ๊ฒŒ • ๊นŒ' •˜Š” ƒ๊ฐ„ •—ˆ‹ค. ค‘๊ฐ„— Python Interpreter ฅผ งŒ ธ๊ฒŒ •˜Š”๊ฒƒ ข‹๊ฒ ‹คŠ” ƒ๊ฐ„ –ˆ—ˆ๊ณ , ฐฝ€˜•๊ณผ˜  „™”ค‘ ”šฑ ” ™•‹ „ ๊ฐ€€๊ฒŒ ˜—ˆ‹ค.
  3. ”„กœ๊ทธž˜ฐ— Œ€•œ  „ฐ˜   ‘๊ทผ - ฌธ œฅผ Top Down œผกœ ‚˜ˆˆ‹คŠ” ๊€ . 2•™…„•Œ DirectX กœ ŠˆŒ… ๊ฒŒž„„ งŒ“ค•Œ ๊ฐ€” ƒƒ•˜˜๊ฒƒ „๊ณ กœ งŒ“  †„ กฐ๊ฐ•˜Š” ๊ณผ •˜€‹ค. กฐ๊ฐ„ • •Œ—” ฒ˜Œ—  „  † –‘„ งŒ“ค๊ธฐ œ„• ฌ๊ฒŒ ฌ๊ฒŒ ๊นจ ‚˜๊ฐ„‹ค. ๊ทธŸฌ‹ค๊ฐ€    „ธ€•˜๊ฒŒ กฐ๊ฐนผกœ ŒŒ ‚˜๊ฐ€„œ ž‘’ˆ„ งŒ“ค–‚˜๊ฐ„‹ค. Ÿฐ ‹œผกœ „ค…•  ˆ˜ žˆ๊ฒ ๊ตฐ •˜ฉฐ ถ”๊ฐ€.
  4. Stepwise Refinement - ฒˆ—  „๊ณผ•œ ‚ฌžŒค‘— ˆ˜•™๊ณผ๊ฐ€ žˆ—ˆ˜๊ฒƒ ๊ฐ™‹ค. ๊ทธŸฐ ‚ฌžŒ“ค—๊ฒŒ ˆ˜•™ฌธ œ— Œ€•œ  „๊ฐœ๊ณผ •๊ณผ„ ๊ฐ™•„Š” ”„กœ๊ทธž˜ฐ ฐฉ‹„ —ฌฃผ ข‹๊ฒ € •˜Š” ƒ๊ฐ— •˜‚˜ ๊ณจผ•˜‹ค. ๊ฐœธ œผกœ ˆ˜น˜•„ ˆ™ œฅผ • •Œ œ šฉ•˜๊ฒŒ จจน—ˆ˜ ฐฉ•๊ธฐ„ •„œ.
๊ทธฆฌ๊ณ  ค‘๊ฐ„ ‹คŠต. '•„.. ฌธ œ ๊ณจผ•• …ฐ...'  œผ ฉ‹ ธ˜๊ฒƒ€  „— ๊ธฐ •˜• ˜ˆกœ “ค—ˆ—ˆ๊ณ , „ šฐ˜• ฌธ œกœ งŒ“ค—ˆ—ˆ˜ Šคƒ€ฌž˜”„Šธ˜€‹ค. ‚ฌžŒ“ค—๊ฒŒ ๊ฐ€žฅ นœˆ™•œ ๊ฒŒž„‹ˆ —ฐ๊€„ฑ„ ฐพ๊ธฐ—” ข‹œผฆฌผ. •˜€งŒ, ๊ทธ ๊ณ„ธต„ฅผ ƒ๊ฐ• ›„ฐฐ“ค งŒ“ค ˆ˜ žˆ„ •„๊ฐ€ •„‹ˆ‹ค. ญ„ ค„—ฌ•€ –ˆ‹ค๊ฐ€ ฌธ“, ŒŒฌ ธ„ฐ”„ฆฌ„ฐกœ ๊ฐ ‹จœ„ ž‘—…„ •˜Š” ˜ˆกœ จจนœผ ข‹๊ฒ ‹คŠ” ƒ๊ฐ “ค—ˆ‹ค. ˜ค.. šฐฆฌŠ” งคผ งคผ ๊ฐฅผ ๊ฐ€€๊ณ  …ธŠ”๊ตฌ‚˜; ฌธ œ’€๊ธฐฅผ •˜ ค๊ณ  –ˆ‹ค๊ฐ€ Šœ† ฆฌ–ผกœ ฐ”๊พธ—ˆ‹ค.

„ธฏธ‚˜•Œ ๊ฑธ ‹œ๊ฐ„„ Œ€๊ฐ• žก•„‹ˆ, ‹คŒ‚  6‹œ๊นŒ€ ๊ฑฐ˜ Full กœ ›ฐ–•–ˆ‹ค. šฐ.. ‚๊ฐ€ € „ˆ–ˆ‚˜ •˜Š” ƒ๊ฐ “ค๊ธ –ˆ€งŒ, ผ‹จ€ ค‘š”•˜‹ค๊ณ  ƒ๊ฐ•œ ๊ฐœ…“ค„ นผจน๊ธฐŠ” ‹ซ—ˆ‹ค.

๊ทธฆฌ๊ณ  ˆ•ˆ„ ฐฝ€˜•—๊ฒŒ —ฌ“œฆฌ๊ณ  กฐ–ธ„ ๊ตฌ–ˆ‹ค.

23 ~ 29 : ฐธ”Šคบ ”„2002/ง„–‰ƒ™

3,4,5,7 : ProjectZephyrus/ClientJourney

1ผ († ):
  • DesignPatterns —ฐŠตฐจ ๊ฐ„‹จ•˜๊ฒŒ ๊ทธฆผŒ„ ๊ตฌ˜„•„. ฒ˜Œ ๊ฐ„‹จ•˜๊ฒŒ  „€ MainFrame class — ‹ค ๊ตฌ˜„•˜๊ณ , ๊ทธ ‹คŒ Delegation œผกœ  ฐจ ‹คฅธ ž˜Šค“ค—๊ฒŒ —ญ• „ –‘•ฃผŠ” ฐฉ•„ จ •˜‹ค. ๊ทธŸฌ˜ ค‘ MFC—„œ˜ WinApp ฒ˜Ÿผ Application class ฅผ SingletonPattern Šคƒ€ผกœ ฐ–œผกœ บ—ˆŠ”ฐ, ๊ณ„† Stack Overflow —Ÿฌ๊ฐ€ ‚˜Š” ๊ฒƒ˜€‹ค. '–ผ? –”˜๊ฐ€ ๊ณ„† žฌ๊ท€˜ธถœ ˜‚˜?..'
ฌธ œŠ” ‹คŒ๊ณผ ๊ฐ™€ ฝ”“œ— žˆ—ˆ‹ค.
~cpp 
Application.java
    public static Application getInstance () {
        if (theApp == null) {
            theApp = new Application ();
            theApp.init ();
        }

        return theApp;
    }

    public Application () {
        toolManager = new ToolManager ();
        mainFrame = new MainFrame ();
        mainFrame.setSize (640,480);
        mainFrame.show ();
    }

MainFrame.java
    public JMenu _makeToolMenu () {
        JMenu menuTool = new JMenu ("Tool");
        toolActionListener = new ToolActionListener ();
        Enumeration toolList = Application.getInstance().getToolsList();
        String toolName;
        JMenuItem toolMenuItem;

        while (toolList.hasMoreElements()) {
            toolName = toolList.nextElement().toString();
            toolMenuItem = new JMenuItem (toolName);
            toolMenuItem.addActionListener(toolActionListener);
            menuTool.add(toolMenuItem);
        }

        return menuTool;
    }

ฆ‰, Application Class ˜ ธŠค„Šค๊ฐ€ งŒ“ค–€๊ธฐ œ„•„  MainFrame ž˜Šค๊ฐ€ ™„„ฑ˜–••œ‹ค. ๊ทธŸฐฐ, MainFrame —„œŠ” Application ˜ ธŠค„Šคฅผ š”๊ตฌ•œ‹ค. ๊ทธ ‡๊ธฐ •Œฌธ— Application˜ getInstanceฅผ ˜ธถœ•˜๊ณ , •„ง ธŠค„Šค๊ฐ€ งŒ“ค–€€ •Š•˜œผ€กœ ˜ getInstance —„  Application ˜ Class ฅผ ƒˆกœ ˜ งŒ“ค ค๊ณ  •˜๊ณ  ‹ค‹œ MainFrame ž˜Šคฅผ ƒ„ฑ•˜ ค •˜๊ณ .. ฅผ ฐ˜ณต•˜๊ฒŒ ˜Š” ๊ฒƒ˜€‹ค.
๊ฒฐ๊ตญ ‹คŒ๊ณผ ๊ฐ™€ ฝ”“œกœ •๊ฒฐ„ –ˆ‹ค.
~cpp 
   public static Application getInstance () {
        if (theApp == null) {
            theApp = new Application ();
            theApp.init ();
        }

        return theApp;
    }

    public Application () {

    }

    public void init () {
        toolManager = new ToolManager ();
        mainFrame = new MainFrame ();
        mainFrame.setSize (640,480);
        mainFrame.show ();
    }

Class ˜ —ญ• “ค„ Delegation œผกœ ‹คฅธ ž˜Šค“ค—๊ฒŒ œ„ž„‹œผœฃผ„œ ผ˜ Œจ„ Œ€๊ฐ• žฌ˜ ๊ฒƒ ๊ฐ™‹ค.
  • SingletonPattern - Application Instanceฅผ Global ๊ฐกœ. ๊ทผฐ, Š” ผžฅผ‹จธ๊ฒƒ ๊ฐ™‹ค. ž˜•˜ Application ค‘•™ง‘ค‘ œ๊ฐ€ œ‹ค. Application ‚—„œ Delegation•˜Š” ๊ฐ“ค งŽ€ฐ, ๊ทธ •— Application  „ˆ ค‘๊ฐ„ ฉ”„ธ€  „‹ฌ—ญ• กœงŒ ž‘šฉ•˜Š”๊ฒƒ ๊ฐ™‹ค. ญ, FacadePattern ธ–‘ œ‹ค ๊ฒ €งŒ. ๊ฑ ฝ”“œ €๊ณ  ‚œ ’ค ‘๊ณ ณผ ผธ๊ฒƒ ๊ฐ™‹ค.
  • StatePattern - Tool „ ƒ—„œ šฉ. ˜„žฌ Tool„ ถ”๊ฐ€•˜ ค 1. Tool ƒ†. 2. interface ๊ตฌ˜„. ‹ค. ‹คงˆ ธ ๊ธฐŠฅ„ •˜ ค ˜„žฌ ฝ”“œ—„  CommandPattern ๊ณผ ™–•• “ฏ.
ž‘—…‹œ๊ฐ„€ ๊ทธฆฌ นกนก•˜๊ฒŒ •˜€ •Š•„„œ 5‹œ๊ฐ„ฏค ๊ฑธ ธ‹ค. •˜€งŒ, ค‘๊ฐ„ —‡„ ••• € ผ„œ ง„คธ ‹œ๊ฐ„€ ณ„กœ —†—ˆ˜ ๊ฒƒ ๊ฐ™‹ค. (ฃผกœ ค‘๊ฐ„ MP3 “ฃ๊ธฐ, ›น„œ•‘ “ฑ ‹คฅธง““ค„ •„œ ˜คž˜๊ฑธ ธ‹คŠ”;)

5›”

24ผ (๊ธˆ), 27ผ (›”):
19ผ (ผ):
10ผ (๊ธˆ):
8ผ (ˆ˜):
  • SE ‹œ๊ฐ„— CBD (CBD & Business ผŠ” ธก. 3๊ฐ• —ฐ†) ฅผ ฐฐšธ•Œงˆ‹ค ŠผŠ”   žˆ‹ค, ‹คฅธ ๊ณต•™ (๊ธฐ๊ณ„,  „ž, ๊ฑ•) “ค˜ ๊ฐœ…“ค„ šฉ•˜—ฌ Software ฅผ Hardware ™” ‹œ‚จ‹คŠ” Š‚Œ “ ‹ค. Š˜ '‘œ€' „ ๊ฐ•กฐ•˜‹œŠ” ๊ตˆ˜‹˜. ฌ„ŒŠธฝ๊ณผ QA—„œ ๊ทธ ฆ„ น งˆ ˆ˜ —†Š” ๊ตˆ˜‹˜‹œ๊ธฐ—, ๊ทธฆฌ๊ณ  ‰†Œ ˆ˜—…•Œ ž‹ ˜ ‚˜งŒผ —ฐฅœžˆœผ‹  ง”€„ •˜‹œ๊ธฐ— งˆŒ ”“คฆฌ€ •Š„ ˆ˜ —†๊ณ , ๊ฒฐ๊ตญ '†ฑ‹ˆฐ”€“ค ค‘ •˜‚˜'ผŠ” ƒ๊ฐ„ •˜๊ณ  ‚˜ •ฝ๊ฐ„ •œŠคŸฝ‹ค. ๊ทธž˜„œ ๊ตˆ˜‹˜๊˜„œŠ” Š˜ 'Domain Expert' & 'Speciality' ฅผ ๊ฐ•กฐ•˜‹œ€งŒ.
    • •Œฏค •••  งˆฌธ '๊ทธ ‹คŒ— • ผ€?' ๊ฑงŒ. ž ‹œงŒ ฅ˜.
  • Wiki „ค…šŒ•Œ Š‚€ JuNe „ ฐฐ— Œ€•œ ถ„„ (NoSmok:AnalyzeMary) - ––๊ฒŒ •˜ ณ„ ๊€‹ฌ—†–•Š” ‚ฌžŒ“คกœ€„ฐ งˆฌธ„ œ „•‚๊ณ  ฐ˜‘„ Œ–˜ฌ ˆ˜ žˆ„๊นŒ?  •ง ‹ ๊ธฐ•œ ๊ฒฝ—˜˜€‹ค. ฒ˜Œ—Š” ๊ทธƒณ„ ƒ๊ฐ—†– ˜ ‚ฌžŒ“ค„ „ค…˜ Turn („ค… ‚šฉณ„กœ •ฝ๊ฐ„•ฝ๊ฐ„ ‹จฝ. ค‘๊ฐ„ Feedback „ ‚”ผ๊ณ , ‹ค‹œ ƒˆกœš „ค…„ •˜Š” Šต)  ฆ๊ฐ€•— ”ฐผ ŠคŠคกœ 'งˆฌธ' „ •˜๊ฒŒ ˜—ˆ„๊นŒ.
    • †Œฆฌ †ค & †„ - Š” ‚ฌžŒ“ค˜ ง‘ค‘„— –Š •„ ˜–ฅ„ ผนœ‹ค๊ณ  ƒ๊ฐ. ˜•œ ๊ฒƒ€ ž‹ ๊ฐ˜ ™„ธ๊ฒƒ ๊ฐ™‹ค. ž‹ ๊ฐ—†Š”   ˆ•œ †„กฐ ˆ„ •˜๊ณ , †Œฆฌ ฌ๊ธฐฅผ •Œงž๊ฒŒ กฐ ˆ•  ˆ˜ —†‹ค.
    • ‚šฉ˜  ‘๊ทผฐฉ• - งˆฌธ„ ˜€๊ณ , ‚šฉ„ •ผ๊ธฐ•˜๊ณ , ˜ งˆฌธ„ ˜ ธ๊ณ ... XP˜ TDDฅผ Š” ๊ฒƒ ๊ฐ™€ฐ,  ˜•œ ฐฉ•ธ ๊ฒƒ ๊ฐ™‹ค. Feedback „ ‚•€‹คŠ”  —„œ.
    • ‹ค–‘•œ ๊ฒฝ—˜ - ‚šฉ„ งŒ“ค–‚ ค, ๊ทธงŒผ ๊ฒฝ—˜ •„š”•˜๊ธฐ—. „ฑžฅ๊ณ„‹จผ˜๊ฐ€, ž‹  'ฐฐš' ‚šฉ„ ' šฉ' •ณผ ˆ˜ žˆŠ” „ฐกœ„œ šฉ•œ‹ค˜๊ฐ€, Refactoring ๊ณผ ”„กœ๊ทธž˜ฐ ๊ฐœฐœ˜ ๊€ —„œ „ค…•œ‹ค˜๊ฐ€ “ฑ“ฑ (๊ฒƒ๊ฐ™€ ๊ฒฝšฐ ‚šฉ„ •Œ๊ณ  žˆ–„, ‚ฌžŒ“ค˜  ˆฒจ— งžถฐ••˜๊ธฐ•Œฌธ—   ˆ•˜๊ฒŒ ๊บผ‚ผ ƒ€ฐ„ งžถฐ•• ๊ฒƒ ๊ฐ™€ฐ. •ผ๊ธฐ๊ฐ€ ˜Ÿฌ๊ฐ€„œ Ž˜€ ๊ตฌกฐกฐ •, Refactoring œผกœ๊นŒ€˜ •ผ๊ธฐฆ„ „๊ฐœ. ––๊ฒŒ ˜Ÿฌ˜จ๊ฑธ๊นŒ.)

4ผ († ):
  • •™๊ต—„œ  ˆฌŠธฅผ “ฐ๊ธฐ œ„• (ProgrammingLanguageClass/Report2002_2) „„œ๊€— “ค ธ‹ค. HowToReadIt ˜ ฐฉ•ค‘ ‹ค…— ๊€•œ ฐฉ•„ – ˜ฌฆฌ„œ •ฝ๊ฐ„ น„Šท•œ ‹œ„ฅผ •‹ค. (˜ค. ฐฉ•“ค ž๊ฐ€ Extreme~ •ธ‹ค;) 1‹œ๊ฐ„ 30ถ„ ™•ˆ Java ฑ… ๊ธฐˆ„œ 2๊ถŒ๊ณผ ›„œ 1๊ถŒ, VBฑ… 3๊ถŒ •„ฅผ ›‘–ฝ—ˆ‹ค. (10—ฌ๊ถŒ๊นŒ€Š” —„‘๊ฐ€ •ˆ‚˜„œ; „„œ๊€ 3‹œ๊นŒ€ฐ–— •ˆ•˜Š” ๊€๊ณ„กœ) ˜ˆ „— žฐ”ฅผ •˜๊ธ –ˆ—ˆ€งŒ,  œŒ€กœ •œ ๊ธฐ–ต€ —†‹ค. ฒ˜Œ—Š” ›„œ™€ ๊ณ ๊ธ‰„œฒ˜Ÿผ Š” ๊ฒƒ„ ฝœผ ค‹ˆ๊นŒ จธฆฌ— ž˜ •ˆ“ค–™”‹ค. ๊ทธž˜„œ ๊ฐ€žฅ ‰ฌ›ŒŠ” ๊ธฐˆ„œ (•Œ๊ธฐ‰ฌš Java2, Java2 žฐ”† ”ผ•„ “ฑ ‘๊˜ –‡€ •œ„œ“ค) ฅผ ฝ๊ณ „  ฝ–๊ฐ€‹ˆ๊นŒ ๊ฐ€† ™–„œ ฝ๊ธฐ ‰ฌ› ‹ค. 3ฒˆงธฏค ฝ–‚˜๊ฐ€‹ˆ๊นŒ Event Listener ˜ Delegation ˜ ˜ฏธฅผ  œŒ€กœ ••œ ๊ฒƒ ๊ฐ™๊ณ  (˜ˆ „—Š” †ŒŠค ”ฐผน˜๊ธฐงŒ –ˆ—ˆ‹ค.) StatePatternœผกœ˜ ง„™” (ง„™”‹จ 'ถ”›„ ‘'  ” งžœผ ค‚˜) ๊ฐ€ šฉ•œ ๊ตฌกฐผ ˆ˜ žˆ๊ฒ ‹คŠ” ƒ๊ฐ„ •˜๊ฒŒ ˜—ˆ‹ค. (Event Listener —„œ ž‘„ฑ–ˆ˜ ฝ”“œฅผ กฐ๊ธˆงŒ Refactoring •˜ ฐ”กœ StatePattern œผกœ  šฉ„ ‹œ‚ฌ ˆ˜ žˆ„ ๊ฒƒ ๊ฐ™‹คŠ” ƒ๊ฐ “ค—ˆ‹ค. •„ง ๊ตฌ˜„•ง„ •Š•˜๊ธฐ •Œฌธ— ญผ • ง€ •„‹ˆ€งŒ.) ‹œ๊ฐ„ žˆ—ˆ‹ค •˜ฃจข…ผ ‹œ„•Š”๊ฑฐ •„‰ฝ๊ฒŒ„ •™๊ต— Šฆ๊ฒŒ „ฐฉ•„œ;
    • ˜ˆ „— –ˆ—ˆ˜ ผ MFC ฑ… •œ๊บผฒˆ— ฝ๊ธฐ˜€Š”ฐ, ๊ทธ•Œ ƒ—ฝ”จ ฑ… (bible, 2ฃผ™„„ฑ, 5Œ ™„ฒฝ๊ฐ€“œ)ž‘ Jeff Prosise ˜ ฑ… ฒˆ—ญŒ„ ๊ฐ™ ฝœผ„œ ƒ—ฝ”จฑ…˜ žฅ ๊ณผ Jeff •„ €”จ (?) ฑ…˜ žฅ „ ๊ถฆฌ–ˆ—ˆ—ˆ‹ค. •œŽธ€ ‹ค œ –Š •„ VC++ Programming „ •˜๊ณ  ‚œ’ค—˜ Tip “คผ •œ‹ค, •œŽธ€ API Programming „ „ญ ต•˜๊ณ  ‚œ ‹คŒ MFCฅผ ฐจ๊ทผ ฐจ๊ทผ ••‚˜๊ฐ€Š” ๊ณผ •„ „ค…•œ‹ค๊ณ  ••• ๊นŒ. MFCฅผ ฒ˜Œ •˜๊ณ  ‚œ’ค '“จ„ฐ๊ฐ€–ˆ‹ค ˜ ‹น˜น๊ฐ„ ™„ฒฝ๊ฐ€“œ •ž€ถ„ MFC Framework „ค…๊ณผ Jeff ˜ ฑ…œผกœ •๊ฒฐ•  ˆ˜ žˆ—ˆ˜ ๊ธฐ–ต žˆ‹ค.

1ผ (ˆ˜):
  • SE - UML. ฏธฆฌ  ‘•œ ‚šฉผ ƒ๊ฐ˜–„œธ€ ๊ธžฅ๊ฐ –จ–กŒ‹ค. 80-100 —ฌžฅ˜ PPTฅผ 1‹œ๊ฐ„ •„— ‹ค „ค…•˜‹œŠ” ๊ตˆ˜‹˜„ PL ‹œ๊ฐ„๊ณผ ฒœ€ฐจ‹ค. (PLŠ” 1‹œ๊ฐ„— 6~12žฅ;)
  • Numerical Analysis Report ™€ OS Report ฅผ •˜Šƒ๊ณ  ๊ฑฐ˜ ฐค„ ƒœŠ”ฐ ('๊ฑฐ˜' ธ œ Š”, ค‘๊ฐ„— –ธ œ žคŠ”€ ๊ฒ ‹คŠ”  ; OS — Œ€•œ Design ๊ทธฆฐ ข…๊ฐ€ žˆ๊ธ •œ ๊ฒƒ ถ„… OS Report ฅผ •˜Š” ค‘๊ฐ„˜€˜๊ฒƒ ๊ฐ™€ฐ; ถˆ„ ž˜ ฎ๊ณ  ž”๊ฒƒ ‹ ๊ธฐ•˜๊ธ •˜‹ค;;) NA ˆ™ œ— Œ€•œ Quality Management — Œ€•œ ‹คŒจผ๊ณ  ••• ๊นŒ. ‹œ๊ฐ„ กฐ ˆ„ •˜๊ณ  OS Report — ‹œ๊ฐ„„ ” ˆฌž•  ฐฉ• žˆ—ˆŒ—„ ถˆ๊ตฌ•˜๊ณ  กฐ๊ธˆ •„‰ฝ‹ค. ˜ฌ•˜ ™”‘Š” ๊ฐœธ  ‹œ๊ฐ„๊€ฆฌŠฅ ฅฐฐ–‘  ๊ฒƒ ๊ฐ™‹ค. (99•™ฒˆ. 3•™…„ ˜„ก –‘‹ˆ €„Ÿฝ‹ค;)
  • Simple Design — Œ€•„œ ‚๊ฐ€ ž˜ ƒ๊ฐ•œ ๊ฒƒ ๊ฐ™‹ค. Up-Front Design žฅผ ๊ตฌ œผกœ “ค–๊ฐ”„•Œ –ผงˆ‚˜ ณตžก•  ˆ˜ žˆŠ”€„ „œ ฒ˜Œ€„ฐ Simple Design „ …ผ• ˆ˜ žˆ„๊นŒ •˜Š” ƒ๊ฐ„ •ณธ‹ค. ƒ๊ฐ•‹ˆ, —ฌƒœ๊ ‚๊ฐ€ ๊ทธฆฐ  „ UML Class Design € ๊ฑฐ˜ ‹ค Simple Design ๊ฒ ๊ตฐ. -_-; (Interface “ค Method ฆ„„ ๊ฒฐ • •ˆ–ˆœผ‹ˆ๊นŒ.)
  • €ฆฌŠ” To Read Laterฅผ „œ ‹ค‹œ๊ธˆ ‹คง„;

4›”

15ผ (›”):
  • ˆ˜•™๊ณต€ žฌ๊ฐœค‘. ๊ทน•œ & —ฐ† & ฏธถ„ ‹ค‹œ Š”ค‘. กฐ๊ธˆ ๊ธ‰žˆ จน๊ณ  žˆ–„œ • ๊นŒ •ฝ๊ฐ„๊ฑฑ •จ. ˆ˜ง„  Œ€ˆ˜•™๊ณผ ๊ธฐ•˜•™˜ ๊ตฐจ ผŠ” ง ธƒ๊นŠ—ˆ‹ค. ( ง ‚˜˜ค๊ธฐ  „— ‹คฅธ ‚ฌžŒ“ค˜  •ฆฌ๊ฐ€ —ฌŸฌ๊ฐœ ‚˜™”‹ค. ‹คˆ˜๊ณ„™€ ˆ˜ง„  ๊ทธ ˆœ„œ— งž๊ฒŒ 1:1งคนญ œ‹คŠ” ๊ฒƒ€„ฐ. •„. „ธ๊ณ„™€ „ธ๊ณ„๊ฐ€ —ฐ๊ฒฐ˜๊ธฐž€ ‰ฝ€ •Š„‹ค.)
  • ‚๊ฐ€ ‹œ๊ฐ„ ๊ณ„‚ฐ— ๊ทธ ‡๊ฒŒ ˆฌฒ •˜€ •˜‹คŠ”   ฐœ๊ฒฌ. ‹คฅธ ‚ฌžŒ Pair • •ŒŠ” ๊ฑธฆฐ ‹œ๊ฐ„ฌ —‹ฌžˆ –ˆ๊ฑงŒ,  •ž‘ ‚๊ฐ€ “ฐ๊ณ  žˆŠ” ‹œ๊ฐ„„  œŒ€กœ ๊ธฐก•˜€ •˜˜€‹ค. (€๊ธˆ 1‹œ๊ฐ„ •„ฅผ ๊ณ„š— —†Š” ผกœ ˜คฒ„ค‘;;)
  • „ฑ˜ ๊ธฐŠฅ„ ‹ค‹œ ฝŒ.
  • SWEBOK Software Construction €ถ„ •œฒˆ •ฆฌ. Software Design PartŠ” ๊ทธž˜„ งˆŒ— “ค—ˆ—ˆŠ”ฐ, Construction € ถ„ฅ˜ €ถ„ ง˜— •ˆ“ค–•˜Š”ค‘. SWEBOK  žˆŠ” œ ๊ฐ€ •‹น Knowledge Area — Œ€•„œ ผข…˜ •˜ ‹€„  œ๊ณต•˜Š” ๊ฒƒธฐ, ฒˆ •„ฐŠ” ๊ทธ —ญ• „  œŒ€กœ •˜€ –ˆ‹คŠ” ƒ๊ฐ “ ‹ค. ‹คฅธ ฑ…„ ฐพ•„˜€ ผ‹จ ๊ฑ„ˆ›ฐ˜€ ••ผ๊ฒ ‹ค. ๊ทธž˜„ ผ‹จ ‚ผ„ œ„• •œฒˆ”;
16ผ (™”):
  • Operating System Concepts. Process ๊€ จ  „ฐ˜ œผกœ ›‘–„. ™๊ธฐ™” ฌธ œ‚˜ ฐ“œฝ ๊ฐ™€ šฉ–“ค€  „— Client / Server Programming • •Œ Šค ˆ“œ ™๊ธฐ™” €ถ„„ •˜„œ  ‘•ณธ€ผ น„๊ต  นœˆ™•˜๊ฒŒ ‹ค๊ฐ€™”‹ค. (Process ‚˜ Thread ‚˜ ™๊ธฐ™” €ถ„— Œ€•„œŠ” ๊ฑฐ˜ ‹คฅผฐ” —†–ธ‹ค.)
    • € ” ๊ณ„ œผกœ ๊ณต€•  ˜ˆƒ ง„–‰ Chapter ฅผ  Š” ๊ฒƒ ” ‘œ๊ฐ€ …‹œ œผกœ ผ๊ฒƒ ๊ฐ™‹ค. (๊ฒƒ€ 'ž…˜ ฆ๊ฑฐ›€' —„œ˜ ž…•˜๊ธฐ ‰ฌš ˜•ƒœฅผ งŒ“ค– ค„๊ฒƒผ ƒ๊ฐ•œ‹ค. ๊ทผฐ, ฏธ Ÿฐ๊ฑฐ ‹ค ๊ณ„‚ฐ•˜๊ณ  žˆ‹ค๊ณ  •Œ๊ณ žˆŠ” ƒƒœ—„œ„ ž… ˜ ค‚˜;)
    • SWEBOK —„œŠ” MindMap  ž˜  šฉ˜—ˆ—ˆŠ”ฐ, OSC —„œŠ” ˜คžˆ ค ConceptMap ‹  ‘๊ทผ ” šฉ•˜€‹ค. ๊ฒƒ„ ฑ…˜ Šคƒ€ผ— ˜–ฅ„ ฐ›„“ฏ. (๊ธฐ˜ SWEBOK ‹ ƒ€„ฑ—  –€ Index-Hierarchy Šคƒ€ผ ฌธ œ๊ฐ€ žˆ๊ธ •˜‹ค.)
  • SWEBOK Construction €ถ„ •œฒˆ ” „. •˜€งŒ —ฌ „žˆ งˆŒ— •ˆ“ค–•˜Š”ค‘; (ƒฏผ“ฐ งฒ˜Ÿผ '˜–กœ œ ™™”ฑ… ฝ๊ณ  „ธตŠค”ผ– ˜ฌธŒ ฝ–•ผ' ••˜Š” ‚šฉ—ฌ„œ ๊ทธŸฐ๊ฐ€;) Code Construction € •„ž˜„ Design ˜—ญ‚˜ Test ˜—ญ— น„•„œ art (˜ˆˆ  ˜Š” ๊ธฐˆ )  ธ ธก „œ ๊ทธŸฌ ค‚˜. ๊ฑ ‹คฅธ  ˆผŸฐŠคฅผ Š” ๊ฒƒ ‚˜„ ๊ฒƒ ๊ฐ™‹ค. •œ๊ณ„ฅผ ƒ๊ฐ•˜ž.
17ผ (ˆ˜):
  • ‹คน˜ฐ”‚˜ ‹ค‹œ˜ ฑ… ฝŒ. ฒ„Šค •ˆ—„œ  ˆฐ˜ (ผฐ˜ ธ ฑ…‚ฌฆˆ ๊ธฐ€ ๊ฐ€ฒผš ‚šฉ๊ธฐ€œผกœ ‹œ๊ฐ„‹น 100Ž˜€Š” ฝŠ” ๊ฒƒ ๊ฐ™‹ค.)ฏค ฝ๊ณ , ง‘—„œ 1‹œ๊ฐ„ 10ถ„ •„ จ„œ ‚˜จธ€ฅผ ‹ค ฝ—ˆ‹ค. (ฒˆฃผ‚กœ  •ฆฌ & ๊ธ€ ˜ฌฆฌ๊ธฐ)
    • ธƒ ๊นŠ—ˆ˜ ‚šฉ Œ€๊ฐ•: 'ƒ,‚ฌ, ‹ น„ —˜' —„œ ˜•™šฉ–ค‘ 'ๆ‰€ๅœจ่ญ˜' ผŠ” ๊ฒƒ žˆ‹ค๊ณ  •œ‹ค. ณ‘›—„œ ™˜ž˜ ˜‹ˆ˜€    ‚ฎ•„€๊ณ  žˆ„ •Œ ๊ทธ ˆ˜€„ ๊ฒ€‚ฌ•˜๊ธฐœ„• ‹คŒ๊ณผ ๊ฐ™€ งˆฌธ„ •œ‹ค.
  • '—ฌ๊ธฐŠ” –””ž…‹ˆ๊นŒ?'

    '‹น‹ € ˆ„๊ตฌž…‹ˆ๊นŒ?'

    '€๊ธˆ€ –ธ œž…‹ˆ๊นŒ?'

๊ณต๊ฐ„ , ‹œ๊ฐ„ , ๊ทธฆฌ๊ณ  ž๊ธฐž‹ — Œ€•œ ณธงˆ  งˆฌธ“ค. ™˜žฅผ 'ง„‹จ' •˜“ฏ ‚˜ฅผ 'ง„‹จ' •˜Š”  € งˆฌธ— Œ€• ‚˜Š” ––ค ‹ต„ ‚๊นŒ? –ธ œ‚˜ ‚˜Š” งˆฌธ— Œ€• ๊ฒฐก „ ‚ฆฌ€ •ŠŠ”, ‘œ˜„•˜€ •ŠŠ” Read-Only User˜ œ„น˜— žˆŠ” ๊ฒฝšฐ๊ฐ€ งŽ•˜‹ค. ๊ณผ—ฐ ‚˜Š” ––ค ‹ต„ ‚๊นŒ? ( € ๊ธ€—„œ˜ '‚˜'™€ €๊ธˆ  ๊ธ€„ “ฐŠ” '‚˜'๊ฐ€ ๊ฐ™€ ‚ฌžŒ •„‹ˆผŠ” Š‚Œ “œŠ” œ Š” ญ˜๊นŒ.)
  • OSC  „ œผกœ ›‘–๊ธฐ 2ฐจ (›‘–๊ธฐกœ Œ€žต 2‹œ๊ฐ„ šฉ). ฑ… ž๊ฐ€ ž˜ งŒ“ค–กŒ‹คŠ” ƒ๊ฐ “ ‹ค. 'Concept' — ถฉ‹ค•˜‹ค. ฑ…— Œ€•œ  „ฐ˜ ธ ‹œ•Š” žกžŒ ๊ฒƒ ๊ฐ™‹ค.
    •  „ฐ˜ ธ OS ž‘™›ฆฌ๊ฐ€ 1,2žฅ— ๊ฑธณ.
    • Process Management ๊ฐ€ 3,4,5,6,7— ๊ฑธณ. ‹œ—˜ฒ”œ„Š” Process Synchronization ๊นŒ€.
    • Memory Management
    • I/O Management
  • ฌธ œ : ˜ค›„ ™ฉ๊ธˆ‹œ๊ฐ„— 4‹œ๊ฐ„‚˜
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:05
Processing time 0.2244 sec