리팩터링은 코드를 건강한 상태로 유지하는 중요한 개발 활동이다. 소프트웨어의 설계 개선, 코드 이해도 향상, 버그 발견 용이성 증가, 그리고 전반적인 개발 속도 향상에 기여한다.
코드의 아키텍처가 무너지는 것을 방지하고 설계를 개선하는 효과가 있다. 중복 코드를 제거하여 모든 코드가 고유한 일을 수행하도록 보장하며, 이는 바람직한 설계의 핵심이 된다.
프로그래밍은 컴퓨터와의 대화이므로, 의도하는 바와 코드 표현의 차이를 최소화해야 한다. 리팩터링을 통해 코드를 이해하기 쉽게 만들면 미래의 개발자(자기 자신 포함)가 코드를 더 쉽게 파악할 수 있다.
코드의 구조를 명확하게 다듬으면서 프로그램의 동작을 더 깊이 이해하게 된다. 이 과정에서 버그를 쉽게 발견할 수 있으며, 코드의 의도가 명확해져 버그를 놓치기 어려워진다.
내부 설계가 잘 된 소프트웨어는 다음과 같은 이점이 있다:
- 모듈화가 잘 되어 새로운 기능의 작성 포인트를 쉽게 찾을 수 있다
- 명확한 코드로 인해 버그 발생 가능성이 줄어든다
- 버그가 발생하더라도 디버깅이 용이하다
마틴 파울러는 이를 '설계 지구력 가설(Design Stamina Hypothesis)'이라 부르며, 내부 설계에 투자하면 소프트웨어의 개발 속도를 높은 상태로 오래 유지할 수 있다고 설명한다.
link: External reference