TDD는 코드를 작성하기 이전에 앞으로 작성될 코드에 대한 테스트를 먼저 작성하는 개발 방법론으로, 개발 사이클 주기가 짧아서 쉽고 빠르게 개발을 할 수 있으며 많은 테스트를 수행하므로 버그도 비교적 적게 발생한다고 합니다.
TDD에서는 다음의 단계들을 한 사이클로 하고, 이 사이클을 유한번 반복하는 방식으로 개발을 합니다.
1. 새 테스트 작성하기 (이 테스트가 시험할 코드를 작성하지 않았으므로 거의 대부분 실패합니다.)
2. 새 테스트를 통과할 수 있도록 수단과 방법을 가리지 않고 코딩하기
3. 코드가 새 테스트를 통과하는지 확인하기
4. 코드 리펙토링하기
무슨 말인지 잘 모르겠지만 일단 여기 쓰여있는 걸 바탕으로 프로그램을 작성해봤습니다.
처음부터 크고 어려운걸 하면 기가 죽을것 같으므로 일단 간단한 프로그램부터 시작해야될것 같아서
숫자 세자리 마다 콤마 찍는 프로그램을 작성하는 모습을 동영상으로 찍어봤습니다.
예를 들어 1234567이 있으면 "1,234,567"이 되겠죠 ㅎㅎ
Textmate에서 Ruby 언어로 작성했습니다.
첫번째 동영상을 올리고 나서 좀 생각해보니 음수에 대해서 테스트를 안했었다는 걸 깨달았습니다.
그래서 음수에 대한 테스트를 추가하는 동영상을 다시 녹화했습니다.
두번째 동영상을 올리고 다시 생각해보니까 이번에는 소수점을 포함한 숫자에 대한 테스트를 안했더군요 -_-;;
그래서 추가로 다시 녹화했습니다.
제가 미처 생각하지 못한 부분이 또 있을지도 모르지만, 그래도 일단 콤마찍기 프로그램은 이쯤으로 끝냅니다. -_-ㅋ
최종적으로 나온 코드의 모습은 다음과 같습니다.
comma.rb
test_comma.rb
온라인으로 대충 훑어본 내용만 보고 막무가내로 해봤는데.. 이렇게 하는게 TDD 인지 잘 모르겠네요 -_-;;
관련 서적 중에 많은 분들이 추천하시는 책이 있어서 한번 사서 공부해보렵니다. ㅎㅎ
'Programming > Ruby' 카테고리의 다른 글
| [Golf] るびまゴルフ 【第 3 回】42 bytes (0) | 2008/03/31 |
|---|---|
| 루비 프로그램을 하나의 exe 파일로 바꾸기 (0) | 2008/03/31 |
| 테스트 주도 개발로 "숫자 세자리 마다 콤마 찍는 프로그램" 코딩하기 (2) | 2008/03/19 |
| QtRuby 1.4.9 를 Mac OSX 10.5.1에 깔기 (2) | 2008/03/10 |
| [CodeGolf] Choose (2) | 2008/01/25 |
| [Anarchy Golf] leap year (6) | 2008/01/11 |



