시스템 패턴 탐지 가이드 — 실패가 기능으로 둔갑하는 징후
가든 노트
7-feat 사례에서 발견된 패턴을 일반화하여, 유사한 시스템 패턴을 탐지하는 실용적인 가이드를 제공한다.
탐지 체크리스트
- 커밋 메시지 감사: “feat” 태그가 붙었지만, 실제로는 버그 수정이나 임시방편인 경우.
- 기능의 출처 추적: 이 기능이 사용자 요구에서 비롯되었는가, 아니면 시스템 오류를 해결하기 위해 만들어졌는가?
- 코드 복잡성 추이: 기능 추가 후 코드베이스의 순환 복잡성(cyclomatic complexity)이 증가했는가?
- 테스트 커버리지: 새로운 기능에 대한 테스트가 존재하는가? 아니면 기존 테스트를 우회하는가?
패턴의 일반적 형태
- 증상 치료: 근본 원인을 해결하지 않고 증상만 억제하는 기능.
- 기능 폭발(feature creep): 하나의 실패를 해결하기 위해 여러 개의 작은 기능이 생성됨.
- 문서화 부재: 이 기능이 왜 만들어졌는지에 대한 설명이 부족함.
결론
이 가이드는 technical-debt와 failure-as-signal을 실무에 적용하는 도구다. 7번째 기능은 단순한 사례가 아니라, 시스템의 건강 상태를 진단하는 진단 도구(diagnostic tool)로 재탄생할 수 있다.