SlideShare a Scribd company logo
1 of 49
Violentica Path System
Making History with TDD
Violentica Path System
โ€ข RV 581์„ ์‹œ์ž‘์œผ๋กœ ํ˜„์žฌ์ง„ํ–‰ํ˜•์œผ๋กœ ์ถ”๊ฐ€
  ๋œ ๋ชจ๋“ˆ
โ€ข VGM::GLOBAL ์— ํฌํ•จ
๋ชฉ์ 
โ€ข VWT(Violentica World Tool)์˜ ๋ฌธ์ œ
  โ€“ ํ˜„์žฌ working directory ์˜ 1์ฐจ ์ƒ์œ„ ํด๋”์— ์žˆ
    ๋Š” ํŒŒ์ผ๊นŒ์ง€๋งŒ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
  โ€“ ๊ทธ ์ด์ƒ ๋–จ์–ด์ง„ ํŒŒ์ผ์€ ๋ถˆ๋Ÿฌ์˜ค์ง€ ๋ชปํ•จ.
์†”๋ฃจ์…˜
โ€ข ๋‹ค์Œ์˜ ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€.
TDD?
โ€ข ๊ฐœ๋… ์„ค๋ช…์€ ๋‹ค์Œ์—์„œ
 โ€“ http://google.com
TDD๋ฅผ ํ•˜๋Š” ์žฅ์ 
โ€ข ๋‘๋‡Œ์˜ ์ฒด๋ ฅ์†Œ๋ชจ๊ฐ€ ์ ๋‹ค
โ€ข ๋‹จ์œ„ํ…Œ์ŠคํŠธ๋ฅผ ๋ฏธ๋ฆฌ ๊ฑฐ์ณ, ๊ฒ€์ฆ๋œ ๋ชจ๋“ˆ์„ ๋งŒ
  ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋””๋ฒ„๊น… ์‹œ ๊นŠ์€ ๊ณณ ๊นŒ์ง€ ๋“ค
  ์–ด๊ฐ€์ง€ ์•Š๋Š”๋‹ค(์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ชจ๋“ˆ)
 โ€“ =์—„์ฒญ๋‚˜๊ฒŒ ํž˜๋“  ๋””๋ฒ„๊น…์ด ์ž˜ ์—†๋‹ค
โ€ข ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ฐœ๋ฐœ ์†๋„๋Š” ์˜ฌ๋ผ๊ฐ„๋‹ค
TDD๋ฅผ ํ•˜๋Š” ๋‹จ์ 
โ€ข ๊ท€์ฐฎ๋‹ค
โ€ข ์‹ ๋ขฐ์„ฑ์„ ์œ„ํ•ด ๋„ˆ๋ฌด ์ž‘์€ ๊ณณ ๊นŒ์ง€ ์ง์ ‘ ํ…Œ์Šค
  ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๋„˜์–ด๊ฐ€์•ผ ํ•œ๋‹ค
โ€ข ๋ฒ„๋ฆ‡ ๋“ค์ด๊ธฐ ํž˜๋“ค๋‹ค
TDD ๊ฐœ๋ฐœ
1. ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ƒ์ •ํ•ด ๋†“์Œ(๋‹จ์œ„ํ…Œ์ŠคํŠธ ์ƒ
   ์„ฑ)
2. ๊ตฌํ˜„ ์‚ฌ์ดํด
 1. ์‚ฌ์ดํด
  1.   ํ•˜๋“œ์ฝ”๋”ฉ
  2.   ํ…Œ์ŠคํŠธ
  3.   TODOํ™•๋ฆฝ
 2. ๋ฆฌํŒฉํ† ๋ง
  1.   ๋ฆฌํŒฉํ† ๋ง์€ ์‚ฌ์ดํด ์ค‘๊ฐ„์ค‘๊ฐ„์— ๋ผ์–ด์„œ ํ•œ๋‹ค.
3. 2๋ฅผ 1์—์„œ ์„ค์ •ํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜์— ๋Œ€ํ•ด ์‚ฌ
   ์ดํด๋ง
TDD1 : ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ œ์ž‘
โ€ข 5๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ƒ๊ฐํ•ด๋†“์Œ
โ€ข ํ˜„์žฌ์˜ working path =
 โ€“ C:_PROJECTSVGMtrunkVGM
TDD1 : ํ•จ์ˆ˜ ์ œ์ž‘
TDD2 : 1์ฐจ ์‚ฌ์ดํด
           1. ํ•˜๋“œ์ฝ”๋”ฉ
โ€ข ์ผ๋ถ€๋ถ„์ด ๊ฐ™์€ ํŒจ์Šค์ผ ๋•Œ
 โ€“ C:_PROJECTSVGMvwtViolenticaWorldToo
   l7imagesaag.dds
 โ€“ C:_PROJECTSVGMtrunkVGM
โ€ข ๋‹น์žฅ์˜ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค
TDD2 : 1์ฐจ ์‚ฌ์ดํด
          2. ํ…Œ์ŠคํŠธ
โ€ข ํ…Œ์ŠคํŠธ(=์‹คํ–‰) ์„ฑ๊ณต!
โ€ข ๋ญ˜ ํ•ด์•ผ๋ ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.
 โ€“ ์šฐ์„  ์˜ค๋ฅธ์ชฝ์— variable์„ ๋‹ค ์จ๋ณธ๋‹ค.
TDD2 : 1์ฐจ ์‚ฌ์ดํด
               3. TODO ํ™•๋ฆฝ
  โ€ข ๋‹ฅ์น˜๊ณ  ์ง„ํ–‰




์ด ๋ผ์ธ ๋ฐ‘์œผ๋กœ๋Š” ์˜๋ฏธ๊ฐ€ ์ „ํ˜€ ์—†๋Š” ์ฝ”๋“œ๋‹ค.
์–ด๋””์„œ ๋ฉˆ์ถœ์ง€ ์ด ์ •๋„๋Š” ์„ผ์Šค๊ป ํ•œ๋‹ค.
TDD2 : 2์ฐจ ์‚ฌ์ดํด
        1. ํ•˜๋“œ์ฝ”๋”ฉ
โ€ข ์–ป์œผ๋ ค๋Š”๊ฒŒ ๋ญ์ง€?
 โ€“ ์‹ฌํ”Œํ•˜๊ฒŒ ํ•ด๊ฒฐํ•œ๋‹ค. ๋ฌด์‹ํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ
 โ€“ ๋””๋ฒ„๊ฑฐ๋ฅผ ๋ฉˆ์ถ”๊ณ  ์ฝ”๋”ฉ ํ•œ๋‹ค๋Š” ์˜์‹์„ ๋ฒ„๋ฆฐ๋‹ค.
TDD2 : 2์ฐจ ์‚ฌ์ดํด
          2. ํ…Œ์ŠคํŠธ
โ€ข ๊ทธ๋ž˜์„œ, ์ž˜ ๋Œ์•„๊ฐ€๋‚˜?
 โ€“ ์˜ค์˜ค ์ข‹์•„!
TDD2 : 2์ฐจ ์‚ฌ์ดํด
       3. TODO ํ™•๋ฆฝ
โ€ข ๋ถ„๋ฆฌํ•˜์ž
TDD2 : 3์ฐจ ์‚ฌ์ดํด
       1. ํ•˜๋“œ์ฝ”๋”ฉ
โ€ข ๋ถ„๋ฆฌํ•œ๋‹ค
TDD2 : 3์ฐจ ์‚ฌ์ดํด
                 2. ํ…Œ์ŠคํŠธ
โ€ข ๋ฌผ๋ก  ํ†ต๊ณผ ์ด์ƒ๋ฌด!
โ€ข   ์ด๋ ‡๊ฒŒ๊นŒ์ง€ ์ž์„ธํžˆ ํ…Œ์ŠคํŠธ ํ•˜๋Š” ์ด์œ ๋Š” ์†”๊นŒ std::tstring ์— ๋Œ€ํ•œ + ์—ฐ์‚ฐ์ž๊ฐ€
    ์˜ค์ž‘๋™ํ•˜๊ฑฐ๋‚˜ ์•„๋ฌดํŠผ ์Šคํ…์ด ๋งŽ์ด ๋“ค์–ด๊ฐ”๊ธฐ ๋•Œ๋ฌธ
โ€ข   ๊ทธ๋Œ€์˜ ๋‘๋‡Œ๋ฅผ ๋ฏฟ์ง€ ๋ง๋ผ. ๋‡Œ์—๊ฒŒ ์†๋Š”๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ฝ”๋”ฉ์œผ๋กœ ๋งํ•จ.
TDD2 : 3์ฐจ ์‚ฌ์ดํด
        3. TODO ํ™•๋ฆฝ
