본문으로 건너뛰기
Advertisement

16.1 TDD 방법론과 테스트 피라미드 개요

1. 테스트 피라미드 (Test Pyramid)

테스트 피라미드는 소프트웨어 테스트의 구성 비율을 시각화한 모델입니다. 아래로 갈수록 테스트 비용이 낮고 속도가 빠르며, 위로 갈수록 현실에 가깝지만 느리고 비용이 높습니다.

        /  E2E 테스트  \       ← 소수, 느림, 실제 사용자 시나리오 검증
/ 통합 테스트 \ ← 적당량, 컴포넌트 간 연동 검증
/ 단위 테스트 \ ← 다수, 빠름, 단일 클래스/메서드 검증
계층검증 대상대표 도구
단위 테스트단일 클래스/메서드JUnit5 + Mockito
통합 테스트여러 레이어 연동@SpringBootTest + Testcontainers
E2E 테스트전체 사용자 시나리오Selenium, Playwright

2. TDD (테스트 주도 개발) 싸이클

TDD는 Red → Green → Refactor 3단계 사이클로 진행됩니다.

  1. Red: 아직 존재하지 않는 기능에 대한 실패하는 테스트를 먼저 작성합니다.
  2. Green: 테스트를 통과시키기 위한 최소한의 코드를 작성합니다.
  3. Refactor: 중복 제거, 가독성 향상 등 코드를 개선합니다. 테스트가 여전히 통과하는지 확인합니다.

TDD의 핵심 이점은 "코드를 테스트하기 쉽게 작성하도록 강제"한다는 데 있습니다. 테스트하기 어렵다면 그 코드는 설계 자체가 나쁜 것입니다. 테스트는 설계의 피드백 도구입니다.

Advertisement