back_end_sc.log
로그인
back_end_sc.log
로그인
TDD(Test Driven development)란?
노력하는백엔드
·
2026년 3월 8일
팔로우
0
TDD
방법론
이론 정리
목록 보기
10/14
TDD란?
Test Driven Development의 약자
테스트 코드를 먼저 작성하고 그 테스트를 통과하도록 실제 코드를 구현하는 개발 방법론
짧은 개발 주기의 반복에 의존하는 개발 프로세스
애자일 방법론 중 하나인 eXtream Programming의 Test-First 개념에 기반을 둔 단순한 설계를 중요시한다.
개발 사이클
Red -> Green -> Refactor
Red
먼저 실패하는 테스트를 작성
아직 기능이 구현되지 않았기 때문에 테스트는 실패
ex)
test("두 숫자를 더하면 결과가 나온다", () => { expect(add(2,3)).toBe(5); });
Green
테스트가 통과하도록 최소한의 코드만 작성
ex)
function add(a,b){ return a+b; }
Refactor
테스트가 통과하는 상태에서 코드를 개선한다.
중복 제거
구조 개선
가독성 개선
ex)
function add(a,b){ return a+b; }
일반적인 개발 방식 vs TDD 개발 방식
일반 개발 방식
방식
요구사항 분석 -> 설계 -> 개발 -> 테스트 -> 배포
장점
개발 속도가 빠르다.
테스트 코드 유지 비용이 없다.
유연한 개발이 가능하다.
단점
소비자의 요구 사항이 명확하지 않을 수 있다.
자체 버그 검출 능력 저하 또는 소스코드의 품질이 저하될 수 있다.
기능이 많아질수록 버그가 발견되는 시점이 늦어진다.
작은 기능 수정 시 모든 부분을 테스트 진행해야되므로 버그 발견이 어렵다
TDD 개발 방식
장점
테스트 코드를 작성하는 도중에 발생하는 예외 사항(버그, 수정사항)들은 테스트 케이스에 추가하고 설계를 개선한다.
테스트 통과된 코드만이 개발 단계에서 실제 코드로 작성되므로 안정성이 있다.
단점
테스트 코드를 먼저 작성해야되므로 초기 개발 속도가 느리다.
테스트 코드 작성 난이도가 높다.
모든 기능에 적용하기 어렵다.
TDD 효과
버그를 조기에 발견할 수 있다.
선 테스트를 진행하므로 초기에 버그를 발견할 수 있다.
안정적인 리팩토링이 가능하다.
코드 설계 품질이 향상된다.
의존성 감소, 모듈화, 유지보수 용이 장점
요구사항을 명확하게 정의할 수 있다.
추가 구현이 용이하다.
노력하는백엔드
열심히 노력하는 백엔드입니다.
팔로우
이전 포스트
LwM2M
다음 포스트
TDD 실습 (1)
0개의 댓글
댓글 작성