โ€ข ์—ฌ๊ธฐ์„œ ๋ญ˜ ํ•˜์ง€?
 โ€“ ๋‹น์—ฐํžˆ ์•ž, ๋’ค๋ฅผ ๋ณ€์ˆ˜๋กœ ๋นผ๊ณ 
 โ€“ ๊ทธ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ ๋‹ค.




       ์•ž
               ๋’ค
TDD2 : 4์ฐจ ์‚ฌ์ดํด
                1. ํ•˜๋“œ์ฝ”๋”ฉ
โ€ข ์•ž/๋’ค๋ฅผ ๋ณ€์ˆ˜๋กœ ๋บŒ
  โ€“ front_end / last_end
โ€ข last_end๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ๋งŒ๋“ค๊ฒŒ ํ•จ.
โ€ข front_end ๋Š” ์ผ๋‹จ ๋ƒ…๋‘์ž. ๋จธ๋ฆฌ๋ฅผ ํ˜น์‚ฌ์‹œํ‚ค๋ฉด ์•ˆ๋จ
TDD2 : 4์ฐจ ์‚ฌ์ดํด
          2. ํ…Œ์ŠคํŠธ
โ€ข last_end์™€ pathOut์— ๋ชจ๋‘ ์ •์ƒ๊ฐ’์ด ๋“ค์–ด
  ์˜ค๋Š” ๊ฑธ ํ™•์ธํ•จ. ์ •์ƒ ์ž‘๋™ํ•˜๋„ค?!




                    ๊ทธ๋•Œ๊ทธ๋•Œ ์ถ”๊ฐ€๋˜๋Š” ๋ณ€์ˆ˜๋Š”
                    ๋ฐ”๋กœ watch์— ์ถ”๊ฐ€ํ•˜๋Š” ์„ผ์Šค
TDD2 : 4์ฐจ ์‚ฌ์ดํด
         3. TODO ํ™•๋ฆฝ
โ€ข last_end๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋ฉด?
 โ€“ front_end๋„ ๋งŒ๋“ค์–ด์•ผ์ง€!
TDD2 : 5์ฐจ ์‚ฌ์ดํด
         1. ํ•˜๋“œ์ฝ”๋”ฉ
โ€ข front_end ๋งŒ๋“ค์—ˆ๋‹คโ€ฆ




                TDD๋ผ๊ณ  ๊ณ ์ฐฐ์„ ์•ˆ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.
                ๋‹จ์ง€ ์งง๊ฒŒ์งง๊ฒŒ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ˆ˜๊ฐ€ ์ ์„ ๋ฟ
TDD2 : 5์ฐจ ์‚ฌ์ดํด
   2. ํ…Œ์ŠคํŠธ




           front_end / last_end๊ฐ’์ด
           ์—ฌ์ „ํžˆ ๋ณ€ํ™”๊ฐ€ ์—†๋‹ค. ์„ฑ๊ณต
TDD2 : 6์ฐจ ์‚ฌ์ดํด
          1. ํ•˜๋“œ์ฝ”๋”ฉ
โ€ข literal 3์— ์˜๋ฏธ๋ถ€์—ฌ(=๋ณ€์ˆ˜ํ™”)
TDD2 : 6์ฐจ ์‚ฌ์ดํด
           2. ํ…Œ์ŠคํŠธ
โ€ข ๋ฌผ๋ก  ํ…Œ์ŠคํŠธ ํ†ต๊ณผ
 โ€“ number_same = 3




                     ์ƒˆ๋กœ ๋ณ€์ˆ˜ ๋‚˜์˜ค๋ฉด watch์—
                     ์˜ฌ๋ฆฌ๋Š” ๊ฑด ๋‹น์—ฐํ•œ ์„ผ์Šค
TDD2 : 6์ฐจ ์‚ฌ์ดํด
         3. TODO ํ™•๋ฆฝ
โ€ข literal ๋กœ ๋˜์–ด ์žˆ๋Š” ์ˆซ์ž๋ฅผ ๋ณ€์ˆ˜ํ™”!

       ์œ„์˜ 3์€ ๋ฐ”๊ฟจ๋‹ค.
       ์•„๋ž˜2๋ฅผ ๋ฐ”๊ฟ”๋ณด์ž!!!



โ€ข ์ด๋ฒˆ TODO๋Š” ์•ฝ๊ฐ„ refactoring ๋‹จ๊ณ„์˜ ์„ฑํ–ฅ
  ์„ ํ•จ๊ป˜ ๋”.
TDD2 : 7์ฐจ ์‚ฌ์ดํด
         1. ํ•˜๋“œ์ฝ”๋”ฉ
โ€ข 2๋ฅผ number_uppermove๋กœ ๋ณ€ํ™˜




              ์ƒ๊ฐํ•˜์ง€๋ง๊ณ  ์ฃผ์„์— ์จ์ง„๋Œ€๋กœ ๊ทธ๋ƒฅ ๊ตฌํ˜„ํ•œ๋‹ค.
              ์™œ๋ƒ๊ณ ? ์ง€๊ธˆ ์ƒ๊ฐํ•˜๋ฉด ์•„๊นŒ ์ƒ๊ฐํ•œ๊ฒŒ ์•„๊น์ž–์•„.
              ๋‘๋‡Œ์šฉ๋Ÿ‰์˜ ๋‚ญ๋น„ = ๊ธˆ๋ฐฉํ”ผ๋กœํ•ด์ง



           ๋ฐ”๋กœ ์•„๊นŒ์˜ 2 ์ž๋ฆฌ๋ฅผ ๋Œ€์ฒด
TDD2 : 7์ฐจ ์‚ฌ์ดํด
          2. ํ…Œ์ŠคํŠธ
โ€ข number_uppermove = 2 ํ…Œ์ŠคํŠธํ†ต๊ณผ




                ๋ฌผ๋ก  ์ตœ์ข… output์€ ํ•ญ์ƒ ์ฒดํฌํ•˜๊ณ  ์žˆ๊ฒ ์ง€?
TDD : 7์ฐจ ์‚ฌ์ดํด
        3. TODO ํ™•๋ฆฝ
โ€ข ์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ์˜ ์ˆ˜ (=๋‹จ์œ„ ํ…Œ์ŠคํŠธ) ์— ๋Œ€ํ•ด
 โ€“ ํ†ต๊ณผํ–ˆ์Œ. ๋‘ ๋ฒˆ์งธ ํฐ์‚ฌ์ดํด์„ ๋Œ์•„์•ผ ํ•จ.
โ€ข ๋‘ ๋ฒˆ์งธ๋Š” ์ผ๋‹จ ์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ์™€ ๊ฐ™์€ ํ•จ์ˆ˜์ด
  ๋ฏ€๋กœ, ์‹คํ–‰๋ถ€ํ„ฐ ํ•ด๋ณธ๋‹ค.
TDD : 7์ฐจ ์‚ฌ์ดํด
         ๋ฆฌํŒฉํ† ๋ง : TODO
1. front_end ๊ฐ€ last_end๋ณด๋‹ค ๋จผ์ € ์œ„์น˜ํ•˜๋Š”
   ๊ฒŒ ๋ณด๊ธฐ ์ข‹์Œ.
2. ์“ฐ๋ฉด์„œ ๋งŒ๋“  ์ฃผ์„์ •๋ฆฌ
3. ๊ตฌ์กฐํ™”๋ฅผ ์œ„ํ•ด front_end์™€ last_end๋ฅผ
   std::tstring ๋Œ€์‹  GLOBAL::PATH ๊ฐ์ฒด๋กœ
   ๋ฐ”๊พธ๊ณ , ๋งˆ์ง€๋ง‰์— pathOut์„ ์ œ์ž‘ํ•  ๋•Œ์—
   ๋งŒ std::tstring ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜
   (GLOBAL::CollapsePath ์ด์šฉ)
TDD : 7์ฐจ ์‚ฌ์ดํด
        ๋ฆฌํŒฉํ† ๋ง : ์ฝ”๋”ฉ
โ€ข ์•„๊นŒ ์ž‘์„ฑํ•œ TODO ์ค‘ 1, 2๋ฒˆ์€ ๊ธˆ๋ฐฉํ•ด๊ฒฐ




                    1 : ์ˆœ์„œ ๋ฐ”๊ฟˆ




                  2 : ์ฃผ์„์€ ์ง€์›€
TDD : 7์ฐจ ์‚ฌ์ดํด
          ๋ฆฌํŒฉํ† ๋ง : ์ฝ”๋”ฉ
โ€ข 3๋ฒˆ ํ•ญ๋ชฉ์„ ์–ด๋–ป๊ฒŒ ํ•˜์ง€?
 โ€“ ๋ชฉํ‘œ๋ฅผ ๋– ์˜ฌ๋ฆฌ์ž : std::tstring -> PATH
 โ€“ ๊ฑ ๋‹ฅ์น˜๊ณ  ์น˜ํ™˜
