TDD
TDD (테스트 주도 개발)
테스트를 먼저 만들고 테스트를 통과하기 위한 것을 짜는 것
-
핵심 개념
결정(어떤 솔루션으로 할 지) 과 피드백(성공/실패(에러)에 대한 결과) 사이의 갭에 대한 인식과 갭을 조절하기 위한 테크닉
갭을 모르는 것은 문제이지만 갭을 모르는 것이 가장 큰 문제
-
어떤 상황에서 써야할 까
불확실성이 높을 때
-
효과
-
피드백
테스트를 통과하는 것으로 성공/실패를 자주 확인할 수 있음
-
협력
공유, 기록하기 쉬워져서 다른 사람과 협업에 좋은 영향을 줌
-
-
장단점
-
장점
-
결함이 줄어듦
벼그가 줄어들기 때문에 10~50% 까지 줄어듦
-
코드 복잡도가 떨어짐
엔트로피가 낮아지므로 깨끗한 코드가 나오고 유지보수 비용이 낮아짐
-
-
단점
-
개발 시간이 늘어남
테스트 코드, 원래 코드 2개를 짜야 하지만 개발 시간이 TDD 를 하지 않을 때에 비해 10~30% 늘어나므로 단점이라 보기 힘들 수도 있음
-
-
-
어려운 이유와 잘 하는 방법
-
어려운 이유
-
개발 시간이 증가함
단기적인 성과에 집중하기 때문에 전체 개발 시간을 줄이기 보다 오늘 일을 끝내는 것을 강조함
-
어려움
자신이 개발하던 방식을 많이 바꿔야 하기 때문에
-
어떻게 해야 한다는 이미지/틀이 있음
반드시 툴을 써서 이렇게 해야된다 라는 생각이 있음
-
-
잘 하는 방법
적응적, 진화적으로 접근해야 함
피드백과 협력에 대한 고민으로 일하는 방향을 업그레이드 해야 함
-