Technical Debt
빠른 배포를 위해 더 나은 설계를 나중으로 미룬 결과 생기는 추가 작업 비용. Ward Cunningham이 금융 부채 비유로 도입. 신중한 의도적 부채만 전략적으로 수용 가능. 나머지는 최소화 대상.
sys.entry
M
Me
hyunyoun's Blog
software-engineering-devops1 min read
Technical Debt
빠른 배포를 위해 더 나은 설계를 나중으로 미룬 결과 생기는 추가 작업 비용. Ward Cunningham이 금융 부채 비유로 도입.
사분면 분류 (Martin Fowler)
신중한 의도적 부채만 전략적으로 수용 가능. 나머지는 최소화 대상.
비용 구조
CODE
초기 절약 = 빠른 출시 이점
이자 = 매 스프린트 느려지는 개발 속도
원금 = 리팩터링 비용
복리 효과 = 부채가 부채를 낳음 (얽힘 증가)
측정 지표
- 코드 복잡도(Cyclomatic Complexity): 분기 수
- 중복도: 복사-붙여넣기 코드 비율
- 테스트 커버리지: 낮을수록 리팩터링 비용 증가
- 빌드 시간: 아키텍처 결합도의 간접 지표
상환 전략
- 보이 스카우트 규칙: 건드린 코드는 오기 전보다 깨끗하게
- 기술 부채 스프린트: 주기적 전담 스프린트
- 스트랭글러 패턴: 레거시를 점진적으로 새 구현으로 교체
연결 노트
- ZK-SOLID-Principles — SOLID 위반이 주요 부채 원인
- ZK-Feature-Flag — 방치된 플래그도 기술 부채
- ZK-Refactoring-Patterns — 부채 상환의 실질 도구