태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.



평소에 테스트 주도 개발 (TDD, Test-Driven Development)을 익혀보려고 했지만 계속 미뤄왔다가, 이번 기회에 비로소 TDD로 뭔가를 작성해보게 되었습니다.

TDD는 코드를 작성하기 이전에 앞으로 작성될 코드에 대한 테스트를 먼저 작성하는 개발 방법론으로, 개발 사이클 주기가 짧아서 쉽고 빠르게 개발을 할 수 있으며 많은 테스트를 수행하므로 버그도 비교적 적게 발생한다고 합니다.

TDD에서는 다음의 단계들을 한 사이클로 하고, 이 사이클을 유한번 반복하는 방식으로 개발을 합니다.

1. 새 테스트 작성하기 (이 테스트가 시험할 코드를 작성하지 않았으므로 거의 대부분 실패합니다.)
2. 새 테스트를 통과할 수 있도록 수단과 방법을 가리지 않고 코딩하기
3. 코드가 새 테스트를 통과하는지 확인하기
4. 코드 리펙토링하기

무슨 말인지 잘 모르겠지만 일단 여기 쓰여있는 걸 바탕으로 프로그램을 작성해봤습니다.

처음부터 크고 어려운걸 하면 기가 죽을것 같으므로 일단 간단한 프로그램부터 시작해야될것 같아서
숫자 세자리 마다 콤마 찍는 프로그램을 작성하는 모습을 동영상으로 찍어봤습니다.

예를 들어 1234567이 있으면 "1,234,567"이 되겠죠 ㅎㅎ

Textmate에서 Ruby 언어로 작성했습니다.






첫번째 동영상을 올리고 나서 좀 생각해보니 음수에 대해서 테스트를 안했었다는 걸 깨달았습니다.


그래서 음수에 대한 테스트를 추가하는 동영상을 다시 녹화했습니다.







두번째 동영상을 올리고 다시 생각해보니까 이번에는 소수점을 포함한 숫자에 대한 테스트를 안했더군요 -_-;;


그래서 추가로 다시 녹화했습니다.






제가 미처 생각하지 못한 부분이 또 있을지도 모르지만, 그래도 일단 콤마찍기 프로그램은 이쯤으로 끝냅니다. -_-ㅋ


최종적으로 나온 코드의 모습은 다음과 같습니다.


comma.rb


test_comma.rb





온라인으로 대충 훑어본 내용만 보고 막무가내로 해봤는데.. 이렇게 하는게 TDD 인지 잘 모르겠네요 -_-;;

관련 서적 중에 많은 분들이 추천하시는 책이 있어서 한번 사서 공부해보렵니다. ㅎㅎ

테스트 주도 개발 (CD-ROM 포함) 상세보기
켄트 벡 지음 | 인사이트 펴냄
최근 주목받고 있는 프로그래밍 방법인 테스트 주도 개발, 즉 TDD를 설명한 최초의 책이자, 가장 권위적인 책. 테스트 주도 개발을 퍼뜨린 장본인이며 객체 지향 프로그래밍의 선구자 중 한 사람인 켄트 벡이 직접 썼다. '테스트 주도 개발(Test-Driven Development)'은 테스트가 개발을 주도하는 방법이다. 테스트가 개발을 주도한다는 것은 테스트가 코딩의 방향을 이끌어 간다는 말이다. 테스트를 실패하는 코드가 없으면 코딩


크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by leonid