2.2 KiB
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 |
|
2026-04-20 |
TDD
📌 한 줄 통찰 (The Karpathy Summary)
"실패를 먼저 약속하고 시작하기: 코드를 짜기 전에 그 코드가 통과해야 할 '시험 문제(Test Case)'부터 먼저 만들고, 그 시험을 통과하기 위한 최소한의 코드만 작성하여 결함이 비집고 들어올 틈을 원천 봉쇄하는 극강의 품질 관리 전술."
📖 구조화된 지식 (Synthesized Content)
테스트 주도 개발(Test-Driven-Development, TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스입니다.
- Red-Green-Refactor 루프:
- Red: 실패하는 테스트 코드를 먼저 작성.
- Green: 테스트를 통과하기 위한 가장 빠른(심지어 하드코딩된) 코드 작성.
- Refactor: 기능은 유지하되 코드의 가독성과 구조를 개선. (Refinement와 연결)
- 왜 중요한가?:
- 나중에 버그를 잡는 비용은 개발 시점에 잡는 것보다 수백 배 비싸며, TDD는 '동작하는 Clean Code'를 보장하는 최후의 수단이기 때문임. (Quality-Control의 완성)
⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- 과거 데이터와의 충돌: 과거에는 TDD가 개발 속도를 늦춘다고 혐오했으나, 현대 정책은 장기적으로 '디버깅 시간'을 획기적으로 줄여 전체 프로젝트의 배포 속도 정책(Time-to-market)을 높여준다는 점을 인정함(RL Update).
- 정책 변화(RL Update): 이제는 사람이 테스트 코드 정책을 짜는 것을 넘어, AI가 요구사항 정책만 보고 수백 개의 테스트 케이스 정책을 자동 생성해 개발자를 압박(?)하는 'AI-Augmented TDD' 시대로 진화 중임. (Requirements와 연결)
🔗 지식 연결 (Graph)
- Refinement, Quality-Control, Requirements, Standard-Operating-Procedure, Reliability
- Modern Tech/Tools: Jest, JUnit, PyTest, Mocha, Selenium.