테스트 주도 개발(TDD)에 대해서

예전에 Rails Tutorial 할때 테스트를 계속 짜면서 이걸 왜 하나 싶었는데 알고보니까 TDD의 장점은 과감한 리팩토링이 가능한 거였다.

튜토리얼은 따라 하는 거라서 리팩토링을 할 일이 없어서 별로 필요성을 못 느꼈었는데 새삼 대단한 걸 느끼고 계속 테스트를 작성하는 버릇을 들여야겠다고 생각함. 유닛 단위의 테스트가 크게 의미있다기 보다는 그 테스트들이 점점 쌓여서 소프트웨어의 무결성을 보장한다는 점이 참 대단. 젤리버스에서 일 할 때도 추후에 수정한 부분이 예상치 못한 부분을 건드려서 버그를 만드는 경우가 많았는데 이런 점을 대부분 막을 수 있을 것 같다. 

git 으로 버전관리 + 테스트 작성으로 맘에 안드는 부분이 있으면 그냥 가벼운 마음으로 브랜치해서 테스트 통과하는 지만 보면서 과감하게 들어엎는 리팩토링을 할 수 있을 거라고 생각하니 뭔가 두근두근