More Related Content
Similar to Violentica Path System with TDD (20)
Violentica Path System with TDD
- 3. ๋ชฉ์
โข VWT(Violentica World Tool)์ ๋ฌธ์
โ ํ์ฌ working directory ์ 1์ฐจ ์์ ํด๋์ ์
๋ ํ์ผ๊น์ง๋ง ๋ถ๋ฌ์ฌ ์ ์๋ค.
โ ๊ทธ ์ด์ ๋จ์ด์ง ํ์ผ์ ๋ถ๋ฌ์ค์ง ๋ชปํจ.
- 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
- 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
โ ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฟ ์๋๋ผ ์ผ๋ฐ์ ์ธ๋ฐ๋ ์ ์ฉ
์ด ๊ฐ๋ฅ.