리팩토링이 모든 소프트웨어의 문제를 해결하는 만병통치약이라고 주장하고 싶지 않다.
그것은 은탄환이 아니다.

그럼에도 불구하고 리팩토링은 유용한 도구이다.
좋은 코드를 유지할 수 있도록 도와주는 은색 펜치 한 쌍과 같다.
리팩토링은 여러 목적을 위해 사용할 수 있고, 또 사용해야 하는 도구이다.
Refactoring Improves the Design of Software
리팩토링은 소프트웨어의 설계를 향상시킨다.
<aside>
- 리팩토링이 없다면 내부 설계는 부패할 것이다.
- 사람들이 코드를 변경할때 구조에 대한 이해가 없어 그 코드는 구조를 잃게 된다.
- 코드 구조는 이해하기 쉬워야 한다.
- 규칙적인 리팩토링은 코드의 상태를 유지하는데 도움을 준다.
- 설계에서 중요한 부분은 중복 코드를 제거하는 것이다.
- 코드의 양이 시스템 속도에 관련이 있는 것은 아니지만 코드를 수정하는데 있어서는 큰 차이를 만든다.
- 더 많은 코드는 이해해야 할 코드가 더 많이 때문에 수정이 어려워진다.
</aside>
Refactoring Makes Software Easier to Understand
리팩토링은 소프트웨어를 더 이해하기 쉽도록 만든다.
<aside>
- 프로그래밍은 여러 면에서 컴퓨터와의 대화이다.
- 나 → 코드 작성 → 컴퓨터 → 컴파일 → 반복 → 내가 원하는 것과 컴퓨터에게 말하는 것의 차이 좁혀 나간다.
- 리팩토링에 조금의 시간을 투자한다면 코드를 목적에 맞게 더 잘 전달 가능하며, 내가 원하는 것을 명확하게 표현 가능하다.
- 내가 쓴 코드를 추후에 변경해야 할 사람이 내 자신일 수도 있다. → 리팩토링의 중요성 강조
</aside>
Refactoring Helps Me Find Bugs