본문 바로가기
카테고리 없음

TDD (테스트 주도 개발)란?

by riversun1 2024. 7. 21.

 

https://velog.io/@hongjunland/Test-Driven-Development

 

프로그래밍을 할 때, 코드를 작성하기 전에 먼저 테스트를 작성하는 방법론이 바로 TDD, 즉 테스트 주도 개발이다.

TDD는 크게 세 가지 단계로 이루어져 있다.

 

1. 테스트 작성

먼저 프로그램이 어떻게 동작해야 하는지에 대한 테스트를 작성한다. 예를 들어, 어떤 함수가 2와 3을 더해서 5를 반환해야 한다고 생각해보자. 그렇다면 이 함수가 2와 3을 입력받았을 때 5를 반환하는지 확인하는 테스트를 작성한다. 이 단계에서는 당연히 테스트가 실패한다. 왜냐하면 아직 해당 기능을 구현하지 않았기 때문이다.

 

2. 코드 작성

테스트를 통과할 수 있는 최소한의 코드를 작성한다. 위의 예시에서 2와 3을 더해서 5를 반환하는 함수를 만든다. 이 단계의 목표는 테스트를 통과하는 것이다. 따라서 아주 간단하게 구현해도 된다.

 

3. 리팩토링

코드를 더 깔끔하고 효율적으로 수정하는 단계이다. 이 과정에서 코드의 구조를 개선하고, 중복을 제거하며, 가독성을 높인다. 중요한 점은 리팩토링을 하면서도 모든 테스트가 통과해야 한다는 것이다. 이렇게 하면 코드의 품질을 유지하면서도 기능을 추가하거나 수정할 수 있다.

 

왜 TDD를 사용할까?

1. 코드 품질 향상

TDD는 코드를 작성하기 전에 테스트를 먼저 작성하기 때문에 코드의 품질을 높일 수 있다. 테스트를 통해 코드의 결함을 빨리 발견하고 수정할 수 있기 때문이다.

 

2. 유지보수 용이

테스트 코드가 있으면, 나중에 코드를 수정하거나 기능을 추가할 때 테스트를 통해 기존 기능이 제대로 동작하는지 확인할 수 있다. 따라서 유지보수가 쉬워진다.

 

3. 자신감 증가

테스트를 통해 코드를 검증할 수 있기 때문에, 개발자는 자신감을 가지고 코드를 작성할 수 있다. 이는 개발 속도와 생산성을 높이는 데도 큰 도움이 된다.

 

결론

TDD는 먼저 테스트를 작성하고, 그 테스트를 통과할 수 있는 코드를 작성한 뒤, 코드를 리팩토링하는 과정을 반복하는 개발 방법이다. 이를 통해 코드의 품질을 높이고, 유지보수를 용이하게 하며, 개발자의 자신감을 증가시킬 수 있다. 처음에는 TDD가 익숙하지 않을 수 있지만, 꾸준히 연습하면 많은 이점을 경험할 수 있을 것이다.