TDD : 7์ฐจ ์‚ฌ์ดํด
       ๋ฆฌํŒฉํ† ๋ง : ์ฝ”๋”ฉ
โ€ข ๋‹ฅ์น˜๊ณ  ์น˜ํ™˜ํ•˜๋ฉด ์—๋Ÿฌ๋Š” ๋ˆ„๊ฐ€์žก๋‚˜?
 โ€“ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€
TDD : 7์ฐจ ์‚ฌ์ดํด
       ๋ฆฌํŒฉํ† ๋ง : ์ฝ”๋”ฉ
โ€ข ์ปดํŒŒ์ผ ์—๋Ÿฌ๋งŒ ์žก์•˜๋‹ค.
TDD : 7์ฐจ ์‚ฌ์ดํด
       ๋ฆฌํŒฉํ† ๋ง : ํ…Œ์ŠคํŠธ
โ€ข ๋ณด๋‹ค์‹œํ”ผ ์ •์ƒ์ž‘๋™ํ•˜๊ณ  pathOut๋„ OK
 โ€“ ์ปดํŒŒ์ผ์—๋Ÿฌ๋ณด๋‹ค ๋ณต์žกํ•œ ์—๋Ÿฌ๊ฐ€ ์žˆ์œผ๋ฉด ์‚ฌ์ดํด
   ์„ ๋ˆ๋‹ค.
TDD3 : ๋‘ ๋ฒˆ์งธ ์กฐ๊ฑด ์ฒดํฌ
โ€ข ๋‚˜๋ณด๋‹ค ์ƒ์œ„์˜ ํŒจ์Šค์ผ ๋•Œ
 โ€“ C:_PROJECTSVGM
 โ€“ C:_PROJECTSVGMtrunkVGM (ํ˜„์žฌํŒจ์Šค)
โ€ข ๋ชฉํ‘œ๋Š”?
 โ€“ C:_PROJECTSVGM ๋ฅผ
   โ€ข .... ๋กœ
โ€ข ๋‹ค์‹œ 2๋กœ ๋Œ์•„๊ฐ€์„œ ์‚ฌ์ดํด
TDD2 : 1์ฐจ ์‚ฌ์ดํด
          ํ…Œ์ŠคํŠธ
โ€ข ๋ญ˜ ํ•ด์•ผ๋˜? ์ผ๋‹จ ๋Œ๋ ค๋ณธ๋‹ค :
โ€ข ์•„๋ฌด๊ฒƒ๋„ ์•ˆํ–ˆ๋Š”๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ๋‹ค.
 โ€“ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ์œผ๋ฏ€๋กœ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ  ๊ฐ„๋‹ค.


                  TDD์—์„œ๋Š” โ€˜๋•กโ€™์žก๋Š”
                  ๊ฒฝ์šฐ๊ฐ€ ์ž์ฃผ ์žˆ๋‹ค.
TDD3 : ์„ธ ๋ฒˆ์งธ ์กฐ๊ฑด ์ฒดํฌ
โ€ข ๋‚˜๋ณด๋‹ค ํ•˜์œ„์˜ ํŒจ์Šค์ผ ๋•Œ
 โ€“ C:_PROJECTSVGMtrunkVGMDebugVGM.ob
   j
 โ€“ C:_PROJECTSVGMtrunkVGM (ํ˜„์žฌํŒจ์Šค)
โ€ข ๋ชฉํ‘œ๋Š”?
 โ€“ C:_PROJECTSVGMtrunkVGMDebugVGM.ob
   j
 โ€“ ๋ฅผ
   โ€ข DebugVGM.obj ๋กœ
โ€ข ๋‹ค์‹œ 2๋กœ ๋Œ์•„๊ฐ€์„œ ์‚ฌ์ดํด
TDD2 : 1์ฐจ ์‚ฌ์ดํด
          ํ…Œ์ŠคํŠธ
โ€ข ๋ง ์•ˆ ํ•ด๋„ ์•ˆ๋‹ค. ์ผ๋‹จ ๋Œ๋ ค๋ณธ๋‹ค :
โ€ข ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ํ–ˆ๋Š”๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ๋‹ค.
 โ€“ ์–ด๋””์„ ๊ฐ€ ์ด ์žฅ๋ฉด์„ ๋ณธ ๊ฒƒ ๊ฐ™๋‹ค!
TDD3 : ๋„ค ๋ฒˆ์งธ ์กฐ๊ฑด ์ฒดํฌ
โ€ข ๋‚˜์˜ ํŒจ์Šค์™€ ์‹œ์ž‘๋ถ€ํ„ฐ ๋‹ค๋ฅผ ๋•Œ
 โ€“ D:000MP3kfc.mp3
 โ€“ C:_PROJECTSVGMtrunkVGM (ํ˜„์žฌํŒจ์Šค)
โ€ข ๋ชฉํ‘œ๋Š”?
 โ€“ ๊ทธ๋ƒฅ ์ ˆ๋Œ€๊ฒฝ๋กœ๋กœ ๋ฐ”๋กœ ๋Œ๋ ค์ฃผ๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค.
 โ€“ ์™ ์ง€ ํ…Œ์ŠคํŠธ๋„ ๊ทธ๋ƒฅ ํ†ต๊ณผํ•  ๊ฒƒ ๊ฐ™๋‹ค.
โ€ข ๋‹ค์‹œ 2๋กœ ๋Œ์•„๊ฐ€์„œ ์‚ฌ์ดํด
TDD2 : 1์ฐจ ์‚ฌ์ดํด
          ํ…Œ์ŠคํŠธ
โ€ข ์™ ์ง€ ํ…Œ์ŠคํŠธ๋Š” ๊ทธ๋ƒฅ ํ†ต๊ณผํ•  ๊ฒƒ ๊ฐ™์•˜๋‹ค.
โ€ข ํ˜„์‹ค: ๋ญ”๊ฐ€ ๋งž๊ธด ํ•œ ๊ฒƒ ๊ฐ™์€๋ฐโ€ฆ?
 โ€“ ๋ชจ๋“  ๊ฒฝ๋กœ๊ฐ€ ์•ˆ ๋งž์œผ๋ฉด ์šฐ์ฃผ๊นŒ์ง€ ๊ฑฐ์Šค๋ฅผ ๊ธฐ์„ธ




                   ๋ฌธ์ œ๋Š” ์—†์–ด ๋ณด์ด์ง€
                   ๋งŒ ์ง€์ €๋ถ„ํ•˜๋‹คโ€ฆ
                   ๋ณดํ†ต ์ด๋Ÿฐ ๊ฒฝ๋กœ๋ฅผ ์›
                   ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค.
TDD2 : 1์ฐจ ์‚ฌ์ดํด
        TODO ํ™•๋ฆฝ
โ€ข ํ•˜๋‚˜๋„ ์•ˆ ๋งž์œผ๋ฉด ๊ฑฐ์Šฌ๋Ÿฌ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ ์—†์ด
  ์ฃผ์–ด์ง„ ๊ฒฝ๋กœ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฆฌํ„ดํ•˜๋„๋ก ํ•จ
 โ€“ ์ง€๊ธˆ ๊ฒฝ๋กœ์—์„œ ๋ฃจํŠธ๋ณด๋‹ค ๋” ์œ„๋กœ ๊ฑฐ์Šฌ๋Ÿฌ์˜ฌ๋ผ๊ฐ€
   ์•ผ ํ•œ๋‹ค๋Š” ๋ง์˜ ์˜๋ฏธ = ์ƒ๋Œ€๊ฒฝ๋กœ๋กœ ํ‘œ์‹œ๊ฐ€ ๋ถˆ๊ฐ€
   ๋Šฅํ•˜๋‹ค๋Š” ๋ง์ด๋ฏ€๋กœ ๊ทธ๋ƒฅ ๊ทธ๋Œ€๋กœ ๋Œ๋ ค์คŒ
TDD2 : 2์ฐจ ์‚ฌ์ดํด
        ํ•˜๋“œ์ฝ”๋”ฉ
โ€ข ๊ฐ„๋‹จํ•œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ
TDD2 : 2์ฐจ ์‚ฌ์ดํด
           ํ…Œ์ŠคํŠธ
โ€ข ์ •ํ™•ํžˆ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธ
 โ€“ ์ฝ”๋”ฉ ์Šคํƒ€์ผ๋”ฐ๋ผ ๋‹ค๋ฅธ๋ฐ, ๊ฐ€๋Šฅํ•œ ์ตœ์†Œ ๋ณ€๊ฒฝํ•จ.
  โ€ข ๊ธฐ์กด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๋ชจ๋‘ ๋‹ค์‹œ ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•จ
