안녕하세요.
데이빗 하이네마이어 한슨 입니다.
오늘은 마틴 파울러, 캔트 벡과 함께
"Is TDD dead?" 라는 주제로 토론을 할 예정입니다.
Rails 컨퍼런스에서 했던 키노트 스피치와 그 이후 올린 블로그 글로 인해
그 뒤로 켄트 벡, 마틴 파울러와 일대 일로 이야기할 기회가 있었습니다.
우리는 여러가지에 대해 토론을 했는데요
나는 몇 가지 생각과 정의를 명확하게 밝혔고요
마틴과 켄트가 생각하는 바에 대해서도 많이 배울 수 있었습니다.
켄트가 "이 거 사람들에게 공유하는게 좋을 것 같은데."라고 이야기 했습니다.
그래서 지금 이렇게 하고 있습니다.
많은 사람들이 크게 싸우는 걸 기대하고 있을텐데요
그렇지는 않을 겁니다.
우리는 다양한 정의들, 문제들, 패턴들에 대해서 알아보고
그리고 각자에게 맞는 것들에 대해서도 이야기할 예정입니다.
토론을 본격적으로 시작하기 전에요
내가 TDD의 문제점으로 언급했던 것들을 간단하게 정리하겠습니다.
이 토론에 관련해서 크게 세가지 포인트가 있는데요.
첫 번째로 TDD와 TDD를 구성하는 것들에 대한 정의입니다.
단위 테스트를 포함해서요.
TDD와 단위 테스트는 분명히 다른 것이지만요
TDD의 일환으로 단위 테스트를 하는 경우가 많습니다.
그래서 그냥 시도 했었다.
계속 하세요.
"밤에 잘 수 있나요?"
TDD 는 그갈 할 수 있는 한가지 방법이다.
다른 방법들도 많다.
왜 몇몇 사람들은 파이썬을 좋아 할까?
왜 몇몇 사람들은 루비를 좋아 할까?
나는 그렇게 생각해
지난밤 페이스북의 해카톤에서
절반은 TDD 를 쓸 수 있었고
절반은 TDD 를 쓸 수 없었다.
그리고 그건 나에겐 번거롭지 않습니다.
그건 명확한 입력 이었다.
그리고 매우 명확하고 요구되는 아웃풋이었다.
너의 지적은 정확하다
그럼 우린 뭘 해야 하나?
모든걸 mock 할 거냐?
개인적으로 나는 거의 mock 하지 않는다.
그리고 나의 경험은
사람들은 "나는 TDD를 사용하고, 아무것도 리팩토링 할 수 없다."
나는 이해 할 수 없다.
그리고 그들의 테스트를 보기 시작했다.