1. TDD (Test-Driven Development, 테스트 주도 개발)

정의: 코드를 작성하기 전에 테스트 코드를 먼저 작성하고, 그 테스트를 통과하는 최소한의 코드를 작성하는 반복적인 개발 방식입니다.
프로세스:

  1. 테스트 작성: 실패할 수밖에 없는 테스트를 먼저 작성합니다.
  2. 코드 작성: 테스트를 통과하기 위해 필요한 최소한의 코드를 작성합니다.
  3. 리팩토링: 코드와 테스트를 개선하고 최적화합니다.

장점:

  • 버그를 초기에 발견할 가능성이 높아짐.
  • 테스트가 자동화되어 유지보수가 용이함.
  • 요구사항이 코드로 명시적으로 표현됨.

단점:

  • 초기 작성 시간이 오래 걸릴 수 있음.
  • 테스트 케이스 작성이 어려울 수 있음.

2. EDD (Example-Driven Development, 예제 기반 개발)

정의: 예제를 기반으로 코드를 작성하며, 시스템이 특정 상황에서 어떻게 동작해야 하는지 명확히 정의하는 방식입니다.

EDD의 특징:

  • 실제 사례나 예제 데이터를 먼저 정의하고, 이를 기준으로 코드를 작성합니다.
  • **Behavior-Driven Development(BDD)**와 유사하게 행동과 요구사항에 초점을 맞춥니다.

장점:

  • 요구사항을 구체적으로 정의하고 공유하기 쉽습니다.
  • 예제가 명확한 가이드라인이 되어, 개발자가 코드 작성 시 참고할 수 있습니다.
  • 이해관계자(비개발자)와도 소통이 원활해짐.

단점:

  • 예제를 설계하는 데 시간이 걸릴 수 있음.
  • 복잡한 시스템에서는 모든 예제를 작성하기 어렵거나 누락 가능성이 있음.

TDD와 EDD의 차이점

특징TDDEDD

초점 테스트 케이스 예제 및 요구사항
목적 코드가 올바르게 동작하는지 확인 요구사항을 충족시키는 코드 작성
대상 주로 개발자 개발자 + 비개발자
표현 방식 코드(테스트 케이스) 예제(시나리오 또는 데이터)

+ Recent posts