Files
2nd/10_Wiki/Topics_Blog/TDD.md
T

2.2 KiB

id, category, confidence_score, tags, last_reinforced
id category confidence_score tags last_reinforced
P-REINFORCE-AUTO-TDD-001 10_Wiki/💡 Topics/AI 0.98
auto-reinforced
tdd
test-driven-development
software-engineering
quality-control
clean-code
devops
2026-04-20

TDD

📌 한 줄 통찰 (The Karpathy Summary)

"실패를 먼저 약속하고 시작하기: 코드를 짜기 전에 그 코드가 통과해야 할 '시험 문제(Test Case)'부터 먼저 만들고, 그 시험을 통과하기 위한 최소한의 코드만 작성하여 결함이 비집고 들어올 틈을 원천 봉쇄하는 극강의 품질 관리 전술."

📖 구조화된 지식 (Synthesized Content)

테스트 주도 개발(Test-Driven-Development, TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스입니다.

  1. Red-Green-Refactor 루프:
    • Red: 실패하는 테스트 코드를 먼저 작성.
    • Green: 테스트를 통과하기 위한 가장 빠른(심지어 하드코딩된) 코드 작성.
    • Refactor: 기능은 유지하되 코드의 가독성과 구조를 개선. (Refinement와 연결)
  2. 왜 중요한가?:
    • 나중에 버그를 잡는 비용은 개발 시점에 잡는 것보다 수백 배 비싸며, TDD는 '동작하는 Clean Code'를 보장하는 최후의 수단이기 때문임. (Quality-Control의 완성)

⚠️ 모순 및 업데이트 (Contradictions & RL Update)

  • 과거 데이터와의 충돌: 과거에는 TDD가 개발 속도를 늦춘다고 혐오했으나, 현대 정책은 장기적으로 '디버깅 시간'을 획기적으로 줄여 전체 프로젝트의 배포 속도 정책(Time-to-market)을 높여준다는 점을 인정함(RL Update).
  • 정책 변화(RL Update): 이제는 사람이 테스트 코드 정책을 짜는 것을 넘어, AI가 요구사항 정책만 보고 수백 개의 테스트 케이스 정책을 자동 생성해 개발자를 압박(?)하는 'AI-Augmented TDD' 시대로 진화 중임. (Requirements와 연결)

🔗 지식 연결 (Graph)