코드를 수정하려고 했는데 한 군데만 바꾸면 될 줄 알았던 것이 여러 곳을 동시에 수정해야 하는 상황을 경험해 보셨나요? 혹은 하나의 클래스가 너무 많은 일을 담당해서 간단한 변경 하나를 위해 전체 클래스를 이해해야만 했던 경험이 있으신가요?이러한 문제는 코드 스멜(Code Smell) 중에서도 특히 '변경 방해 요소(Change Preventers)'라고 불리는 현상과 관련이 있습니다. 마치 집 안의 물건이 제자리에 정리되어 있지 않아서 간단한 수리 작업조차 어려워지는 것과 같은 상황이죠!음식점 메뉴판을 생각해보세요. 메뉴 가격을 변경할 때마다 전체 메뉴판을 새로 인쇄해야 한다면 얼마나 번거로울까요?이와 마찬가지로 잘못 설계된 코드는 작은 변경에도 큰 비용이 발생합니다.왜 필요한가?Change Preve..