본문 바로가기
IT & 테크

TDD(Test-Driven Development)란? (간단한 예제 있음!)

by BlackD 2025. 2. 9.
반응형

TDD(Test-Driven Development)란?

TDD(Test-Driven Development, 테스트 주도 개발)는 코드 작성 전에 테스트를 먼저 만드는 개발 방법입니다. 이를 통해 코드 품질을 높이고, 유지보수를 쉽게 만들며, 버그를 줄일 수 있습니다.

1. TDD의 핵심 사이클

TDD는 아래 3단계의 사이클을 반복하는 방식으로 진행됩니다.

  1. Red(실패): 먼저 테스트 코드를 작성하고 실행하면, 당연히 실패합니다. (아직 실제 코드가 없기 때문!)
  2. Green(성공): 테스트를 통과하도록 최소한의 기능을 가진 코드를 작성합니다.
  3. Refactor(리팩터링): 중복을 제거하고 코드 가독성을 높이기 위해 개선합니다.

2. 간단한 예제: 숫자 덧셈 함수 만들기

1) 테스트 코드 작성 (Red 단계)

먼저 sum 함수를 테스트하는 코드를 작성합니다.

반응형
// sum.test.js
const sum = require('./sum');

test('1 + 2는 3이 되어야 한다', () => {
    expect(sum(1, 2)).toBe(3);
});

이제 테스트를 실행하면 sum 함수가 없기 때문에 실패할 것입니다.

2) 기능 코드 작성 (Green 단계)

테스트를 통과하도록 sum.js 파일을 만듭니다.

// sum.js
function sum(a, b) {
    return a + b;
}

module.exports = sum;

이제 다시 테스트를 실행하면 성공할 것입니다!

3) 리팩터링 (Refactor 단계)

코드가 간단해서 리팩터링할 부분이 없지만, 만약 중복된 코드가 있다면 정리하는 과정이 필요합니다.

3. TDD의 장점

  • 버그를 줄임: 미리 테스트를 작성하기 때문에 예상치 못한 오류를 줄일 수 있습니다.
  • 코드 품질 향상: 리팩터링을 통해 코드가 더욱 깔끔해집니다.
  • 유지보수 용이: 기존 기능이 망가지는 것을 빠르게 감지할 수 있습니다.

4. 결론

TDD는 익숙해지기까지 시간이 걸리지만, 코드 품질과 유지보수성을 높이는 강력한 방법입니다. 간단한 기능부터 TDD를 적용해보면서 연습해보세요!

반응형