코드 내부의 알고리즘을 변경한다
때로는 알고리즘 전체를 걷어내고 훨씬 간결한 알고리즘으로 바꿔야 할 때가 있음
=> 또는 원래 코드와 동일한 기능을 하는 라이브러리를 적용해야 할 때도 있음
=> 또는 기존 알고리즘을 살짝 다르게 동작하도록 바꾸고 싶을 때도 있음
=> 이런 상황에서는 알고리즘 간소화 작업을 먼저 진행해야함
=> 간소화한 알고리즘을 부분적으로 교체 진행 (with test)
- 교체할 코드를 함수 하나로 모음
- 이 함수만을 이용해 동작을 검증하는 테스트를 작성
- 대체할 알고리즘을 준비
- 정적검사 수행
- 기존 알고리즘과 새 알고리즘의 결과를 비교하는 테스트를 수행
=> 두 결과가 같다면 리팩터링 종료
=> 그렇지 않다면 기존 알고리즘을 참고해서 새 알고리즘을 테스트하고 디버깅 (이후 반복)