테스트 코드하면 TDD를 떠올리게 됩니다.
TDD는 RED, GREEN, BLUE의 싸이클로 개발하는 방법론 입니다.
RED : 깨지는 테스트
GREEN : 성공하는 테스트
BLUE : 리펙토링 단계
그럼 이제 TDD의 장단점에 대해 알아보겠습니다.
장점
인터페이스를 강제한다
깨지는 테스트를 작성해야하기 때문에 인터페이스를 강제합니다.
이것은 객체지향의 핵심 원리인 행동에 집중하겠다는 것입니다.
즉, What/Who 사이클을 고민하게 합니다.
What/Who 사이클은 어떤 행위를 누가 행할지 결정하는 과정입니다.
장기적인 개발 비용 감소
장기적으로 개발 비용을 감소시킵니다.
이는 모든 기능의 테스트코드가 작성이 되어있기 때문에
새로운 기능을 추가하더라도 사이드 이펙트 없이 개발할 수 있기 때문입니다.
단점
초기 개발 비용
앞서 장기적인 개발 비용은 감소한다고 하였지만
초기에 TDD는 개발 부담이 있습니다.
작은 기능을 만들때도 테스트 코드를 전부 작성해야 하기 때문입니다.
난이도
TDD는 유연한 코드, 좋은 설계를 하는 과정이기 때문에
구성원 모두가 TDD에 대해 잘 이해하고 있어야 하고 개발 실력이 뛰어나야 합니다.
결론
TDD를 하려면 코드를 유연하게 작성해야 합니다.
우연한 설계를 제대로 하지 않았다면 테스트를 통해 힌트를 얻을 수 있습니다.
TDD의 장단점을 알아보면서
더 배우고 싶은 욕심이 생겼습니다!
'Test Code > Java Spring 테스트를 추가하고 싶은 개발자' 카테고리의 다른 글
테스트가 어려운 이유 그럼에도 작성해야 하는 이유 (0) | 2024.05.28 |
---|
테스트 코드하면 TDD를 떠올리게 됩니다.
TDD는 RED, GREEN, BLUE의 싸이클로 개발하는 방법론 입니다.
RED : 깨지는 테스트
GREEN : 성공하는 테스트
BLUE : 리펙토링 단계
그럼 이제 TDD의 장단점에 대해 알아보겠습니다.
장점
인터페이스를 강제한다
깨지는 테스트를 작성해야하기 때문에 인터페이스를 강제합니다.
이것은 객체지향의 핵심 원리인 행동에 집중하겠다는 것입니다.
즉, What/Who 사이클을 고민하게 합니다.
What/Who 사이클은 어떤 행위를 누가 행할지 결정하는 과정입니다.
장기적인 개발 비용 감소
장기적으로 개발 비용을 감소시킵니다.
이는 모든 기능의 테스트코드가 작성이 되어있기 때문에
새로운 기능을 추가하더라도 사이드 이펙트 없이 개발할 수 있기 때문입니다.
단점
초기 개발 비용
앞서 장기적인 개발 비용은 감소한다고 하였지만
초기에 TDD는 개발 부담이 있습니다.
작은 기능을 만들때도 테스트 코드를 전부 작성해야 하기 때문입니다.
난이도
TDD는 유연한 코드, 좋은 설계를 하는 과정이기 때문에
구성원 모두가 TDD에 대해 잘 이해하고 있어야 하고 개발 실력이 뛰어나야 합니다.
결론
TDD를 하려면 코드를 유연하게 작성해야 합니다.
우연한 설계를 제대로 하지 않았다면 테스트를 통해 힌트를 얻을 수 있습니다.
TDD의 장단점을 알아보면서
더 배우고 싶은 욕심이 생겼습니다!
'Test Code > Java Spring 테스트를 추가하고 싶은 개발자' 카테고리의 다른 글
테스트가 어려운 이유 그럼에도 작성해야 하는 이유 (0) | 2024.05.28 |
---|