TDD란?
TDD란 Test-Driven Development, 테스트 주도 개발로 소프트웨어 개발 방법론 중 하나입니다. TDD는 테스트 코드를 먼저 작성하고 그 후 해당 테스트를 통과하도록 실제 코드를 작성하는 방법입니다. 이 방법은 코드 품질을 높이고 유지 보수성을 확보하며, 개발자가 코드의 요구사항을 더욱 명확하게 이해하도록 돕는 장점이 있습니다.
TDD의 기본 과정
- Red (실패하는 테스트 작성)
- 먼저 테스트를 작성합니다. 이 때 테스트는 현재 코드에 없는 기능이나 새로운 요구사항으로 작성합니다.
- Green (테스트 통과를 위한 코드 작성)
- 테스트가 실패한 후 그 테스트를 통과하기 위한 최소한의 구현 코드를 작성합니다.
- Refactor (리팩토링)
- 테스트가 통과된 후 작성된 코드를 리팩토링하여 품질을 개선합니다. 이 때 중복 제거, 가독성 개선, 최적화 등의 작업을 진행합니다.
TDD의 장점
- 신뢰할 수 있는 테스트 : 기능에 대한 테스트를 먼저 작성하기 때문에 새로운 코드나 기능을 추가할 때 기능이 잘 작동하는지 쉽게 확인 가능합니다.
- 명확한 요구사항 : 테스트를 먼저 작성하면서 코드가 구현해야할 요구사항을 명확하게 정의할 수 있습니다.
- 빠른 피드백 : 코드가 변경되거나 새로운 기능이 추가될 때 테스트를 즉각적인 피드백을 얻을 수 있어서 초기 버그를 잡아내기 좋습니다.
- 디자인 개선 : 코드를 작고 단순하게 유지하도록 유도하기 때문에 클린 코드 작성과 유연한 설계를 가능하게 합니다. 테스트를 통해 구현하기 어려운 코드는 설계가 복잡하다는 이야기일 수 있어 이를 개선할 수 있습니다.
TDD 사용 시 주의할 점
- 테스트의 품질 : 테스트 코드를 명확하고 간결하게 작성하고 엣지 케이스를 충분히 고려해야 합니다.
- 적고 빈번한 사이클 : TDD는 짧고 반복적인 개발 사이클에 의존합니다. 항상 작은 단위로 기능을 테스트하고 구현하는 것이 중요합니다.
- 실패하는 테스트를 먼저 작성 : 먼저 실패하는 테스트를 작성한 후 구현을 진행해야 합니다.
결론
오늘은 TDD에 대해 알아보았습니다. 개발을 진행할 때 테스트를 우선으로 개발하는 방법에 대해 알게 되었고, 이 때 주의해야 할 점에대해 알게된 시간이었습니다. 그리고 이 방법도 항상 최선의 방법이 아닐 수도 있기 때문에 고려할 수 있는 한가지 정보를 더 얻었다고 생각합니다. 더 다양한 개발 방법론들을 익히고 공부해 보도록 노력해야겠다고 생각했습니다.
'프로그래밍' 카테고리의 다른 글
[프로그래밍] 객체지향 설계원칙 - SOLID (0) | 2024.10.22 |
---|---|
[프로그래밍] else 문을 지양하는 이유 (1) | 2024.10.08 |
[프로그래밍] 객체지향 프로그래밍(OOP)이란? (0) | 2024.09.26 |
[프로그래밍] JWT - Refresh Token 관리에 대해(DB저장) (0) | 2024.08.08 |
[프로그래밍] JWT - Refresh Token 관리에 대해 (2) | 2024.08.07 |