중복 코드는 여러 클래스나 메소드에 걸쳐서 완전히 동일하거나 혹은 비슷한 형태로 나타나는 등, 여러 형태로 나타날 수 있다. 중복 코드의 단점은 다음과 같다. 1. 한 코드를 변경할 때 동일한 모든 곳의 코드를 변경해야 한다. 2. 중복되는 코드들이 완전히 동일한 기능을 하는지, 혹은 비슷한 일을 하는지 잘 들여다봐야 한다. 이를 해결할 수 있게 해주는 리팩토링은 다음과 같다. 1. 함수 추출하기 (Extract Function) 2. 코드 분리하기 (Slide Statements) 3. 메소드 올리기 (Pull Up Method) 1. 함수 추출하기 (Extract Function) 동일한 코드를 여러 메소드에서 사용하는 경우 '함수 추출하기'는 중복 코드를 제거하는 상황 뿐 아니라, 정말 여러 상..
리팩토링을 하려면, 리팩토링이 필요한 코드를 찾아야하는데, 리팩토링 책에서는 그것을 냄새(Smell)라고 표현함. 깔끔한 코드에서 가장 중요한 것들 중 하나는 "좋은 이름"이다. 함수, 변수, 클래스, 모듈의 이름 등은 모두 어떤 역할을 하는지, 어떻게 쓰이는지 한번에 알아볼 수 있도록 직관적이어야 한다. 이를 이룰 수 있게 해주는 리팩토링은 다음과 같다. 1. 함수 선언 변경하기 (Change Function Declaration) 2. 변수 이름 바꾸기 (Rename Variable) 3. 필드 이름 바꾸기 (Rename Field) 1. 함수 선언 변경하기 (Change Function Declaration) 좋은 이름을 가진 함수는 그것의 이름만 보고도 함수가 어떻게 구현되었는지 이해할 수 있다...