Chapter 05. 리팩토링 기법 카탈로그에 대해
6장부터 12장까지는 리팩토링 기법을 하나씩 체계적으로 설명하는 카탈로그 형식으로 구성했다.
각 리팩토링 기법 절의 구성
- 이름
- 요약
- 동기
- 방법
- 예제
리팩토링를 이해하기 위해서는 각 카탈로그의 예제를 직접 적용해보아야 한다.
리팩토링 1판의 자바 버전은 무려 1.1이라고 한다. (허..)
참조 검색
대다수의 리팩토링 작업에서는 메서드, 인스턴스 값, 클래스 등으로의 참조 부분을 전부 찾아야 된다. 이 때는 IDE의 검색 기능을 활용하는 것이 좋다.
특히 확인 없이 단번에 찾아바꾸기를 실시하지 말고, 각 참조를 일일이 검사하면서 치환하려는 대상이 맞는지 확인해야 한다. 검색 패턴을 잘 활용하는 사람도 있겠지만 실수할 확률도 존재하기 때문이다.
또한 타입을 확실히 선언해야 하는 언어에서는 컴파일러를 이용해 이 작업을 쉽게 할 수 있다. 구 기능을 삭제하고 컴파일러에게 상관없는 참조를 찾게 하면 된다. 다만 이 기법에는 문제가 있다.
- 어떤 기능이 상속 구조 안에서 두 번 이상 선언되면 컴파일러가 혼동을 일으킨다.
- 컴파일러가 너무 느려져서 효율성이 떨어질 수 있다.
- 컴파일러는 리플렉션 API의 사용처를 알아낼 수 없다. 리플렉션을 사용하지 않는 이유가 바로 이 때문이다. 따라서 리플렉션을 사용할 경우엔 대부분의 컴파일러에 대해 테스트를 꼭 실시해야 한다.
리팩토링 기법의 성숙도
리팩토링 기법을 적용할 땐 계속해서 신중을 가해야 한다. 메뉴얼을 보면서 작업할 때처럼, 이 책에 수록한 리팩토링 기법 설명도 자신의 상황에 맞게 변형해서 적용해야 한다.
리팩토링 기법을 자주 사용하다 보면 자신만의 리팩토링 기법도 개발하게 될 것이다.
느낀 점
이번 장에서는 리팩토링 기법 절의 구성과 리팩토링은 정답이 없으며, 자주 사용하다 보면 본인만의 리팩토링 기법을 생겨날 수 있다는 것을 알게되었다.
리팩토링 기법들을 단순히 외우는 것보다는 "아, 이런 것들이 있구나.", "이래서 리팩토링을 하는구나." 라고 리팩토링의 필요성을 느끼면 좋을 것 같다.
리팩토링이 익숙해지기 위해서는 이러한 글들을 보는 것보다는 역시 실무에서 직접 문제들을 맞닥뜨리면서 해결할 수 있는 경험들을 쌓는 것이 더욱 중요하다.
References
'공부 기록' 카테고리의 다른 글
[리팩토링 1판] Chapter 07. 객체 간의 기능 이동 (0) | 2024.04.01 |
---|---|
[리팩토링 1판] Chapter 06. 메서드 정리 (0) | 2024.03.31 |
[리팩토링 1판] Chapter 04. 테스트 작성 (0) | 2024.03.29 |
[리팩토링 1판] Chapter 03. 코드의 구린내 (1) | 2024.03.29 |
[리팩토링 1판] Chaptor 02. 리팩토링 개론 (1) | 2024.03.27 |
댓글