우하하님의 이글루 글을 보고 생각이 나서.. 예전에 사내 게시판에 올렸던 내용을 옮겨본다..
좋은 품질의, 유지보수가 용이한 S/W를 만들기 위해서는 정말 많은 노력과 정성, 그리고 실력이 필요한 것 같다..
아래 내용은
Extreme Programming Installed에서 발췌하여 메모해둔 내용이다..
- Unit Test는 개발자의 친구, 개발자가 작성한다..
- 리팩토링을 제대로 하려면 견고한 Unit Test가 있어야만 한다.. 이거 없으면, 리팩토링이 힘들다..
- 리팩토링 하기 전에 테스트부터 작성한다.. 기능 추가전에 테스트 부터 작성한다..
- 기능이 수정되면 테스트도 같이 수정해야 한다..
결국, 기능 추가/수정전에 테스트부터 작성하라는 소리가 더 합리적이다.. (TDD)
- 디버깅 시간을 현격하게 줄여준다.. 프로그래머들이 소모하는 대부분의 시간은 디버깅 시간이다..
- 버그를 찾으면 수정하는데 시간은 비교적 굉장히 짧다..
하지만, 어디가 잘못되어 그러한 버그가 나오는지 알아내는데 상당한 시간을 들여야 한다.. 잘 작성된 Unit Test는 버그를 찾는 시간을 줄여준다..
- 모든 테스트는 자동화 되어 있어야 하며, 실행결과를 스스로 판단할 수 있어야 한다..
- 테스트를 만들고 최대한 자주 실행하라..
그러면 문제가 생긴 경우 테스트를 통과한 다음 부분에 문제가 생길 가능성이 높기 때문에, 검토할 시간과 양이 현격히 줄고, 이는 생상성을 극적으로 높여준다..
- 버그리포트를 받으면
먼저, 그 버그가 통과될 수 없도록 테스트 프로그램을 수정한다.. 그리고 버그를 수정한다..
- 너무 완벽한 테스트를 작성하려고 하지 않는다..
잘못된 가능성이 높은 부분과 그럴 우려가 드는 부분만 테스트를 한다..
너무 많은 테스트를 가지려고 하면 오히려 부작용이 많다..
Unit Test에 대한 중요성을 강조한 책들.. 이 책들 덕분에 Unit Test라는 것을 알게 되었고,
CppUnit 이라는 프로그램도 알게되었다.. 물론, 앞 3권의 책들은 비단 Unit Test 뿐만 아니라 개발자로서 많은 도움과 생각 꺼리를 제공해주는, 반드시 읽어볼만한 책들이라 생각이 된다..

뒤 2권의 책들은 Unit Test 덕분에 더 관심을 가지게 된 책들인데.. 흐흐.. 사실 조금 읽고 거의 읽지 않고 있다.. 이상스레 생각보다 읽기 쉽지 않다.. 처음엔 Visual J++을 설치하고, Swing도 세팅하고, JUnit도 세팅해서 Java 코드 따라하며 열심히 읽었는데.. 영, 진도가 안나간다.. 쩝, 정성 부족이지 모.. 헐헐헐.. 맞다.. 이것 때문에 이클립스도 설치했는데 말이지..
도체 TDD란 무엇이며, 어케하는 것이며, 왜 좋은지를 알기 위해서인데.. 난 잘 이해하고 있다고 생각하는데, 왜 읽기가 쉽지 않은 것일까 ?