4.2 동작하는 골격
코드를 바꿔야 하는 동기를 찾아보세요. 이런 동기는 실질적으로 코드에 변화를 이끌어내는 수단(driver)으로 작용합니다.
앞에서 이미 이처럼 변화를 불러오는 수단의 몇 가지 예를 살펴봤습니다. 경고를 오류로 취급하거나 린터(linter) 및 기타 정적 코드 분석기(static code analyzer)를 켰을 때 코드를 바꿔야 한다는 외적 동기가 발생합니다. 이런 방법은 주관적인 판단을 어느 정도 배제하기 때문에 도움이 됩니다.
소프트웨어의 변화를 이끌어내는 수단이 무엇인지에 따라, ‘XX-주도 개발’이란 이름의 소프트웨어 개발 방법론들이 나타났습니다.
1. 테스트 주도 개발(Test-Driven Development; TDD)[9]
2. 행위 주도 개발(Behavior-Driven Development; BDD)
3. 도메인 주도 설계(Domain-Driven Design; DDD)[26]
4. 형식 주도 개발(Type-Driven Development)
5. 속성 주도 개발(Property-Driven Development)6