6번째 줄: | 6번째 줄: | ||
* 외부 동작에는 변화없이 기존 코드의 내부구조를 개선하는 일 | * 외부 동작에는 변화없이 기존 코드의 내부구조를 개선하는 일 | ||
* 사용자 화면은 그대로 유지한 채 내부 논리나 구조를 개선하는 일 | * 사용자 화면은 그대로 유지한 채 내부 논리나 구조를 개선하는 일 | ||
* 기능의 변화없이 기능의 추가 용이함을 의한 일련의 소스 수정 과정 | |||
* 목적: 가독성 향상, 생산성 향상, 코드 품질 향상, [[견고성]] 향상, [[유지보수성]] 향상 | * 목적: 가독성 향상, 생산성 향상, 코드 품질 향상, [[견고성]] 향상, [[유지보수성]] 향상 | ||
2022년 7월 11일 (월) 18:00 판
1 개요
- refactoring
- 리팩토링, 재구조화
- 결과의 변경 없이 코드의 구조를 재조정하는 일
- 기술 부채(설계 스멜, 코드 스멜)를 해소하는 일
- 외부 동작에는 변화없이 기존 코드의 내부구조를 개선하는 일
- 사용자 화면은 그대로 유지한 채 내부 논리나 구조를 개선하는 일
- 기능의 변화없이 기능의 추가 용이함을 의한 일련의 소스 수정 과정
- 목적: 가독성 향상, 생산성 향상, 코드 품질 향상, 견고성 향상, 유지보수성 향상
- 리팩토링이 최적화는 아니다. 오히려 성능이 저하될 수도 있다.
- 일정이 촉박한 경우에는 하기 어렵다.
- 유닛 테스트 없이는 제대로 하기 어렵다. 리팩토링 후에 뭔가 안될 때, 원래 있던 문제인지 리팩토링 때문에 발생한 문제인지 확인하기 어렵기 때문이다.
2 예시

- 메소드 추출 ★
- 인터페이스 추출
- 이름변경
- 파라미터 제거
- 파라미터 재배열