✏️7.9 알고리즘 교체하기 (Subsititue Algorithm)
리팩터링 전
리팩터링 후
🧷 배경
더 간명한 방법을 찾아내면 복잡한 기존의 코드를 간명한 방식으로 고친다. 복잡한 대상을 단순한 단위로 나눌 수도 있고, 알고리즘 전체를 걷어내고 훨씬 간결한 알고리즘으로 바꿔야 할 때도 있다.
알고리즘을 교체하려면 반드시 메서드를 가능한 잘게 나눴는지 확인해야 한다. 거대하고 복잡한 알고리즘을 교체하기는 어려우니 알고리즘을 간소화하는 작업부터 해야 교체가 쉬워진다.
🧷 절차
교체할 코드를 함수 하나에 모은다.
이 함수만을 이용해 동작을 검증하는 테스트를 마련한다.
대체할 알고리즘을 준비한다.
정적 검사를 수행한다.
기존 알고리즘과 새 알고리즘의 결과를 비교하는 테스트를 수행한다. 두 결과가 같다면 리팩터링이 끝난다. 그렇지 않다면 기존 알고리즘을 참고해서 새 알고리즘을 테스트하고 디버깅한다.
Last updated