리팩터링 정의

누군가 "리팩터링하다가 코드가 깨져서 며칠이나 고생했다" 라고 한다면, 십중팔구 리팩터링한 것이 아니다.

리팩터링하기 전과 후의 코드가 사용자 관점에서는 달라지는 점이 없어야 한다. 리팩터링 과정에서 발견된 버그는 리팩터링 후에도 남아 있어야 한다(단, 아무도 발견하지 못한 숨은 버그는 수정해도 괜찮다.)

리팩터링하는 이유

리팩터링이 소프트웨어의 모든 문제점을 해결하는 만병통치약은 절대 아니다. 하지만 코드를 건강한 상태로 유지하는 데 도와주는 약임은 분명하다.

리팩터링하면 소프트웨어 설계가 좋아진다