
2023-02-26
TDD
TDD란 뭔데 핫한거지?
정의
- TDD란 # 테스트 주도 개발(test-driven development, TDD)은 소프트웨어 개발 방법론 중의 하나로, 선 개발 후 테스트 방식이 아닌 선 테스트 후 개발 방식의 프로그래밍 방법을 말한다.
장점
- 깔끔한 코드를 작성할 수 있다.
- 장기적으로 개발 비용을 절감할 수 있다.
- 개발이 끝나면 테스트 코드를 작성하는 것은 매우 귀찮다. 실패 케이스면 더욱 그렇다.
단점
- 가장 큰 단점은 바로 생산성 저하이다.
- 기존 개발 습관과 방식을 교체해야 하므로 적응기간이 필요하다.
유의 사항
좋은 테스트 코드란?
- Fast: 테스트는 빠르게 동작하여 자주 돌릴 수 있어야 한다.
- Independent: 각각의 테스트는 독립적이며 서로 의존해서는 안된다.
- Repeatable: 어느 환경에서도 반복 가능해야 한다.
- Self-Validating: 테스트는 성공 또는 실패로 bool 값으로 결과를 내어 자체적으로 검증되어야 한다.
- Timely: 테스트는 적시에 즉, 테스트하려는 실제 코드를 구현하기 직전에 구현해야 한다.
[ TDD(Test-Driven Development, 테스트 주도 개발) 방법 및 순서 ]
TDD 개발 방법론의 프로그래밍 순서는 매우 단순하다.
- 실패하는 작은 단위 테스트를 작성한다. 처음에는 컴파일조차 되지 않을 수 있다.
- 빨리 테스트를 통과하기 위해 프로덕션 코드를 작성한다. 이를 위해 정답이 아닌 가짜 구현 등을 작성할 수도 있다.
- 그 다음의 테스트 코드를 작성한다. 실패 테스트가 없을 경우에만 성공 테스트를 작성한다.
- 새로운 테스트를 통과하기 위해 프로덕션 코드를 추가 또는 수정한다.
- 1~4단계를 반복하여 실패/성공의 모든 테스트 케이스를 작성한다.
- 개발된 코드들에 대해 모든 중복을 제거하며 리팩토링한다.
- { Red } 단계에서는 실패하는 테스트 코드를 먼저 작성한다.
- { Green } 단계에서는 테스트 코드를 성공시키기 위한 실제 코드를 작성한다.
- { Blue } 단계에서는 중복 코드 제거, 일반화 등의 리팩토링을 수행한다.
일반 개발 방식
TDD
댓글을 불러오는 중입니다.

원시값과 객체
자바스크립트의 타입은?

객체 지향 프로그래밍
객체지향 프로그래밍이란 뭘까?