1. 정의 소프트웨어 모듈의 외부적 기능은 수정하지 않고, 내부적인 구조, 관계 등을 단순화하여 소프트웨어의 유지보수성을 향상 시키는 기법 생산성, 단순성, 명확성 향상 2. 리팩토링 수행 절차 대상선정 > 테스트 코드 작성 > 리팩토링 수행 > 테스트 수행 > 종료 3. 리팩토링 대상 및 기법 가. 리팩토링 대상 중긴큰긴 산임주 중복된 코드 긴 메소드 큰 클래스 긴 파라미터 리스트 변경의 분산 (산탄총 수술) 임시필드 주석 나. 리팩토링 기법 이분일통 이동 분할 일반화 통합