Boat Anchor
- 더 이상 필요하지 않거나 사용되지 않지만 계속 존재하여 시스템에 부담을 주는 코드 또는 기능
- 비효율성, 복잡성 증가, 유지 관리의 골칫거리가 될 수 있다.
- 사용되지 않거나 쓸모없는 코드 또는 무의미한 코드를 프로젝트에 남겨두는 안티 패턴입니다.
원인
- 사용하지 않는 코드
- 오래된 종속성 : 프레임워크 발전에 따라 종속성이 더 이상 사용되지 않는 경우
- 잘못된 커뮤니케이션 : 잘못된 이해로 기능을 구현했을 경우
- 요구 사항의 진화 : 시간이 지남에 따라 요구 사항이 변경돼서 기능, 특징이 중복되거나 쓸모없어진 경우
영향
- 복잡성 증가
- 성능 저하
- 버그 위험 : 예기치 않은 동작을 유발할 수 있는 오래되거나 잘못된 로직을 포함할 수 있다.
- 테스트의 어려움
회피 및 리팩토링
- 코드리뷰
- 정적 코드 분석
- 자동화된 테스트
- 지속적 리팩토링
- 커뮤니케이션
- 문서화