TDD3 : ๋งˆ์ง€๋ง‰ ์กฐ๊ฑด ์ฒดํฌ
โ€ข ์ƒ๋Œ€๊ฒฝ๋กœ์ผ ๋•Œ
 โ€“ DebugVGM.obj
 โ€“ C:_PROJECTSVGMtrunkVGM (ํ˜„์žฌํŒจ์Šค)
โ€ข ๋ชฉํ‘œ๋Š”?
 โ€“ ๊ทธ๋ƒฅ ๋ฆฌํ„ดํ•œ๋‹ค.
   โ€ข ์—ฌ๊ธฐ๊นŒ์ง€ TDD๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค๋ฉด, ๊ณผ์ •์— ๋”ฐ๋ผ ์Šต๋“ํ•œ
     ์ง€์‹์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ด๋ฏธ ์ƒ๋Œ€๊ฒฝ๋กœ๊ฐ€ ๋“ค์–ด์™”์„๋•Œ
     ์˜ ์ƒ๋Œ€๊ฒฝ๋กœ ๋ณ€ํ™˜์€ ๋ฌด์˜๋ฏธํ•˜๋‹ค๊ณ  ์•Œ๊ฒŒ๋จ
   โ€ข ํ•˜์ง€๋งŒ ํ…Œ์ŠคํŠธ๋Š” ์ค‘์š”ํ•˜๋‹ค.
โ€ข ๋‹ค์‹œ 2๋กœ ๋Œ์•„๊ฐ€์„œ ์‚ฌ์ดํด
TDD2 : 1์ฐจ ์‚ฌ์ดํด
          ํ…Œ์ŠคํŠธ
โ€ข ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ ์ •๋„๋กœ ์ข…๋ฃŒ : ์ •ํ™•ํ•จ
 โ€“ ์ด๋ฏธ ๋จธ๋ฆฟ์†์—์„œ๋ถ€ํ„ฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์™„๋ฃŒ ๋˜ ์žˆ์Œ
๊ฒฐ๋ก 
โ€ข ๋‹จ๋‹จํ•œ ๊ตฌ์กฐ
โ€ข ๋งˆ๊ตฌ์žก์ด๋กœ ๋“ค์ด๋Œ€๋ฉด์„œ ์ฝ”๋”ฉํ•  ๋•Œ ์ €๋ ‡๊ฒŒ
  ๋ชจ๋“  ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ํ•œ๋ฒˆ์— ํ†ต๊ณผํ•˜๋Š” ๋‹จ
  ๋‹จํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”๊ฐ€?
โ€ข TDD๋Š” ๋Œ€๋‹จํ•œ๊ฒŒ ์•„๋‹ˆ๋‹ค
 โ€“ ์•„์ฃผ ์‚ด์ง๋งŒ ๋ฐ”๊ฟ”๋‚˜๊ฐ€๋Š” ๋ถ€๋ถ„์ž„
Letโ€™s TDD
โ€ข Test Driven Development
  โ€“ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฟ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜์ ์ธ๋ฐ๋„ ์ ์šฉ
    ์ด ๊ฐ€๋Šฅ.

More Related Content

Viewers also liked

ValuEngrave
ValuEngraveValuEngrave
ValuEngrave
davidbank333
ย 

Viewers also liked (7)

ValuEngrave
ValuEngraveValuEngrave
ValuEngrave
ย 
3. stream api
3. stream api3. stream api
3. stream api
ย 
แ„ƒแ…ฅ แ„‚แ…กแ„‹แ…ณแ†ซ S/Wแ„…แ…ณแ†ฏ แ„†แ…กแ†ซแ„ƒแ…ณแ„‚แ…ณแ†ซ แ„€แ…ฅแ†บแ„‹แ…ฆ แ„€แ…ชแ†ซแ„’แ…กแ„‹แ…ง (OKKY ์„ธ๋ฏธ๋‚˜)
แ„ƒแ…ฅ แ„‚แ…กแ„‹แ…ณแ†ซ S/Wแ„…แ…ณแ†ฏ แ„†แ…กแ†ซแ„ƒแ…ณแ„‚แ…ณแ†ซ แ„€แ…ฅแ†บแ„‹แ…ฆ แ„€แ…ชแ†ซแ„’แ…กแ„‹แ…ง (OKKY ์„ธ๋ฏธ๋‚˜)แ„ƒแ…ฅ แ„‚แ…กแ„‹แ…ณแ†ซ S/Wแ„…แ…ณแ†ฏ แ„†แ…กแ†ซแ„ƒแ…ณแ„‚แ…ณแ†ซ แ„€แ…ฅแ†บแ„‹แ…ฆ แ„€แ…ชแ†ซแ„’แ…กแ„‹แ…ง (OKKY ์„ธ๋ฏธ๋‚˜)
แ„ƒแ…ฅ แ„‚แ…กแ„‹แ…ณแ†ซ S/Wแ„…แ…ณแ†ฏ แ„†แ…กแ†ซแ„ƒแ…ณแ„‚แ…ณแ†ซ แ„€แ…ฅแ†บแ„‹แ…ฆ แ„€แ…ชแ†ซแ„’แ…กแ„‹แ…ง (OKKY ์„ธ๋ฏธ๋‚˜)
ย 
Clean code chapter9
Clean code chapter9Clean code chapter9
Clean code chapter9
ย 
Cuco beach
Cuco beachCuco beach
Cuco beach
ย 
TDD - Ignite ๋ฐœํ‘œ ์ž๋ฃŒ
TDD - Ignite ๋ฐœํ‘œ ์ž๋ฃŒTDD - Ignite ๋ฐœํ‘œ ์ž๋ฃŒ
TDD - Ignite ๋ฐœํ‘œ ์ž๋ฃŒ
ย 
java 8 ๋žŒ๋‹ค์‹ ์†Œ๊ฐœ์™€ ์˜๋ฏธ ๊ณ ์ฐฐ
java 8 ๋žŒ๋‹ค์‹ ์†Œ๊ฐœ์™€ ์˜๋ฏธ ๊ณ ์ฐฐjava 8 ๋žŒ๋‹ค์‹ ์†Œ๊ฐœ์™€ ์˜๋ฏธ ๊ณ ์ฐฐ
java 8 ๋žŒ๋‹ค์‹ ์†Œ๊ฐœ์™€ ์˜๋ฏธ ๊ณ ์ฐฐ
ย 

Similar to Violentica Path System with TDD

242 naver-2
242 naver-2242 naver-2
242 naver-2
NAVER D2
ย 
๋‡Œ์žT etc.windows multi threading programming
๋‡Œ์žT   etc.windows multi threading programming๋‡Œ์žT   etc.windows multi threading programming
๋‡Œ์žT etc.windows multi threading programming
cancan21st
ย 
TDD&Refactoring Day 03: TDD
TDD&Refactoring Day 03: TDDTDD&Refactoring Day 03: TDD
TDD&Refactoring Day 03: TDD
Suwon Chae
ย 

Similar to Violentica Path System with TDD (20)

