더북(TheBook)

3.6.2 잠재적인 원인

추측에 근거한 설계

설계자가 ‘미래를 고려해서’ 시스템을 설계하거나 ‘단지 미래에 필요할 때를 대비하여’ 추상화를 제공하려고 할 때 이런 악취를 이끌 수 있다.

 

요구 사항 변경

요구 사항이 계속해서 바뀌면 초기 요구 사항을 충족하려고 만든 추상화는 더 이상 필요가 없다. 그럼에도 추상화가 설계에 계속해서 남아 있을 때 미활용 추상화가 된다.

 

유지보수 과정에서 남겨진 쓰레기

낡은 추상화를 정리하지 않은 상태에서 유지보수나 리팩토링 활동을 하면 참조되지 않는 추상화를 초래할 수 있다.

 

코드를 망가뜨린다는 공포

개발자들이 오래된 코드를 삭제하지 못하는 이유 중 하나는 코드의 다른 클래스에서 이것을 계속 사용하고 있는지 확신하지 못하기 때문이다. 코드 일부가 사용 중인지 아닌지를 판단하기 어려운 대규모 코드 기반에서 이런 현상이 특히 자주 발생한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.