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์ฐจ ์ดˆ์•ˆ์„ ๋งŒ๋“ค์–ด๋ณด๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

  • ๋ฌด์—‡์„ ํ• ๊ฒƒ์ธ๊ฐ€ : ์–ด๋–ป๊ฒŒ ํ•  ๊ฒƒ์ธ๊ฐ€์˜ ๊ด€์ . ๋‚˜๋Š” ์ดˆ๊ธฐ์— ํ•™๊ต ์ „๊ณต ์ค‘ Science ์™€ Engineeing ์˜ ๊ธฐ์ค€์„ ์ €๊ฒƒ์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์—ˆ๋‹ค. ๋‚ด๊ฐ€ '๋ฌด์—‡์„ ๊ณต๋ถ€ํ• ๊นŒ?' ๋ผ๊ณ  ์งˆ๋ฌธ์„ ํ• ๋•Œ๋Š” ์•ž์˜ ๋ถ„๋ฅ˜๋ฅผ, '์–ด๋–ป๊ฒŒ ํ• ๊ฒƒ์ธ๊ฐ€?' ๋ผ๋Š” ์งˆ๋ฌธ์„ ํ• ๋•Œ๋Š” ๋’ค์˜ ๋ถ„๋ฅ˜๋ฅผ. ๋ฐ”๋กœ ์ ์šฉ๋˜์ง„ ์•Š๊ฒ ์ง€๋งŒ, "OOP ๋Š” 'ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์–ด๋–ป๊ฒŒ ํ• ๊ฒƒ์ธ๊ฐ€?' ๋ผ๋Š” ๋ถ„๋ฅ˜์— ์†ํ•œ๋‹ค" ๋ผ๊ณ  ๋งํ•ด์ฃผ๋ฉด ๋จธ๋ฆฟ์†์—์„œ ๋ถ„๋ฅ˜ํ•˜๊ธฐ ํŽธํ• ๊ฒƒ์ด๋ž€ ์ƒ๊ฐ์„ ํ–ˆ๋‹ค.
  • ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณผ์ • - OOP๋ฅผ ํ•˜๋ฉด์„œ ๋‚˜๋Š” ๊ธฐ๊ณ„๋กœ ๋งŒ๋“ค์–ด์ง„ ์—”์ง„์„ ๋– ์˜ฌ๋ฆฌ๊ณค ํ•œ๋‹ค. ๋ณผํŠธ, ๋„ˆํŠธ, ์‹ค๋ฆฐ๋”, ํฌ๋žญํฌ, ๋ฐฐ๊ธฐ๋ฐธ๋ธŒ... ์ €๊ฒƒ๋“ค์„ ๋‹ฆ๊ณ  ์กฐ์ด๊ณ  ๊ธฐ๋ฆ„์ณ๊ฐ€๋ฉฐ ๋งŒ๋“ค์–ด๊ฐ€๊ธฐ. ์ด ๋ถ€๋ถ„์„ ์–ด๋–ป๊ฒŒ ์„ค๋ช…ํ• ๊นŒ ํ•˜๋ฉด์„œ '์ฐจ๋ผ๋ฆฌ ๋ฒกํ„ฐ ๊ทธ๋ž˜ํ”ฝ ํˆด์„ ๋งŒ์ ธ๋ณด๊ฒŒ ํ• ๊นŒ' ํ•˜๋Š” ์ƒ๊ฐ๋„ ํ•ด๋ดค์—ˆ๋‹ค. ์ค‘๊ฐ„์— Python Interpreter ๋ฅผ ๋งŒ์ ธ๋ณด๊ฒŒ ํ•˜๋Š”๊ฒƒ์ด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ์—ˆ๊ณ , ์ฐฝ์ค€์ดํ˜•๊ณผ์˜ ์ „ํ™”์ค‘ ๋”์šฑ ๋” ํ™•์‹ ์„ ๊ฐ€์ง€๊ฒŒ ๋˜์—ˆ๋‹ค.
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ์ „๋ฐ˜์  ์ ‘๊ทผ - ๋ฌธ์ œ๋ฅผ Top Down ์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค๋Š” ๊ด€์ . 2ํ•™๋…„๋•Œ DirectX ๋กœ ์ŠˆํŒ… ๊ฒŒ์ž„์„ ๋งŒ๋“ค๋•Œ ๊ฐ€๋” ์ƒ์ƒํ•˜๋˜๊ฒƒ์ด ์„๊ณ ๋กœ ๋งŒ๋“  ์†์„ ์กฐ๊ฐํ•˜๋Š” ๊ณผ์ •์ด์˜€๋‹ค. ์กฐ๊ฐ์„ ํ• ๋•Œ์—” ์ฒ˜์Œ์— ์ „์ฒด์  ์† ๋ชจ์–‘์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํฌ๊ฒŒ ํฌ๊ฒŒ ๊นจ ๋‚˜๊ฐ„๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ์ ์  ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ๊ฐ์นผ๋กœ ํŒŒ ๋‚˜๊ฐ€๋ฉด์„œ ์ž‘ํ’ˆ์„ ๋งŒ๋“ค์–ด๋‚˜๊ฐ„๋‹ค. ์ด๋Ÿฐ ์‹์œผ๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๊ฒ ๊ตฐ ํ•˜๋ฉฐ ์ถ”๊ฐ€.
  • 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.0819 sec