reinforce:wikify - Batch 3: Engineering Methodology & Testing (5 artifacts)
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
---
|
||||
id: P-REINFORCE-WIKI-DEV-TDD
|
||||
title: "테스트 주도 개발 (Test-Driven Development, TDD)"
|
||||
category: "10_Wiki/💻 Topics_Dev"
|
||||
status: verified
|
||||
canonical_id: ""
|
||||
aliases: ["TDD", "테스트 퍼스트", "Test-Driven Development"]
|
||||
duplicate_of: ""
|
||||
source_trust_level: A
|
||||
confidence_score: 1.0
|
||||
tags: ["TDD", "Software_Testing", "Clean_Architecture", "Mocking", "Quality_Assurance"]
|
||||
raw_sources: ["Datacollector_Export_2026-05-02"]
|
||||
last_reinforced: 2026-05-02
|
||||
github_commit: ""
|
||||
---
|
||||
|
||||
# [[테스트 주도 개발 (Test-Driven Development, TDD)]]
|
||||
|
||||
## 1. 개요
|
||||
Test-Driven Development(TDD)는 실제 구현 코드를 작성하기 전에 테스트 코드를 먼저 작성하여 애플리케이션의 로직을 검증하고 설계를 발전시키는 소프트웨어 개발 방법론이다. 'Red(실패하는 테스트) - Green(테스트 통과) - Refactor(리팩토링)' 사이클을 통해 시스템의 신뢰성과 유지보수성을 극대화한다.
|
||||
|
||||
## 2. 핵심 원칙
|
||||
- **테스트 우선 (Test-First)**: 요구사항을 만족하는 최소한의 테스트 코드를 먼저 작성.
|
||||
- **도메인 격리**: 비즈니스 로직을 외부 인프라(DB, UI)로부터 분리하여 독립적으로 검증.
|
||||
- **반복적 정제**: 테스트를 통과한 후 코드를 정제(Refactoring)하여 코드 품질을 지속적으로 관리.
|
||||
|
||||
## 3. 프레임워크별 실전 적용
|
||||
- **모바일 (Flutter)**: 클린 아키텍처와 결합하여 Domain 계층의 유스케이스를 BLoC 등과 분리해 테스트.
|
||||
- **백엔드 (Spring Boot)**: 육각형 아키텍처를 기반으로 Mockito(모킹)나 H2(인메모리 DB)를 활용해 도메인 로직 검증.
|
||||
|
||||
## 4. 트레이드오프 및 주의사항
|
||||
- **장점**: 높은 코드 신뢰성, 설계 개선, 회귀 버그(Regression) 방지.
|
||||
- **단점 (Mocking Caveat)**: 과도한 모킹 사용 시 도메인의 기능적 결함을 은폐하거나 테스트 코드 자체가 구현에 강결합될 위험. (기능 결함에도 불구하고 테스트는 통과하는 현상 방지 필요)
|
||||
|
||||
## 5. 지식 연결 (Related)
|
||||
- [[Clean_Architecture]]: TDD를 수행하기 위한 구조적 토대.
|
||||
- [[Hexagonal_Architecture]]: 외부 의존성을 배제하고 도메인을 테스트하기 위한 아키텍처.
|
||||
- [[Code_Review_Methodology]]: 작성된 테스트와 코드의 품질을 교차 검증하는 과정.
|
||||
|
||||
## 🧪 검증 상태 (Validation)
|
||||
- **정보 상태**: 검증 완료 (Verified)
|
||||
- **출처 신뢰도**: A
|
||||
- **검토 이유**: 안정적인 코드베이스 유지를 위한 핵심 공학적 실천 방안 정립.
|
||||
Reference in New Issue
Block a user