📌리팩토링이란
- 어떤 코드의 동작이 바뀌지 않도록 다시 작성하는 것
- 다시 작성하면서 중복코드를 삭제하거나, 복잡한 로직을 단순화 하는 등의 개선을 거침
📖리팩토링 목록
collapse hierarchy
- 두개의 클래스 혹은 모듈의 의존성이 굉장히 높으면 하나로 merge한다
consolidate conditional express
decompose conditionals
📖리팩토링 리스크
- 문서의 유지보수 필요
- 테스트 케이스의 유지보수 필요
📖when not to refactor
- 코드가 오류가 있을 때,
- deadline이 가까울 때,
📌코드 스멜
- 코드 스멜이 있을 때, 리팩토링을 고려해야 한다
📌그 밖의 코드품질 개선 방법
- 정적 분석 : 코드만 보며 개선(코드 리뷰 등)
- 동적 분석 : 실제 실행하며 개선(test, debug)