자바로 배우는 리팩토링
리팩토링이란
외부에서 보는 프로그램 동작은 바뀌지 않고 프로그램의 내부 구조를 개선하는것
- 버그 수정은 리팩토링일까? : NO
- 기능 추가는 리팩토링일까? : NO
- 소스 코드 정리는 리팩토링일까? : 반드시 그런 건 아님
리팩토링과 유닛 테스트
- 리팩토링 전후 동작이 변하지 않는 걸 확인하려고 테스트 해야함
- 테스트 방법 중 유닛 테스트가 있음
리팩토링의 목적
버그를 발견하기 쉽게 만든다
기능을 추가하기 쉽게 만든다
리뷰하기 쉽게 만든다
리팩토링의 한계
- 프로그램이 아직 동작하지 않을 때 리팩토링은 불가능하다
- 시간이 너무 촉박할 때
리팩토링과 악취
악취
: 리팩토링이 필요한 부분을 '악취'가 난다고 표현한다.
🚫 이해하기 어렵고,
🚫 수정하기 어렵고,
🚫 확장하기 어려운 부분 등
ex) 중복 코드, 너무 긴 메서드, 방대한 클래스, 과다한 매개변수, ... 등
리팩토링 카탈로그
- 리팩토링의 목적과 절차를 카탈로그 형식으로 정리한 것
리팩토링 에센스
- 스텝 바이 스탭(한 번에 하나씩)으로 진행할것
- 두가지 수정을 한꺼번에 하지 않을것
- 되돌리기 쉽게 하기
- 단계마다 확인
- 오래된 걸 새로운 걸로 바꿈