아키텍처를 충분히 이해하지 못한 채 단기 목표만을 위해 코드를 수정하다 보면 기반 구조가 무너지기 쉽다.
그렇게 되면 코드만으로 설계를 파악하기 어려워지고 그럴수록 설계를 유지하기 어려워지는 악순환에 빠진다.
중복 제거를 중심으로 코드량을 줄여 유지 보수성과 가독성을 향상시킨다.
프로그램을 작성할 때 컴파일 시간이 조금 더 걸리더라도 사람이 이해하기 편하게 코드를 작성해야 된다.
코드의 동작만 신경 써 가독성을 생각하지 않는다면 시간이 지나고 리팩터링 시 코드를 이해하고 수정하는데 훨씬 많은 시간을 소모하게 된다.
리팩터링하면 코드를 더 깊게 파악할 수 있다. 또한 프로그램의 구조를 명확하게 다듬으면 버그를 찾기 훨씬 수월하다.
리팩터링하면 전체적인 개발 속도를 단축시킬 수 있다. 당연하게도 리팩터링을 통해 품질이 증가된다. 내부 설계와 가독성이 개선되고 버그가 줄어든다.
리팩터링을 하지 않으면 초기에는 진척이 빠르지만 나중에는 기능 추가에 점점 더 많은 시간이 걸리고 잦은 에러가 발생한다.
반면 리팩터링하면 초반에는 약간의 시간이 더 걸릴 수 있으나 점차 기능이 추가되더라도 버그도 적게 발생하고 디버깅 하기도 편리하다.