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