본문 바로가기

기술 용어 검색

Refactoring

정의
- 프로그램의 외부사양(입력과 출력)을 변경하지 않은 채 내부구조를 안전하게 개선하는 테크닉

목적
- 프로그램을 이해하기 쉬운 상태로 유지하고, 확장성과 재이용성을 높이는 것

안전한 리팩토링을 위해서
- 리팩토링을 다른 작업을 분리하고, 리팩토링전후에 반드시 테스트한다.
- 한 번에 최소한의 작업만 하고, 기존의 로직에 미치는 영향을 적게 하며, 반드시 백업 한다.

대표적인 리팩토링 '메소드 추출' 순서
- 적절한 이름의 새 메소드를 만든다.
- 추출하고 싶은 로직을 새 메소드로 복사한다.
- 추출된 로직 속의 로컬 변수를 새 메소드에 적합하도록 변경한다.
- 컴파일하여 테스트한다.
- 원래 메소드를 새로운 메소드를 호출하도록 변경한다.
- 컴파일하여 테스트한다.

리팩토링 과정
- 이해하기 쉬운 변수명으로 변경한다.
- 복잡한 조건문을 알기 쉽게 한다.
- 중요한 처리를 메소드로 추출한다.
- 변환값을 오브젝트로 치환한다.
- 클래스의 책임을 분산한다.