E D R , A S I H C RSS

Seminar How To Program It Afterwords

SeminarHowToProgramIt์— ๋Œ€ํ•œ ๊ฐ์ƒ, ํ›„๊ธฐ, ๊ฐ์ข… ์งˆ๋‹ต, ๋…ผ์˜, ThreeFs.

  • ์ฐฝ์„ญ:PairProgramming ์ž์ฒด๊ฐ€ ์ธ์ƒ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์Œ์•…์„ ์•„๋งˆ์ถ”์–ด๋กœ ํ•˜๋Š” ์ €๋กœ์จ๋Š” ์Œ์•…์™ธ์—๋„ ์ด๋ ‡๊ฒŒ ๋ฉ‹์ง€๊ฒŒ ์ฝค๋น„๋ฅผ ๊ฒฐ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์— ๋†€๋ผ์šธ ๋”ฐ๋ฆ„์ž…๋‹ˆ๋‹ค. ^^;; ๊ทธ๋ฆฌ๊ณ  ๋ณ€์ˆ˜๋ช…์„ ๊ณ ์น˜๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ Refactoring ์— ๋“ค์–ด๊ฐ€๊ณ  ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค๋Š” ์‚ฌ์‹ค๋„ ๊ฐ๋ช…์ด์—ˆ์Šต๋‹ˆ๋‹ค. ^^;
    ๊ทธ๋ž˜์„œ PP๋‚˜ XP์˜ ๊ณผ์ •์„ Jazz์— ๋น„์œ ํ•˜๊ณค ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•œ๋ฒˆ ์œ ์˜์–ด์‚ฌ์ „์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์‹œ ์ผ์ฃผ์ผ๊ฐ„๋งŒ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”. ๊ทธ๋ฆฌ๊ณ  ๊ฑฐ๊ธฐ์„œ ๋ฌด์—‡์„ ๋” ๋ฐฐ์› ๋Š”์ง€ ์ด์•ผ๊ธฐํ•ด๋ณด๋ฉด ์ฐธ ์ข‹๊ฒ ๋„ค์š”. --๊น€์ฐฝ์ค€

  • ์žฌ๋™:์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๊ณผ ์ฒ˜์Œ์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ฐ™์ด ํ•˜๋ฉด์„œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ด ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ•œ ์ง€๋ฅผ ํ™•์‹คํžˆ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ์ด์ œ๋ถ€ํ„ฐ๋Š” '๋ง ๋งŽ์€' ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋˜์–ด์•ผ ๊ฒ ์Šต๋‹ˆ๋‹ค ^^ ์˜ค๋Š˜ ์„ธ๋ฏธ๋‚˜ ์ •๋ง ์ˆ˜๊ณ ํ•˜์…จ์Šต๋‹ˆ๋‹ค
  • neocoin : UnitTest์—์„œ ์ถ”๊ตฌํ•œ ํ”„๋กœ๊ทธ๋žจ์˜ ์„ค๊ณ„์—์„œ Divideํ•ด ๋‚˜๊ฐ€๋Š” ๊ณผ์ •์€ ์—ฌํƒœ ๊ฑฐ์˜ ๋””์ž์ธ ํƒ€์ž„์—์„œ ๊ฑฐ์˜ ์ˆ˜ํ–‰์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์—ฌํƒœ Test๋ฅผ ์œ„ํ•œ ์ฝ”๋“œ๋“ค๊ณผ ๋””๋ฒ„๊ทธ์šฉ ์ฝ”๋“œ๋“ค์„ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ• ๋•Œ๋งˆ๋‹ค ๊ทธ๋Ÿฐ ๋””์ž์ธ์—๋„ ๋งŽ์€ ์‹œ๊ฐ„์„ ์†Œ์š”ํ–ˆ๋Š”๋ฐ, ์•„์˜ˆ ํ”„๋กœ๊ทธ๋žจ์˜ ์ถœ๋ฐœ์„ Test์—์„œ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ๋ฐœ์ƒ์˜ ์ „ํ™˜์ด ์ธ์ƒ ๊นŠ์—ˆ์Šต๋‹ˆ๋‹ค. --์ƒ๋ฏผ

  • 1002 : ์–ด์ œ Test Code : Product Code ๊ฐ„ ์ค‘๋ณต (return 0 !) ์„ OAOO๋กœ ํ’€์–ด์„œ Refactoring ์„ ํ•ด์•ผ ํ•  ์ƒํ™ฉ์œผ๋กœ ๊ทœ์ •์ง“๋Š”๋‹ค๋Š” ๋ง์ด ๋’คํ†ต์ˆ˜๋ฅผ ํ•œ๋Œ€ ๋•Œ๋ฆฌ๋Š” ๊ธฐ๋ถ„์ด์˜€์Šต๋‹ˆ๋‹ค;;
    • TDD๋ฅผ ์–ด์„คํ”„๊ฒŒ๋‚˜๋งˆ ์‹œ๋„ํ•˜๋ฉด์„œ ๋А๋‚€์ ์ด 'TDD ์—์„œ์˜ Product Code ๋Š” ์˜ค์ง ํ…Œ์ŠคํŠธ ๊นŒ์ง€๋งŒ ๋งŒ์กฑํ•˜๋Š” ์ฝ”๋“œ์ธ๊ฐ€' ์˜€์—ˆ๋Š”๋ฐ. ํ•œํŽธ์œผ๋กœ๋Š” ์ด๋ ‡๊ฒŒ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๊ฒ ๋”๊ตฐ์š”. 'ํ•ด๋‹น ์Šค์ผ€์ผ์— ๋Œ€ํ•ด ๋”์šฑ๋” ์ •ํ™•ํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ๋งŒํผ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์–‘์„ ๋Š˜๋ ค๋ผ.' ํ…Œ์ŠคํŠธ์ฝ”๋“œ ์ž์ฒด๊ฐ€ ์ผ์ข…์˜ Quality Assurance ๋ฅผ ์œ„ํ•œ ๋„ํ๋จผํŠธ ์—ญํ• ๋„ ๋œ๋‹ค๋Š” ์ ์„ ๋‹ค์‹œ ์ƒ๊ฐํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • 'ํ…Œ์ŠคํŠธ์ฝ”๋“œ์˜ ๋ณดํญ์„ ์กฐ์ ˆํ•˜๋ผ. ์ƒํ™ฉ์— ๋”ฐ๋ผ ์„ฑํผ์„ฑํผ ๋ณดํญ์„ ๋Š˜๋ฆด์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์ƒํ™ฉ์— ๋”ฐ๋ผ์„œ๋Š” ๋ณดํญ์„ ์ขํ˜€์•ผ ํ•œ๋‹ค. ์ฒ˜์Œ TDD๋ฅผ ํ•˜๋Š” ์‚ฌ๋žŒ์€ ๋ณดํญ์„ ์ขํ˜€์„œ ๊ฑธ์–ด๊ฐ€๊ธฐ๊ฐ€ ์˜คํžˆ๋ ค ๋” ํž˜๋“ค๋‹ค' Wiki:DoTheSimplestThingThatCouldPossiblyWork. ์ด๊ฒƒ์ด ํ›ˆ๋ จ์ด ์•„์ง ๋œ๋œ, TDD๋ฅผ ํ•˜๋Š” ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ์–ผ๋งˆ๋‚˜ ํž˜๋“ ์ง€๋Š” ์ด๋ฒˆ RDP ์งœ๋ฉด์„œ ๋А๊ผˆ์—ˆ๋Š”๋ฐ. ์—ด์‹ฌํžˆ ํ›ˆ๋ จํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
    • ์•„๊นŒ ๋ฐœํ‘œ๋•Œ์—๋„ ์ด์•ผ๊ธฐํ–ˆ์ง€๋งŒ, Code Review ๋ฅผ ์œ„ํ•œ reverse-TDD (์ •๋„๋กœ ํ•ด๋‘˜๊นŒ์š”? ์ด๊ฒƒ๋„ ๊ด€๋ จ ๋ฌธ์„œ๊ฐ€ ์žˆ์„ํ…๋ฐ. ) ๋ฅผ ํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋„ค์š”. ์ฝ”๋“œ ๋ถ„์„์„ ์œ„ํ•œ test-code ์ž‘์„ฑ์ด์š”. ์ฆ‰, ์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ผ๊ณ  ์ƒ์ •ํ•˜๊ณ , ์ž์‹ ์ด ์ œ๋Œ€๋กœ ์ดํ•ดํ–ˆ๋Š”๊ฐ€์— ๋Œ€ํ•œ ๊ฒ€์ฆ๊ณผ์ •์„ Test-Code ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด์ฃ . ์‹œ๊ฐ„ ์žˆ์—ˆ์œผ๋ฉด ์˜ค๋Š˜ ๋งˆ์ € ์‹œ๋„ํ•ด๋ดค์„ํ…๋ฐ, ์‹œ๊ฐ„์— ๋งˆ์Œ ์ซ“๊ธด๊ฒŒ ์•„์‰ฝ๋„ค์š”.
      • Refactoring ์ฑ…์—์„œ๋Š” Refactor As You Do Code Review ์— Code Review ๋ฅผ ์œ„ํ•œ Refactoring์„ ์ด์•ผ๊ธฐ ํ•˜๋Š”๋ฐ, Refactoring ์„ ์œ„ํ•ด์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Test Code ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ํ• ๋•Œ ์—ฌ๊ธฐ์— Test Code๋ฅผ ๋ถ™์ผํ…Œ๋‹ˆ๊นŒ ์ƒํ†ตํ•˜๋Š” ๋ฉด์ด ์žˆ๊ธด ํ•˜๊ฒ ๊ตฐ์š”.

  • nautes : ์ฐธ๊ด€์ž๋กœ์„œ ์žˆ์—ˆ๋Š”๋ฐ .. ๋Œ€๋ถ€๋ถ„์˜ ์‹œ๊ฐ„์„ ์นด๋ฉ”๋ผ ์ฐ๋А๋ผ๊ณ  ์—ฌ๋…์ด ์—†์—ˆ์ง€๋งŒ, ์ด ์ž๋ฆฌ๋ฅผ ๋นŒ์–ด์„œ ๋ฐ˜๊ฐ•์ œ์ ์œผ๋กœ ์ดฌ์˜์— ํ˜‘์กฐํ•ด์ฃผ์‹  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ์™€ ์‚ฌ์ฃ„๋ฅผ ..
    • ํฅ๋ฏธ๋กœ์šด ๊ฒƒ์€ ์‹œ๋„๋Ÿฌ์šด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด์˜€๋‹ค๋Š” ๊ฒƒ์ด์˜€์Šต๋‹ˆ๋‹ค. ํ˜ผ์ž์„œ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ(PairProgramming์„ ์•Œ๊ณ ๋‚˜๋‹ˆ ์ƒˆ๋กœ์šด ๊ฐœ๋…์ด ์ƒ๊ธฐ๋Š”๊ตฐ์š”. ์›๋ž˜ Programming์ด๋ผ๋Š” ๊ฒƒ์€ ํ˜ผ์žํ•˜๋Š” ๊ฑฐ์˜€๋Š”๋ฐ, ์ด์ œ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋ฉด pair์ธ์ง€ single์ธ์ง€ ๊ตฌ๋ถ„์„ ํ•ด์ฃผ์–ด์•ผ๊ฒ ๊ตฐ์š”)์„ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ํŒ€์›๋“ค์ด ์†Œ๋ž€์Šค๋Ÿฝ๊ฒŒ ๋– ๋“ค๋ฉด ์•„ ์ง€๊ธˆ ์„ค๊ณ„ํ•˜๊ณ  ์žˆ๊ตฌ๋‚˜ํ•˜๊ณ  ์ƒ๊ฐํ•˜๊ณ , ์กฐ์šฉํ•ด์ง€๋ฉด ์•„ ์ง€๊ธˆ ์ฝ”๋”ฉํ•˜๊ณ  ์žˆ๊ตฌ๋‚˜..ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋Š”๋ฐ, PP๋Š” ๋๊นŒ์ง€ ์‹œ๋„๋Ÿฝ๊ฒŒ ํ•˜๋Š”๊ฑฐ๋ผ๋Š” ๋А๋‚Œ์ด ๋“ค๋”๊ตฐ์š”. ๊ทธ๋ ‡๊ฒŒ ๋Œ€ํ™”๊ฐ€ ๋งŽ์•„์ง€๋Š” ๊ฒƒ์€ ์ฝ”๋”ฉ์— ๋Œ€ํ•œ ์ดํ•ด๋„์˜ ์ฆ๊ฐ€์™€ ์„œ๋กœ๊ฐ„์˜ ํ˜‘๋ ฅ ๋“ฑ ๋งŽ์€ ์ƒ์Šนํšจ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ๊ทธ๋ฆฌ๊ณ  ๊ด€์ฐฐํ•˜๋˜ ์ค‘ PairProgramming์—์„œ Leading์— ๊ด€ํ•œ ์‚ฌํ•ญ์„ ์–ธ๊ธ‰ํ•˜๊ณ  ์‹ถ์Šต์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด์™€ ๋„๊ตฌ์— ๋Œ€ํ•œ ์ดํ•ด๋Š” ํ™•์‹คํ•˜๋‹ค๋Š” ์ „์ œํ•˜์—์„œ๋Š” ์„œ๋กœ๊ฐ€ Pair์— ๋Œ€ํ•œ ๋ฐฐ๋ ค๊ฐ€ ์žˆ์œผ๋ฉด ์ข€๋” ํšจ์œจ์„ ๋‚ผ ์ˆ˜ ์žˆ์„๊บผ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ๋ ค๋ผ๋Š” ๊ฒƒ์€ ์ž์‹ ์˜ ์ƒ๋Œ€๊ฐ€ ์ข€ ์ ๊ทน์ ์ด์ง€ ๋ชปํ•˜๋‹ค๋ฉด ๋” ์ ๊ทน์ ์ธ ํ™œ๋™์„ ์ด๋Œ์–ด ๋‚ด๋ ค๋Š” ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์–ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์‹ค์Šต์„ ํ•˜๋˜ ๋‘ํŒ€์—์„œ ์ œ ๋А๋‚Œ์— ์ง€๋„ํ˜•์‹์œผ๋กœ ์ด๋„๋Š” ํŒ€๊ณผ PP๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“œ๋Š” ํŒ€์ด ์žˆ์—ˆ๋Š”๋ฐ. ์ง€๋„ํ˜•์‹์œผ๋กœ ์ด๋„๋Š” ํŒ€์€ ํ•œ ๋ช…์ด ๋„ˆ๋ฌด ์ฃผ๋„์ ์œผ๋กœ ์ด๋Œ๋‹ค ๋ณด๋‹ˆ ๋‹ค๋ฅธ pair๋“ค์€ ์ฃผ์˜๊ฐ€ ์ง‘์ค‘๋˜์ง€ ๋ชปํ•˜๋Š” ๋ชจ์Šต์„ ๋ณด์ธ ๋ฐ˜๋ฉด, PP๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ๋“ฏํ•œ ํŒ€์€ ๋‘ ๋ช… ๋ชจ๋‘ ์ง‘์ค‘๋„๊ฐ€ ๋งค์šฐ ํ›Œ๋ฅญํ•œ ๊ฒƒ ๊ฐ™์•„์„œ ์ด๋Ÿฐ ๊ฒƒ์ด ์ •๋ง ์žฅ์ ์ด ์•„๋‹Œ๊ฐ€ ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ PP๋ผ๋Š” ๊ฒƒ๋„ ํ˜ผ์ž๊ฐ€ ์•„๋‹Œ ๋‘˜์ด๋‹ค ๋ณด๋‹ˆ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹ค๋ ฅ ๋ชป์ง€ ์•Š๊ฒŒ ๊ฐœ์ธ์˜ ์‚ฌํšŒ์„ฑ์ด ์–ผ๋งˆ๋‚˜ ๋›ฐ์–ด๋ƒ๋Š” ์ ๋„ ์ค‘์š”ํ•œ ์ ์œผ๋กœ ์ž‘์šฉํ•œ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. (์ œ๊ฐ€ ์„œ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ค‘์— ์ดฌ์˜์„ ํ•œ ๊ฒƒ์€ PP๋ฅผ ์ „ํ˜€ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์ด๋Ÿฐ ํ˜•์‹์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์ด PP๋ผ๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ฃผ๊ณ  ์‹ถ์–ด์„œ์˜€์Šต๋‹ˆ๋‹ค. ์ดฌ์˜์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๋น„์ถ”์—ˆ๋Š”์ง€ .. ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.)
  • ์•ˆ๋…•ํ•˜์„ธ์š”? ์ฐธ๊ด€์ž์˜€๋˜ ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค. Feedback์ด ์ข€ ๋Šฆ์—ˆ๋„ค์š”. ์ƒ‰๋‹ค๋ฅธ ๊ฒฝํ—˜์ด์—ˆ๋˜๊ฒƒ ํ™•์‹คํ–ˆ๋Š”๋ฐ, ๋‹ค๋งŒ ์‹œ๊ฐ„์ด ํ•œ์‹œ๊ฐ„ ์ •๋„๋งŒ ๊ธธ์—ˆ๋”๋ผ๋ฉด, ํ›จ์”ฌ๋” ๋งŽ์€๊ฑด ๋А๊ผˆ์„๊ฒƒ ๊ฐ™์•„์„œ ์•„์‰ฝ์Šต๋‹ˆ๋‹ค. TDD๋‚˜ CRC์นด๋“œ ๋‘˜๋‹ค ์ ‘ํ•˜๊ธฐ์—” ์ข€ ์งง์€ ์‹œ๊ฐ„์ด์—ˆ๋˜๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ๋„ ์ด๋Ÿฐ๊ธฐํšŒ๊ฐ€ ๋งŽ์•˜์œผ๋ฉด ์ข‹๊ฒ ๋„ค์š”. ๊ทธ๋Ÿผ ์ด๋งŒ... --๊น€์ •์ค€
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:00
Processing time 0.0064 sec