리팩토링이란 리팩토링은 내부의 코드를 개선하는 하나의 방법론이자 솔루션을 뜻합니다. 리팩토링을 한마디로 말하자면, 나쁜 냄새가 나는 코드를 최적화하는 것입니다. 여기서 주의할 점은 런타임 시의 최적화가 아니라 프로그래밍을 할 때 버그 없는 프로그램을 만드는 것입니다. 외부 인터페이스는 그대로 두고 내부의 코드만을 개선하여 재사용과 가독성을 높이는 데 목적이 있습니다. 참고로 리팩토링은 전체적인 아키텍처에서부터 개선해나가는 디자인패턴과 떼어놓을 수 없는 관계입니다. 개념은 동일한데 바라보는 관점이 다른 것입니다. 이제 본격적으로 리팩토링을 시작합니다. 1. 순수가상함수와 추상클래스 문제 발생 먼저 접하기 쉬운 Animal 클래스를 구현해볼까요! Dog개, Cat고양이 클래스도 함께 구현합니다. 개발자들이 ..