누군가 “리팩터링하다가 코드가 깨져서 며칠이나 고생했다”라고 한다면, 십중팔구 리팩터링한 것이 아니다.
- 코드베이스를 정리하거나 구조를 바꾸는 모든 작업을
재구성
이라는 포괄적인 용어로 표현하고,- 리팩터링은 재구성 중 특수한 한 형태로 본다.
- 즉, 코드를 정리하는 모든 작업을 모두 리팩터링이라 하는 게 아니라, 1장에서 제시한 특정한 정의에 따라 코드를 정리하는 것이 리팩토링이다.
- 리팩터링은 시간을 일정에 따로 잡아두지 않고, 대부분의 리팩터링을 다른 일을 하는 중에 처리한다.
- 보기 싫은 코드를 리팩터링하자. 그런데 잘 작성된 코드 역시 수많은 리팩터링을 거쳐야 한다.
소프트웨어 설계가 좋아진다.
소프트웨어를 이해하기 쉬워진다.
버그를 쉽게 찾을 수 있다.
프로그래밍 속도를 높일 수 있다.
리팩터링은 무조건 해야한다기 보단 상황에 맞게 해야 한다. 지저분한 코드를 발견해도 다음과 같은 상황이라면 굳이 수정하지 않는다.