일반적으로는 단위 테스트, 통합 테스트, API 테스트 모두 시행하는 것이 이상적인 테스트 전략입니다.
왜 세 가지를 모두 사용하는가?
테스트 종류 | 목적 | 어떤 걸 확인하나? |
단위 테스트 | 개별 클래스나 메서드의 로직이 정확한지 검증 | 비즈니스 로직, 조건 분기, 예외처리 등 |
통합 테스트 | 여러 빈(서비스 ↔ 레포지토리 ↔ 설정)이 잘 연결됐는지 검증 | Bean 주입, 설정값, 실제 외부 의존성과의 통합 작동 |
API 테스트 | 외부 사용자의 시각에서 API가 제대로 동작하는지 검증 | 요청/응답 포맷, HTTP 상태코드, 검증 오류 등 |
이상적인 테스트 방향
규모 / 상황 | 테스트 전략 현실화 |
1인 개발 / 사이드 프로젝트 | 단위 + API 테스트 위주. 통합 테스트는 최소한으로. |
스타트업 / MVP 단계 | 빠른 개발을 위해 단위 or API 위주, 통합은 핵심만 테스트 |
중대형 서비스 / 협업 환경 | 단위 + 통합 + API 테스트 전체 적용 (테스트 피라미드 구조) |
현실적인 테스트
규모 / 상황 | 실제 테스트 흐름 (현실 기반) |
1인 개발 / 사이드 | 👉 API 테스트 위주 수동 확인 + 일부 단위 테스트 통합 테스트는 거의 없음 |
스타트업 / MVP 단계 | 👉 API + 일부 단위 테스트 피쳐 중심 개발, 빠른 배포 통합 테스트는 시간 될 때 작성 |
중대형 서비스 / 협업 | 👉 단위 + 통합 + API 테스트 병행 기능 리팩토링 대비 필요 API 테스트는 계약검증용 |
실전에서의 팁
- 단위 테스트는 빠르게 로직 검증, CI 속도 빠름
- 통합 테스트는 안정성 확보용 → 주요 기능만
- API 테스트는 계약서처럼 사용 → 프론트와 협업 시 강력함
'개발기술 > 테스트, 인프라' 카테고리의 다른 글
Prometheus 모니터링 + Grafana (0) | 2025.01.26 |
---|---|
대규모 서비스는 어떻게 서비스되는가 (0) | 2025.01.09 |
모니터링 툴 (0) | 2025.01.05 |
AWS 서비스 (0) | 2025.01.02 |
데이터베이스 스케일 업 & 아웃 (0) | 2024.09.02 |