비교적 늦게 TDD 를 접했습니다. 이 글은 TDD 에 대한 개인적인 느낌입니다.
TDD의 이름을 들어본 것은 꽤 되었지만 바쁘다는 핑계로 실제로 해보지 못하고 있었습니다. 책을 사고 읽어보며 TDD 를 처음으로 만나 본 개발자들이 대부분 그러하듯이 놀라웠습니다. by example 덕에 쉽게 이해되더군요. 실제로 적용하기 어렵고 난해한 부분도 조금 있었지만요. 지금은 programming challenges의 문제들을 TDD로 풀어보며 경험치를 올리고 있습니다.
TDD에 대한 감상은 unique하다는 것이었습니다. 소프트웨어 개발의 전형적인 메타포인 건축에서는 이런 식의 방법론을 찾아볼 수 없습니다. 가능할 것 같지도 않구요. 다른 분야는 어떨까요? 테스트를 통과시키기 위한 코드를 작성하다 보면 자연스럽게 ‘깔끔하고 작동하는’ 코드가 만들어진다는 것인데.. 다른 분야에서는 대부분 가능하지 않은 것 같습니다. 소프트웨어 개발에서만 가능하다 라는게 저의 느낌이었습니다.
아직 TDD를 명확히(누구에게 가르쳐 줄 정도로) 이해하지는 못 합니다. 연습이 필요한 부분이겠지요. 그때쯤 되면 생각이 바뀔지도 모르겠습니다. 인류가 하는 다른 많은 어려운 일들과 비슷한 부분을 발견하게 될지도요..