---
# System prepended metadata

title: Untitled

---

## TDD는 무엇이고 왜 하는것일까?
### TDD란?

- 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나
- TDD 는 테스트 코드 작성 -> 구현 코드 작성 -> 리팩토링 단계를 짧은 주기로 반복하여 개발하는 ‘테스트 주도 개발 방법론

### TDD 의 3가지 절차

1. 실패
    - 실패하는 테스트 케이스를 먼저 만들기
    - 전체 기능에 대하여 모든 테스트 케이스를 작성하는 것이 아님
    - 지금 가장 먼저 구현할 기능 하나씩 테스트 케이스를 작성

2. 성공
    - 실패하는 테스트 케이스를 통과시키는 코드를 작성

3. 리팩토링
    - 중복되는 코드가 있을 때,
    - 더 개선시킬 방법이 있을 때,

- 절차가 끝났다면, 다시 첫번째 절차로 돌아가서 다음 기능 구현을 위하여 새로운 실패하는 테스트 케이스를 작성

### 왜 하는 것인가?

- TDD 를 행함으로써 개발하고 있는 코드의 문제점을 빠르게 잡아낼 수 있다. -> 설계 수정 시간의 단축
- 단기적인 목표와 장기적인 목표를 뚜렷하게 제시해주고 올바르게 잡아준다.
- 반복되는 짧은 개발 패턴을 통해 개발 리듬을 만듦으로써 개발 집중력을 높여준다.
- 테스트 코드를 먼저 작성한다면 좀 더 명확한 기능과 구조를 설계할 수 있다. 
- 문제의 지점을 쉽게 찾아낼 수 있다. 

### 왜 TDD가 하기 힘든걸까
- 개발해야하는 코드의 양이 늘어남에 따라 일반적인 개발 방법보다 개발 요구시간이 늘어나게 된다.
- 보통 몸에 일반 개발방법이 체득되어있어서 이를 바꾸는것을 어려워한다.
- 