리팩토링이란?
- 리팩토링의 목적은 소프트웨어를 더 이해하기 쉽고 수정하기 쉽게 만드는 것이다.
- 리팩토링은 겉으로 드러나는 소프트웨어 기능에 영향을 주지 않는다.
성능 최적화는 기능이 변경되지 않는다는 점에서 리팩토링과 같지만, 속도를 빠르게 한다는 작업의 목적 리팩토링과 다르다. 따라서 코드가 알아보기 더 어려워지기도 한다.
리팩토링 목적
- 소프트웨어 설계 개선
- 소프트웨어 이해 용이
- 버그 발견 용이
- 프로그래밍 속도 향상
리팩토링이 필요한 상황
- 같은 작업을 3번째 반복하게 됐을 때
- 기능을 추가할 때
- 버그를 수정할 때
- 코드를 검수할 때
리팩토링은 팀장에게 말하지 말고 하기
인다이렉션과 리팩토링
인다이렉션의 장점
- 로직 공유
- 의도와 구현부 따로 나타냄
- 수정 부분을 분리
- 조건문을 코드화
리팩토링 관련 문제
- 데이터베이스
- 인터페이스 변경
- 리팩토링을 어렵게 하는 설계를 수정하는 일
- 리팩토링하면 안 되는 상황