IoT ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ Embedded C์—์„œ TDD๋ฅผ ํ•ด๋ณด์ž
IoT ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ Embedded C์—์„œ TDD๋ฅผ ํ•ด๋ณด์žIoT ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ Embedded C์—์„œ TDD๋ฅผ ํ•ด๋ณด์ž
IoT ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ Embedded C์—์„œ TDD๋ฅผ ํ•ด๋ณด์ž
ย 
242 naver-2
242 naver-2242 naver-2
242 naver-2
ย 
TDD
TDDTDD
TDD
ย 
KGC2010 - ๋‚ก์€ ์ฝ”๋“œ์— ๋‹จ์œ„ํ…Œ์ŠคํŠธ ๋„ฃ๊ธฐ
KGC2010 - ๋‚ก์€ ์ฝ”๋“œ์— ๋‹จ์œ„ํ…Œ์ŠคํŠธ ๋„ฃ๊ธฐKGC2010 - ๋‚ก์€ ์ฝ”๋“œ์— ๋‹จ์œ„ํ…Œ์ŠคํŠธ ๋„ฃ๊ธฐ
KGC2010 - ๋‚ก์€ ์ฝ”๋“œ์— ๋‹จ์œ„ํ…Œ์ŠคํŠธ ๋„ฃ๊ธฐ
ย 
C++๊ณผ TDD
C++๊ณผ TDDC++๊ณผ TDD
C++๊ณผ TDD
ย 
TDD.JUnit.์กฐ๊ธˆ๋”.์•Œ๊ธฐ
TDD.JUnit.์กฐ๊ธˆ๋”.์•Œ๊ธฐTDD.JUnit.์กฐ๊ธˆ๋”.์•Œ๊ธฐ
TDD.JUnit.์กฐ๊ธˆ๋”.์•Œ๊ธฐ
ย 
Test Driven Development (TDD) basic
Test Driven Development (TDD) basicTest Driven Development (TDD) basic
Test Driven Development (TDD) basic
ย 
(2013 DEVIEW) ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์™œ์ด๋ฆฌ ํž˜๋“œ๋‚˜์š”?
(2013 DEVIEW) ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด  ์™œ์ด๋ฆฌ ํž˜๋“œ๋‚˜์š”? (2013 DEVIEW) ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด  ์™œ์ด๋ฆฌ ํž˜๋“œ๋‚˜์š”?
(2013 DEVIEW) ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์™œ์ด๋ฆฌ ํž˜๋“œ๋‚˜์š”?
ย 
Tdd with JUnit 1
Tdd with JUnit 1Tdd with JUnit 1
Tdd with JUnit 1
ย 
[๋ถ€์ŠคํŠธ์บ ํ”„ Tech Talk]๊น€์˜๊ทผ_์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋Š” TDD
[๋ถ€์ŠคํŠธ์บ ํ”„ Tech Talk]๊น€์˜๊ทผ_์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋Š” TDD[๋ถ€์ŠคํŠธ์บ ํ”„ Tech Talk]๊น€์˜๊ทผ_์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋Š” TDD
[๋ถ€์ŠคํŠธ์บ ํ”„ Tech Talk]๊น€์˜๊ทผ_์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋Š” TDD
ย 
Tdd live spring camp 2013
Tdd live spring camp 2013Tdd live spring camp 2013
Tdd live spring camp 2013
ย 
TDD
TDDTDD
TDD
ย 
์šฐ์•„ํ•˜๊ฒŒ ์ค€๋น„ํ•˜๋Š” ํ…Œ์ŠคํŠธ์™€ ๋ฆฌํŒฉํ† ๋ง - PyCon Korea 2018
์šฐ์•„ํ•˜๊ฒŒ ์ค€๋น„ํ•˜๋Š” ํ…Œ์ŠคํŠธ์™€ ๋ฆฌํŒฉํ† ๋ง - PyCon Korea 2018์šฐ์•„ํ•˜๊ฒŒ ์ค€๋น„ํ•˜๋Š” ํ…Œ์ŠคํŠธ์™€ ๋ฆฌํŒฉํ† ๋ง - PyCon Korea 2018
์šฐ์•„ํ•˜๊ฒŒ ์ค€๋น„ํ•˜๋Š” ํ…Œ์ŠคํŠธ์™€ ๋ฆฌํŒฉํ† ๋ง - PyCon Korea 2018
ย 
ํ…Œ์ŠคํŠธ ๊ธฐ๋ฐœ ๊ฐœ๋ฐœ, TBD(Test based developement)
ํ…Œ์ŠคํŠธ ๊ธฐ๋ฐœ ๊ฐœ๋ฐœ, TBD(Test based developement)ํ…Œ์ŠคํŠธ ๊ธฐ๋ฐœ ๊ฐœ๋ฐœ, TBD(Test based developement)
ํ…Œ์ŠคํŠธ ๊ธฐ๋ฐœ ๊ฐœ๋ฐœ, TBD(Test based developement)
ย 
TDD, ๋ญ์‹œ ์ค‘ํ—Œ๋””
TDD, ๋ญ์‹œ ์ค‘ํ—Œ๋””TDD, ๋ญ์‹œ ์ค‘ํ—Œ๋””
TDD, ๋ญ์‹œ ์ค‘ํ—Œ๋””
ย 
Tdd ver.2
Tdd ver.2Tdd ver.2
Tdd ver.2
ย 
์ดˆ๋ณด๊ฐœ๋ฐœ์ž์˜ TDD ์ฒดํ—˜๊ธฐ
์ดˆ๋ณด๊ฐœ๋ฐœ์ž์˜ TDD ์ฒดํ—˜๊ธฐ์ดˆ๋ณด๊ฐœ๋ฐœ์ž์˜ TDD ์ฒดํ—˜๊ธฐ
์ดˆ๋ณด๊ฐœ๋ฐœ์ž์˜ TDD ์ฒดํ—˜๊ธฐ
ย 
๋‡Œ์žT etc.windows multi threading programming
๋‡Œ์žT   etc.windows multi threading programming๋‡Œ์žT   etc.windows multi threading programming
๋‡Œ์žT etc.windows multi threading programming
ย 
TDD&Refactoring Day 03: TDD
TDD&Refactoring Day 03: TDDTDD&Refactoring Day 03: TDD
TDD&Refactoring Day 03: TDD
ย 
์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•ฉ๊ฒฉ์ž ๋˜๊ธฐ 1์ฃผ์ฐจ ์Šคํ„ฐ๋”” - ์‹œ๊ฐ„๋ณต์žก๋„.pptx
์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•ฉ๊ฒฉ์ž ๋˜๊ธฐ 1์ฃผ์ฐจ ์Šคํ„ฐ๋”” - ์‹œ๊ฐ„๋ณต์žก๋„.pptx์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•ฉ๊ฒฉ์ž ๋˜๊ธฐ 1์ฃผ์ฐจ ์Šคํ„ฐ๋”” - ์‹œ๊ฐ„๋ณต์žก๋„.pptx
์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ•ฉ๊ฒฉ์ž ๋˜๊ธฐ 1์ฃผ์ฐจ ์Šคํ„ฐ๋”” - ์‹œ๊ฐ„๋ณต์žก๋„.pptx
ย 

