본문 바로가기
공부 기록

[리팩토링 1판] Chapter 05. 리팩토링 기법 카탈로그에 대해

by 매트(Mat) 2024. 3. 30.

Chapter 05. 리팩토링 기법 카탈로그에 대해

6장부터 12장까지는 리팩토링 기법을 하나씩 체계적으로 설명하는 카탈로그 형식으로 구성했다.

각 리팩토링 기법 절의 구성

  • 이름
  • 요약
  • 동기
  • 방법
  • 예제

리팩토링를 이해하기 위해서는 각 카탈로그의 예제를 직접 적용해보아야 한다.

리팩토링 1판의 자바 버전은 무려 1.1이라고 한다. (허..)

참조 검색

대다수의 리팩토링 작업에서는 메서드, 인스턴스 값, 클래스 등으로의 참조 부분을 전부 찾아야 된다. 이 때는 IDE의 검색 기능을 활용하는 것이 좋다.

특히 확인 없이 단번에 찾아바꾸기를 실시하지 말고, 각 참조를 일일이 검사하면서 치환하려는 대상이 맞는지 확인해야 한다. 검색 패턴을 잘 활용하는 사람도 있겠지만 실수할 확률도 존재하기 때문이다.

또한 타입을 확실히 선언해야 하는 언어에서는 컴파일러를 이용해 이 작업을 쉽게 할 수 있다. 구 기능을 삭제하고 컴파일러에게 상관없는 참조를 찾게 하면 된다. 다만 이 기법에는 문제가 있다.

  • 어떤 기능이 상속 구조 안에서 두 번 이상 선언되면 컴파일러가 혼동을 일으킨다.
  • 컴파일러가 너무 느려져서 효율성이 떨어질 수 있다.
  • 컴파일러는 리플렉션 API의 사용처를 알아낼 수 없다. 리플렉션을 사용하지 않는 이유가 바로 이 때문이다. 따라서 리플렉션을 사용할 경우엔 대부분의 컴파일러에 대해 테스트를 꼭 실시해야 한다.

리팩토링 기법의 성숙도

리팩토링 기법을 적용할 땐 계속해서 신중을 가해야 한다. 메뉴얼을 보면서 작업할 때처럼, 이 책에 수록한 리팩토링 기법 설명도 자신의 상황에 맞게 변형해서 적용해야 한다.

리팩토링 기법을 자주 사용하다 보면 자신만의 리팩토링 기법도 개발하게 될 것이다.

느낀 점

이번 장에서는 리팩토링 기법 절의 구성과 리팩토링은 정답이 없으며, 자주 사용하다 보면 본인만의 리팩토링 기법을 생겨날 수 있다는 것을 알게되었다.

리팩토링 기법들을 단순히 외우는 것보다는 "아, 이런 것들이 있구나.", "이래서 리팩토링을 하는구나." 라고 리팩토링의 필요성을 느끼면 좋을 것 같다.

리팩토링이 익숙해지기 위해서는 이러한 글들을 보는 것보다는 역시 실무에서 직접 문제들을 맞닥뜨리면서 해결할 수 있는 경험들을 쌓는 것이 더욱 중요하다.

References

댓글