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.2495 sec