Violentica Path System with TDD

  • 1. Violentica Path System Making History with TDD
  • 2. Violentica Path System โ€ข RV 581์„ ์‹œ์ž‘์œผ๋กœ ํ˜„์žฌ์ง„ํ–‰ํ˜•์œผ๋กœ ์ถ”๊ฐ€ ๋œ ๋ชจ๋“ˆ โ€ข VGM::GLOBAL ์— ํฌํ•จ
  • 3. ๋ชฉ์  โ€ข VWT(Violentica World Tool)์˜ ๋ฌธ์ œ โ€“ ํ˜„์žฌ working directory ์˜ 1์ฐจ ์ƒ์œ„ ํด๋”์— ์žˆ ๋Š” ํŒŒ์ผ๊นŒ์ง€๋งŒ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. โ€“ ๊ทธ ์ด์ƒ ๋–จ์–ด์ง„ ํŒŒ์ผ์€ ๋ถˆ๋Ÿฌ์˜ค์ง€ ๋ชปํ•จ.
  • 5. TDD? โ€ข ๊ฐœ๋… ์„ค๋ช…์€ ๋‹ค์Œ์—์„œ โ€“ http://google.com
  • 6. TDD๋ฅผ ํ•˜๋Š” ์žฅ์  โ€ข ๋‘๋‡Œ์˜ ์ฒด๋ ฅ์†Œ๋ชจ๊ฐ€ ์ ๋‹ค โ€ข ๋‹จ์œ„ํ…Œ์ŠคํŠธ๋ฅผ ๋ฏธ๋ฆฌ ๊ฑฐ์ณ, ๊ฒ€์ฆ๋œ ๋ชจ๋“ˆ์„ ๋งŒ ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋””๋ฒ„๊น… ์‹œ ๊นŠ์€ ๊ณณ ๊นŒ์ง€ ๋“ค ์–ด๊ฐ€์ง€ ์•Š๋Š”๋‹ค(์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ชจ๋“ˆ) โ€“ =์—„์ฒญ๋‚˜๊ฒŒ ํž˜๋“  ๋””๋ฒ„๊น…์ด ์ž˜ ์—†๋‹ค โ€ข ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ฐœ๋ฐœ ์†๋„๋Š” ์˜ฌ๋ผ๊ฐ„๋‹ค
  • 7. TDD๋ฅผ ํ•˜๋Š” ๋‹จ์  โ€ข ๊ท€์ฐฎ๋‹ค โ€ข ์‹ ๋ขฐ์„ฑ์„ ์œ„ํ•ด ๋„ˆ๋ฌด ์ž‘์€ ๊ณณ ๊นŒ์ง€ ์ง์ ‘ ํ…Œ์Šค ํŠธ๋ฅผ ํ•˜๋ฉด์„œ ๋„˜์–ด๊ฐ€์•ผ ํ•œ๋‹ค โ€ข ๋ฒ„๋ฆ‡ ๋“ค์ด๊ธฐ ํž˜๋“ค๋‹ค
  • 8. TDD ๊ฐœ๋ฐœ 1. ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ƒ์ •ํ•ด ๋†“์Œ(๋‹จ์œ„ํ…Œ์ŠคํŠธ ์ƒ ์„ฑ) 2. ๊ตฌํ˜„ ์‚ฌ์ดํด 1. ์‚ฌ์ดํด 1. ํ•˜๋“œ์ฝ”๋”ฉ 2. ํ…Œ์ŠคํŠธ 3. TODOํ™•๋ฆฝ 2. ๋ฆฌํŒฉํ† ๋ง 1. ๋ฆฌํŒฉํ† ๋ง์€ ์‚ฌ์ดํด ์ค‘๊ฐ„์ค‘๊ฐ„์— ๋ผ์–ด์„œ ํ•œ๋‹ค. 3. 2๋ฅผ 1์—์„œ ์„ค์ •ํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜์— ๋Œ€ํ•ด ์‚ฌ ์ดํด๋ง
  • 9. TDD1 : ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ์ œ์ž‘ โ€ข 5๊ฐ€์ง€ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ƒ๊ฐํ•ด๋†“์Œ โ€ข ํ˜„์žฌ์˜ working path = โ€“ C:_PROJECTSVGMtrunkVGM
  • 10. TDD1 : ํ•จ์ˆ˜ ์ œ์ž‘
  • 11. TDD2 : 1์ฐจ ์‚ฌ์ดํด 1. ํ•˜๋“œ์ฝ”๋”ฉ โ€ข ์ผ๋ถ€๋ถ„์ด ๊ฐ™์€ ํŒจ์Šค์ผ ๋•Œ โ€“ C:_PROJECTSVGMvwtViolenticaWorldToo l7imagesaag.dds โ€“ C:_PROJECTSVGMtrunkVGM โ€ข ๋‹น์žฅ์˜ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค
  • 12. TDD2 : 1์ฐจ ์‚ฌ์ดํด 2. ํ…Œ์ŠคํŠธ โ€ข ํ…Œ์ŠคํŠธ(=์‹คํ–‰) ์„ฑ๊ณต! โ€ข ๋ญ˜ ํ•ด์•ผ๋ ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค. โ€“ ์šฐ์„  ์˜ค๋ฅธ์ชฝ์— variable์„ ๋‹ค ์จ๋ณธ๋‹ค.
  • 13. TDD2 : 1์ฐจ ์‚ฌ์ดํด 3. TODO ํ™•๋ฆฝ โ€ข ๋‹ฅ์น˜๊ณ  ์ง„ํ–‰ ์ด ๋ผ์ธ ๋ฐ‘์œผ๋กœ๋Š” ์˜๋ฏธ๊ฐ€ ์ „ํ˜€ ์—†๋Š” ์ฝ”๋“œ๋‹ค. ์–ด๋””์„œ ๋ฉˆ์ถœ์ง€ ์ด ์ •๋„๋Š” ์„ผ์Šค๊ป ํ•œ๋‹ค.
  • 14. TDD2 : 2์ฐจ ์‚ฌ์ดํด 1. ํ•˜๋“œ์ฝ”๋”ฉ โ€ข ์–ป์œผ๋ ค๋Š”๊ฒŒ ๋ญ์ง€? โ€“ ์‹ฌํ”Œํ•˜๊ฒŒ ํ•ด๊ฒฐํ•œ๋‹ค. ๋ฌด์‹ํ•  ํ•„์š”๊ฐ€ ์žˆ์Œ โ€“ ๋””๋ฒ„๊ฑฐ๋ฅผ ๋ฉˆ์ถ”๊ณ  ์ฝ”๋”ฉ ํ•œ๋‹ค๋Š” ์˜์‹์„ ๋ฒ„๋ฆฐ๋‹ค.
  • 15. TDD2 : 2์ฐจ ์‚ฌ์ดํด 2. ํ…Œ์ŠคํŠธ โ€ข ๊ทธ๋ž˜์„œ, ์ž˜ ๋Œ์•„๊ฐ€๋‚˜? โ€“ ์˜ค์˜ค ์ข‹์•„!
  • 16. TDD2 : 2์ฐจ ์‚ฌ์ดํด 3. TODO ํ™•๋ฆฝ โ€ข ๋ถ„๋ฆฌํ•˜์ž
  • 17. TDD2 : 3์ฐจ ์‚ฌ์ดํด 1. ํ•˜๋“œ์ฝ”๋”ฉ โ€ข ๋ถ„๋ฆฌํ•œ๋‹ค
  • 18. TDD2 : 3์ฐจ ์‚ฌ์ดํด 2. ํ…Œ์ŠคํŠธ โ€ข ๋ฌผ๋ก  ํ†ต๊ณผ ์ด์ƒ๋ฌด! โ€ข ์ด๋ ‡๊ฒŒ๊นŒ์ง€ ์ž์„ธํžˆ ํ…Œ์ŠคํŠธ ํ•˜๋Š” ์ด์œ ๋Š” ์†”๊นŒ std::tstring ์— ๋Œ€ํ•œ + ์—ฐ์‚ฐ์ž๊ฐ€ ์˜ค์ž‘๋™ํ•˜๊ฑฐ๋‚˜ ์•„๋ฌดํŠผ ์Šคํ…์ด ๋งŽ์ด ๋“ค์–ด๊ฐ”๊ธฐ ๋•Œ๋ฌธ โ€ข ๊ทธ๋Œ€์˜ ๋‘๋‡Œ๋ฅผ ๋ฏฟ์ง€ ๋ง๋ผ. ๋‡Œ์—๊ฒŒ ์†๋Š”๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ฝ”๋”ฉ์œผ๋กœ ๋งํ•จ.
  • 19. TDD2 : 3์ฐจ ์‚ฌ์ดํด 3. TODO ํ™•๋ฆฝ โ€ข ์—ฌ๊ธฐ์„œ ๋ญ˜ ํ•˜์ง€? โ€“ ๋‹น์—ฐํžˆ ์•ž, ๋’ค๋ฅผ ๋ณ€์ˆ˜๋กœ ๋นผ๊ณ  โ€“ ๊ทธ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ ๋‹ค. ์•ž ๋’ค
  • 20. TDD2 : 4์ฐจ ์‚ฌ์ดํด 1. ํ•˜๋“œ์ฝ”๋”ฉ โ€ข ์•ž/๋’ค๋ฅผ ๋ณ€์ˆ˜๋กœ ๋บŒ โ€“ front_end / last_end โ€ข last_end๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ๋งŒ๋“ค๊ฒŒ ํ•จ. โ€ข front_end ๋Š” ์ผ๋‹จ ๋ƒ…๋‘์ž. ๋จธ๋ฆฌ๋ฅผ ํ˜น์‚ฌ์‹œํ‚ค๋ฉด ์•ˆ๋จ
  • 21. TDD2 : 4์ฐจ ์‚ฌ์ดํด 2. ํ…Œ์ŠคํŠธ โ€ข last_end์™€ pathOut์— ๋ชจ๋‘ ์ •์ƒ๊ฐ’์ด ๋“ค์–ด ์˜ค๋Š” ๊ฑธ ํ™•์ธํ•จ. ์ •์ƒ ์ž‘๋™ํ•˜๋„ค?! ๊ทธ๋•Œ๊ทธ๋•Œ ์ถ”๊ฐ€๋˜๋Š” ๋ณ€์ˆ˜๋Š” ๋ฐ”๋กœ watch์— ์ถ”๊ฐ€ํ•˜๋Š” ์„ผ์Šค
  • 22. TDD2 : 4์ฐจ ์‚ฌ์ดํด 3. TODO ํ™•๋ฆฝ โ€ข last_end๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋ฉด? โ€“ front_end๋„ ๋งŒ๋“ค์–ด์•ผ์ง€!
  • 23. TDD2 : 5์ฐจ ์‚ฌ์ดํด 1. ํ•˜๋“œ์ฝ”๋”ฉ โ€ข front_end ๋งŒ๋“ค์—ˆ๋‹คโ€ฆ TDD๋ผ๊ณ  ๊ณ ์ฐฐ์„ ์•ˆ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋‹จ์ง€ ์งง๊ฒŒ์งง๊ฒŒ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ˆ˜๊ฐ€ ์ ์„ ๋ฟ
  • 24. TDD2 : 5์ฐจ ์‚ฌ์ดํด 2. ํ…Œ์ŠคํŠธ front_end / last_end๊ฐ’์ด ์—ฌ์ „ํžˆ ๋ณ€ํ™”๊ฐ€ ์—†๋‹ค. ์„ฑ๊ณต
  • 25. TDD2 : 6์ฐจ ์‚ฌ์ดํด 1. ํ•˜๋“œ์ฝ”๋”ฉ โ€ข literal 3์— ์˜๋ฏธ๋ถ€์—ฌ(=๋ณ€์ˆ˜ํ™”)
  • 26. TDD2 : 6์ฐจ ์‚ฌ์ดํด 2. ํ…Œ์ŠคํŠธ โ€ข ๋ฌผ๋ก  ํ…Œ์ŠคํŠธ ํ†ต๊ณผ โ€“ number_same = 3 ์ƒˆ๋กœ ๋ณ€์ˆ˜ ๋‚˜์˜ค๋ฉด watch์— ์˜ฌ๋ฆฌ๋Š” ๊ฑด ๋‹น์—ฐํ•œ ์„ผ์Šค
  • 27. TDD2 : 6์ฐจ ์‚ฌ์ดํด 3. TODO ํ™•๋ฆฝ โ€ข literal ๋กœ ๋˜์–ด ์žˆ๋Š” ์ˆซ์ž๋ฅผ ๋ณ€์ˆ˜ํ™”! ์œ„์˜ 3์€ ๋ฐ”๊ฟจ๋‹ค. ์•„๋ž˜2๋ฅผ ๋ฐ”๊ฟ”๋ณด์ž!!! โ€ข ์ด๋ฒˆ TODO๋Š” ์•ฝ๊ฐ„ refactoring ๋‹จ๊ณ„์˜ ์„ฑํ–ฅ ์„ ํ•จ๊ป˜ ๋”.
  • 28. TDD2 : 7์ฐจ ์‚ฌ์ดํด 1. ํ•˜๋“œ์ฝ”๋”ฉ โ€ข 2๋ฅผ number_uppermove๋กœ ๋ณ€ํ™˜ ์ƒ๊ฐํ•˜์ง€๋ง๊ณ  ์ฃผ์„์— ์จ์ง„๋Œ€๋กœ ๊ทธ๋ƒฅ ๊ตฌํ˜„ํ•œ๋‹ค. ์™œ๋ƒ๊ณ ? ์ง€๊ธˆ ์ƒ๊ฐํ•˜๋ฉด ์•„๊นŒ ์ƒ๊ฐํ•œ๊ฒŒ ์•„๊น์ž–์•„. ๋‘๋‡Œ์šฉ๋Ÿ‰์˜ ๋‚ญ๋น„ = ๊ธˆ๋ฐฉํ”ผ๋กœํ•ด์ง ๋ฐ”๋กœ ์•„๊นŒ์˜ 2 ์ž๋ฆฌ๋ฅผ ๋Œ€์ฒด
  • 29. TDD2 : 7์ฐจ ์‚ฌ์ดํด 2. ํ…Œ์ŠคํŠธ โ€ข number_uppermove = 2 ํ…Œ์ŠคํŠธํ†ต๊ณผ ๋ฌผ๋ก  ์ตœ์ข… output์€ ํ•ญ์ƒ ์ฒดํฌํ•˜๊ณ  ์žˆ๊ฒ ์ง€?
  • 30. TDD : 7์ฐจ ์‚ฌ์ดํด 3. TODO ํ™•๋ฆฝ โ€ข ์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ์˜ ์ˆ˜ (=๋‹จ์œ„ ํ…Œ์ŠคํŠธ) ์— ๋Œ€ํ•ด โ€“ ํ†ต๊ณผํ–ˆ์Œ. ๋‘ ๋ฒˆ์งธ ํฐ์‚ฌ์ดํด์„ ๋Œ์•„์•ผ ํ•จ. โ€ข ๋‘ ๋ฒˆ์งธ๋Š” ์ผ๋‹จ ์ฒซ ๋ฒˆ์งธ ๊ฒฝ์šฐ์™€ ๊ฐ™์€ ํ•จ์ˆ˜์ด ๋ฏ€๋กœ, ์‹คํ–‰๋ถ€ํ„ฐ ํ•ด๋ณธ๋‹ค.
  • 31. TDD : 7์ฐจ ์‚ฌ์ดํด ๋ฆฌํŒฉํ† ๋ง : TODO 1. front_end ๊ฐ€ last_end๋ณด๋‹ค ๋จผ์ € ์œ„์น˜ํ•˜๋Š” ๊ฒŒ ๋ณด๊ธฐ ์ข‹์Œ. 2. ์“ฐ๋ฉด์„œ ๋งŒ๋“  ์ฃผ์„์ •๋ฆฌ 3. ๊ตฌ์กฐํ™”๋ฅผ ์œ„ํ•ด front_end์™€ last_end๋ฅผ std::tstring ๋Œ€์‹  GLOBAL::PATH ๊ฐ์ฒด๋กœ ๋ฐ”๊พธ๊ณ , ๋งˆ์ง€๋ง‰์— pathOut์„ ์ œ์ž‘ํ•  ๋•Œ์— ๋งŒ std::tstring ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ (GLOBAL::CollapsePath ์ด์šฉ)
  • 32. TDD : 7์ฐจ ์‚ฌ์ดํด ๋ฆฌํŒฉํ† ๋ง : ์ฝ”๋”ฉ โ€ข ์•„๊นŒ ์ž‘์„ฑํ•œ TODO ์ค‘ 1, 2๋ฒˆ์€ ๊ธˆ๋ฐฉํ•ด๊ฒฐ 1 : ์ˆœ์„œ ๋ฐ”๊ฟˆ 2 : ์ฃผ์„์€ ์ง€์›€
  • 33. TDD : 7์ฐจ ์‚ฌ์ดํด ๋ฆฌํŒฉํ† ๋ง : ์ฝ”๋”ฉ โ€ข 3๋ฒˆ ํ•ญ๋ชฉ์„ ์–ด๋–ป๊ฒŒ ํ•˜์ง€? โ€“ ๋ชฉํ‘œ๋ฅผ ๋– ์˜ฌ๋ฆฌ์ž : std::tstring -> PATH โ€“ ๊ฑ ๋‹ฅ์น˜๊ณ  ์น˜ํ™˜
  • 34. TDD : 7์ฐจ ์‚ฌ์ดํด ๋ฆฌํŒฉํ† ๋ง : ์ฝ”๋”ฉ โ€ข ๋‹ฅ์น˜๊ณ  ์น˜ํ™˜ํ•˜๋ฉด ์—๋Ÿฌ๋Š” ๋ˆ„๊ฐ€์žก๋‚˜? โ€“ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€
  • 35. TDD : 7์ฐจ ์‚ฌ์ดํด ๋ฆฌํŒฉํ† ๋ง : ์ฝ”๋”ฉ โ€ข ์ปดํŒŒ์ผ ์—๋Ÿฌ๋งŒ ์žก์•˜๋‹ค.
  • 36. TDD : 7์ฐจ ์‚ฌ์ดํด ๋ฆฌํŒฉํ† ๋ง : ํ…Œ์ŠคํŠธ โ€ข ๋ณด๋‹ค์‹œํ”ผ ์ •์ƒ์ž‘๋™ํ•˜๊ณ  pathOut๋„ OK โ€“ ์ปดํŒŒ์ผ์—๋Ÿฌ๋ณด๋‹ค ๋ณต์žกํ•œ ์—๋Ÿฌ๊ฐ€ ์žˆ์œผ๋ฉด ์‚ฌ์ดํด ์„ ๋ˆ๋‹ค.
  • 37. TDD3 : ๋‘ ๋ฒˆ์งธ ์กฐ๊ฑด ์ฒดํฌ โ€ข ๋‚˜๋ณด๋‹ค ์ƒ์œ„์˜ ํŒจ์Šค์ผ ๋•Œ โ€“ C:_PROJECTSVGM โ€“ C:_PROJECTSVGMtrunkVGM (ํ˜„์žฌํŒจ์Šค) โ€ข ๋ชฉํ‘œ๋Š”? โ€“ C:_PROJECTSVGM ๋ฅผ โ€ข .... ๋กœ โ€ข ๋‹ค์‹œ 2๋กœ ๋Œ์•„๊ฐ€์„œ ์‚ฌ์ดํด
  • 38. TDD2 : 1์ฐจ ์‚ฌ์ดํด ํ…Œ์ŠคํŠธ โ€ข ๋ญ˜ ํ•ด์•ผ๋˜? ์ผ๋‹จ ๋Œ๋ ค๋ณธ๋‹ค : โ€ข ์•„๋ฌด๊ฒƒ๋„ ์•ˆํ–ˆ๋Š”๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ๋‹ค. โ€“ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ์œผ๋ฏ€๋กœ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ  ๊ฐ„๋‹ค. TDD์—์„œ๋Š” โ€˜๋•กโ€™์žก๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ž์ฃผ ์žˆ๋‹ค.
  • 39. TDD3 : ์„ธ ๋ฒˆ์งธ ์กฐ๊ฑด ์ฒดํฌ โ€ข ๋‚˜๋ณด๋‹ค ํ•˜์œ„์˜ ํŒจ์Šค์ผ ๋•Œ โ€“ C:_PROJECTSVGMtrunkVGMDebugVGM.ob j โ€“ C:_PROJECTSVGMtrunkVGM (ํ˜„์žฌํŒจ์Šค) โ€ข ๋ชฉํ‘œ๋Š”? โ€“ C:_PROJECTSVGMtrunkVGMDebugVGM.ob j โ€“ ๋ฅผ โ€ข DebugVGM.obj ๋กœ โ€ข ๋‹ค์‹œ 2๋กœ ๋Œ์•„๊ฐ€์„œ ์‚ฌ์ดํด
  • 40. TDD2 : 1์ฐจ ์‚ฌ์ดํด ํ…Œ์ŠคํŠธ โ€ข ๋ง ์•ˆ ํ•ด๋„ ์•ˆ๋‹ค. ์ผ๋‹จ ๋Œ๋ ค๋ณธ๋‹ค : โ€ข ์•„๋ฌด๊ฒƒ๋„ ์•ˆ ํ–ˆ๋Š”๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ๋‹ค. โ€“ ์–ด๋””์„ ๊ฐ€ ์ด ์žฅ๋ฉด์„ ๋ณธ ๊ฒƒ ๊ฐ™๋‹ค!
  • 41. TDD3 : ๋„ค ๋ฒˆ์งธ ์กฐ๊ฑด ์ฒดํฌ โ€ข ๋‚˜์˜ ํŒจ์Šค์™€ ์‹œ์ž‘๋ถ€ํ„ฐ ๋‹ค๋ฅผ ๋•Œ โ€“ D:000MP3kfc.mp3 โ€“ C:_PROJECTSVGMtrunkVGM (ํ˜„์žฌํŒจ์Šค) โ€ข ๋ชฉํ‘œ๋Š”? โ€“ ๊ทธ๋ƒฅ ์ ˆ๋Œ€๊ฒฝ๋กœ๋กœ ๋ฐ”๋กœ ๋Œ๋ ค์ฃผ๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. โ€“ ์™ ์ง€ ํ…Œ์ŠคํŠธ๋„ ๊ทธ๋ƒฅ ํ†ต๊ณผํ•  ๊ฒƒ ๊ฐ™๋‹ค. โ€ข ๋‹ค์‹œ 2๋กœ ๋Œ์•„๊ฐ€์„œ ์‚ฌ์ดํด
  • 42. TDD2 : 1์ฐจ ์‚ฌ์ดํด ํ…Œ์ŠคํŠธ โ€ข ์™ ์ง€ ํ…Œ์ŠคํŠธ๋Š” ๊ทธ๋ƒฅ ํ†ต๊ณผํ•  ๊ฒƒ ๊ฐ™์•˜๋‹ค. โ€ข ํ˜„์‹ค: ๋ญ”๊ฐ€ ๋งž๊ธด ํ•œ ๊ฒƒ ๊ฐ™์€๋ฐโ€ฆ? โ€“ ๋ชจ๋“  ๊ฒฝ๋กœ๊ฐ€ ์•ˆ ๋งž์œผ๋ฉด ์šฐ์ฃผ๊นŒ์ง€ ๊ฑฐ์Šค๋ฅผ ๊ธฐ์„ธ ๋ฌธ์ œ๋Š” ์—†์–ด ๋ณด์ด์ง€ ๋งŒ ์ง€์ €๋ถ„ํ•˜๋‹คโ€ฆ ๋ณดํ†ต ์ด๋Ÿฐ ๊ฒฝ๋กœ๋ฅผ ์› ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค.
  • 43. TDD2 : 1์ฐจ ์‚ฌ์ดํด TODO ํ™•๋ฆฝ โ€ข ํ•˜๋‚˜๋„ ์•ˆ ๋งž์œผ๋ฉด ๊ฑฐ์Šฌ๋Ÿฌ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ ์—†์ด ์ฃผ์–ด์ง„ ๊ฒฝ๋กœ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฆฌํ„ดํ•˜๋„๋ก ํ•จ โ€“ ์ง€๊ธˆ ๊ฒฝ๋กœ์—์„œ ๋ฃจํŠธ๋ณด๋‹ค ๋” ์œ„๋กœ ๊ฑฐ์Šฌ๋Ÿฌ์˜ฌ๋ผ๊ฐ€ ์•ผ ํ•œ๋‹ค๋Š” ๋ง์˜ ์˜๋ฏธ = ์ƒ๋Œ€๊ฒฝ๋กœ๋กœ ํ‘œ์‹œ๊ฐ€ ๋ถˆ๊ฐ€ ๋Šฅํ•˜๋‹ค๋Š” ๋ง์ด๋ฏ€๋กœ ๊ทธ๋ƒฅ ๊ทธ๋Œ€๋กœ ๋Œ๋ ค์คŒ
  • 44. TDD2 : 2์ฐจ ์‚ฌ์ดํด ํ•˜๋“œ์ฝ”๋”ฉ โ€ข ๊ฐ„๋‹จํ•œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ
  • 45. TDD2 : 2์ฐจ ์‚ฌ์ดํด ํ…Œ์ŠคํŠธ โ€ข ์ •ํ™•ํžˆ ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธ โ€“ ์ฝ”๋”ฉ ์Šคํƒ€์ผ๋”ฐ๋ผ ๋‹ค๋ฅธ๋ฐ, ๊ฐ€๋Šฅํ•œ ์ตœ์†Œ ๋ณ€๊ฒฝํ•จ. โ€ข ๊ธฐ์กด ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๋ชจ๋‘ ๋‹ค์‹œ ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•จ
  • 46. TDD3 : ๋งˆ์ง€๋ง‰ ์กฐ๊ฑด ์ฒดํฌ โ€ข ์ƒ๋Œ€๊ฒฝ๋กœ์ผ ๋•Œ โ€“ DebugVGM.obj โ€“ C:_PROJECTSVGMtrunkVGM (ํ˜„์žฌํŒจ์Šค) โ€ข ๋ชฉํ‘œ๋Š”? โ€“ ๊ทธ๋ƒฅ ๋ฆฌํ„ดํ•œ๋‹ค. โ€ข ์—ฌ๊ธฐ๊นŒ์ง€ TDD๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค๋ฉด, ๊ณผ์ •์— ๋”ฐ๋ผ ์Šต๋“ํ•œ ์ง€์‹์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ด๋ฏธ ์ƒ๋Œ€๊ฒฝ๋กœ๊ฐ€ ๋“ค์–ด์™”์„๋•Œ ์˜ ์ƒ๋Œ€๊ฒฝ๋กœ ๋ณ€ํ™˜์€ ๋ฌด์˜๋ฏธํ•˜๋‹ค๊ณ  ์•Œ๊ฒŒ๋จ โ€ข ํ•˜์ง€๋งŒ ํ…Œ์ŠคํŠธ๋Š” ์ค‘์š”ํ•˜๋‹ค. โ€ข ๋‹ค์‹œ 2๋กœ ๋Œ์•„๊ฐ€์„œ ์‚ฌ์ดํด
  • 47. TDD2 : 1์ฐจ ์‚ฌ์ดํด ํ…Œ์ŠคํŠธ โ€ข ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ ์ •๋„๋กœ ์ข…๋ฃŒ : ์ •ํ™•ํ•จ โ€“ ์ด๋ฏธ ๋จธ๋ฆฟ์†์—์„œ๋ถ€ํ„ฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์™„๋ฃŒ ๋˜ ์žˆ์Œ
  • 48. ๊ฒฐ๋ก  โ€ข ๋‹จ๋‹จํ•œ ๊ตฌ์กฐ โ€ข ๋งˆ๊ตฌ์žก์ด๋กœ ๋“ค์ด๋Œ€๋ฉด์„œ ์ฝ”๋”ฉํ•  ๋•Œ ์ €๋ ‡๊ฒŒ ๋ชจ๋“  ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ํ•œ๋ฒˆ์— ํ†ต๊ณผํ•˜๋Š” ๋‹จ ๋‹จํ•œ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”๊ฐ€? โ€ข TDD๋Š” ๋Œ€๋‹จํ•œ๊ฒŒ ์•„๋‹ˆ๋‹ค โ€“ ์•„์ฃผ ์‚ด์ง๋งŒ ๋ฐ”๊ฟ”๋‚˜๊ฐ€๋Š” ๋ถ€๋ถ„์ž„
  • 49. Letโ€™s TDD โ€ข Test Driven Development โ€“ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋ฟ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜์ ์ธ๋ฐ๋„ ์ ์šฉ ์ด ๊ฐ€๋Šฅ.